crypto

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2020 License: GPL-3.0 Imports: 24 Imported by: 48

Documentation

Index

Constants

View Source
const (
	CRYPTO_P256_SH3_AES = 1 //GUOJI HASH AND   Asymmetric Encryption
	CRYPTO_SM2_SM3_SM4  = 2 //GUOMI hash and  Asymmetric Encryption;
	CRYPTO_S256_SH3_AES = 3
)
View Source
const DigestLength = 32

DigestLength sets the signature digest exact length

View Source
const RecoveryIDOffset = 64

RecoveryIDOffset points to the byte offset within the signature that contains the recovery id.

View Source
const SignatureLength = 64 + 1 // 64 bytes ECDSA signature + 1 byte recovery id

SignatureLength indicates the byte length required to carry a signature with recovery id.

Variables

View Source
var CryptoType = CRYPTO_SM2_SM3_SM4

Functions

func AddressToHex

func AddressToHex(a common.Address) string

According to gm,s256 or p256 param,convert address to string.

func CompressPubkey

func CompressPubkey(pubkey *ecdsa.PublicKey) []byte

CompressPubkey encodes a public key to the 33-byte compressed format.

func CreateAddress

func CreateAddress(b common.Address, nonce uint64) common.Address

CreateAddress creates an ethereum address given the bytes and the nonce

func CreateAddress2

func CreateAddress2(b common.Address, salt [32]byte, inithash []byte) common.Address

CreateAddress2 creates an ethereum address given the address bytes, initial contract code hash and a salt.

func CreateGroupkey

func CreateGroupkey(b common.Address, id uint64) common.Address

CreateGroupkey is for permission

func DecompressPubkey

func DecompressPubkey(pubkey []byte) (*ecdsa.PublicKey, error)

DecompressPubkey parses a public key in the 33-byte compressed format.

func Decrypt

func Decrypt(pri *ecdsa.PrivateKey, c, s1, s2 []byte) (m []byte, err error)

According to gm,s256 or p256 param,decrypt message.

func Double256

func Double256(b []byte) []byte

According to gm,s256 or p256 param double to Hash value.

func Ecrecover

func Ecrecover(hash, sig []byte) ([]byte, error)

Ecrecover returns the uncompressed public key that created the given signature.

func Ecrecover(hash, sig []byte) ([]byte, error) {
	return secp256k1.RecoverPubkey(hash, sig)
}

func Encrypt

func Encrypt(pub *ecdsa.PublicKey, m, s1, s2 []byte) (ct []byte, err error)

According to gm,s256 or p256 param,encrypt message.

func FromECDSA

func FromECDSA(priv *ecdsa.PrivateKey) []byte

According to gm,s256 or p256 param to FromECDSA exports a private key into a binary dump.

func FromECDSAPub

func FromECDSAPub(pub *ecdsa.PublicKey) []byte

According to gm,s256 or p256 param to FromECDSA exports a publickey key into a binary dump.

func GenerateKey

func GenerateKey() (*ecdsa.PrivateKey, error)

According to gm,s256 or p256 param to generate publickey and privatekey.

func GenerateShared

func GenerateShared(pri *ecdsa.PrivateKey, pub *ecdsa.PublicKey, skLen, macLen int) (sk []byte, err error)

According to gm,s256 or p256 param,to generate communication key.

func GetVRS

func GetVRS(sign []byte) (v byte, r, s *big.Int)

get v,r svalue accoring to sign.

func Hash256

func Hash256(auth, s, h []byte) hash.Hash

According to gm,s256 or p256 param write two param to Hash value,but xor s and h to write.

func Hash256Byte

func Hash256Byte(seedBytes, riseedBytes []byte) []byte

According to gm,s256 or p256 param write two param to Hash value.

func HexToECDSA

func HexToECDSA(hexkey string) (*ecdsa.PrivateKey, error)

According to gm,s256 or p256 param to HexToECDSA parses a secp256k1 private key.

func Keccak256

func Keccak256(data ...[]byte) []byte

According to gm,s256 or p256 param to Keccak256 calculates and returns the Keccak256 hash of the input data.

func Keccak256Hash

func Keccak256Hash(data ...[]byte) (h common.Hash)

According to gm,s256 or p256 param to Keccak256Hash calculates and returns the Keccak256 hash of the input data,converting it to an internal Hash data structure.

func Keccak512

func Keccak512(data ...[]byte) []byte

According to gm,s256 or p256 param to Keccak512 calculates and returns the Keccak512 hash of the input data.

func LoadECDSA

func LoadECDSA(file string) (*ecdsa.PrivateKey, error)

According to gm,s256 or p256 param to LoadECDSA loads a secp256k1 private key from the given file.

func NewCipher

func NewCipher(key []byte) (cipher.Block, error)

func NewHash

func NewHash() hash.Hash

According to gm,s256 or p256 param to new distinct hash.Hash interface.

func NewHashObject

func NewHashObject() func() hash.Hash

According to gm,s256 or p256 param to new distinct hash method.

func PubkeyToAddress

func PubkeyToAddress(p ecdsa.PublicKey) common.Address

According to gm,s256 or p256 param,publickey to address.

func RlpHash

func RlpHash(x interface{}) (h common.Hash)

According to gm,s256 or p256 param to Hash value,but pass RLP encode.

func S256

func S256() elliptic.Curve

S256 returns an instance of the secp256k1 curve.

func SaveECDSA

func SaveECDSA(file string, key *ecdsa.PrivateKey) error

According to gm,s256 or p256 param to saveECDSA saves a secp256k1 private key to the given file with restrictive permissions. The key data is saved hex-encoded.

func SetCrtptoType

func SetCrtptoType(cryptoType uint8)

func SigToPub

func SigToPub(hash, sig []byte) (*ecdsa.PublicKey, error)

SigToPub returns the public key that created the given signature.

func Sign

func Sign(digestHash []byte, prv *ecdsa.PrivateKey) (sig []byte, err error)

Sign calculates an ECDSA signature.

This function is susceptible to chosen plaintext attacks that can leak information about the private key that is used for signing. Callers must be aware that the given digest cannot be chosen by an adversery. Common solution is to hash any input before calculating the signature.

The produced signature is in the [R || S || V] format where V is 0 or 1.

func Sum256

func Sum256(input []byte) ([]byte, error)

According to gm,s256 or p256 param to sum hash.

func ToECDSA

func ToECDSA(d []byte) (*ecdsa.PrivateKey, error)

According to gm,s256 or p256 param ToECDSA creates a private key with the given D value.

func ToECDSAUnsafe

func ToECDSAUnsafe(d []byte) *ecdsa.PrivateKey

According to gm,s256 or p256 param to ToECDSA creates a private key with the given D value. but not return error

func UnmarshalPubkey

func UnmarshalPubkey(pub []byte) (*ecdsa.PublicKey, error)

According to gm,s256 or p256 param to UnmarshalPubkey exports a binary dump. into ecdsa PublicKey key.

func ValidateSignatureValues

func ValidateSignatureValues(v byte, r, s *big.Int, homestead bool) bool

According to gm,s256 or p256 param,validateSignatureValues verifies whether the signature values are valid with the given chain rules. The v value is assumed to be either 0 or 1.

func VerifySignature

func VerifySignature(pubkey, digestHash, signature []byte) bool

func VerifySignatureTransaction

func VerifySignatureTransaction(digestHash, signature []byte) bool

func VerifySignatureTransactionPk added in v1.0.1

func VerifySignatureTransactionPk(digestHash, signature, pk []byte) bool

Types

This section is empty.

Directories

Path Synopsis
Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb.
Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb.
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
cloudflare
Package bn256 implements a particular bilinear group at the 128-bit security level.
Package bn256 implements a particular bilinear group at the 128-bit security level.
google
Package bn256 implements a particular bilinear group.
Package bn256 implements a particular bilinear group.
gm module
Package secp256k1 wraps the bitcoin secp256k1 C library.
Package secp256k1 wraps the bitcoin secp256k1 C library.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL