Documentation
¶
Overview ¶
Ripemd160
sum := crypto.Ripemd160([]byte("This is blockchain")) fmt.Printf("%x\n", sum)
Index ¶
- Constants
- Variables
- func CRandBytes(numBytes int) []byte
- func CRandHex(numDigits int) string
- func CReader() io.Reader
- func CheckPriKey(pubKey, priKey string) (bool, error)
- func CreateAddress(b common.Address, nonce uint64, payload []byte) common.Address
- func CreateAddress2(b common.Address, salt [32]byte, inithash []byte) common.Address
- func CreateContractAddress(b common.Address, nonce uint64, payload []byte, rand int) common.Address
- func Ecrecover(hash, sig []byte) ([]byte, error)
- func Keccak256(data ...[]byte) []byte
- func Keccak256Hash(data ...[]byte) (h common.Hash)
- func Keccak512(data ...[]byte) []byte
- func LocalAccountType() string
- func LocalNodeType() string
- func MixEntropy(seedBytes []byte)
- func ParseSignatureGM(sig []byte) (r, s, v *big.Int, ok bool)
- func PubkeyToAddress(pubKey PubKey) common.Address
- func RegisterAmino()
- func Ripemd160(bytes []byte) []byte
- func S256() elliptic.Curve
- func Sender(hash, sig []byte) (common.Address, error)
- func SetLocalAccountType(t string)
- func SetLocalNodeType(t string)
- func Sha256(bytes []byte) []byte
- func ValidateSignatureValues(v byte, r, s *big.Int, homestead bool) bool
- func VerifySignature(pubkey, hash, signature []byte) bool
- type Address
- type PrivKey
- type PrivKeyEd25519
- func (privKey PrivKeyEd25519) Bytes() []byte
- func (privKey PrivKeyEd25519) Equals(other PrivKey) bool
- func (privKey PrivKeyEd25519) Generate(index int) PrivKeyEd25519
- func (privKey PrivKeyEd25519) MarshalJSON() ([]byte, error)
- func (privKey PrivKeyEd25519) PubKey() PubKey
- func (privKey PrivKeyEd25519) Raw() []byte
- func (privKey PrivKeyEd25519) Reset()
- func (privKey PrivKeyEd25519) Sign(msg []byte) (Signature, error)
- func (privKey PrivKeyEd25519) Type() string
- func (privKey *PrivKeyEd25519) UnmarshalJSON(input []byte) error
- type PrivKeyGM
- func (privKey *PrivKeyGM) Bytes() []byte
- func (privKey *PrivKeyGM) Equals(other PrivKey) bool
- func (privKey *PrivKeyGM) PubKey() PubKey
- func (privKey *PrivKeyGM) Raw() []byte
- func (privKey *PrivKeyGM) Reset()
- func (privKey *PrivKeyGM) Sign(msg []byte) (Signature, error)
- func (privKey *PrivKeyGM) Type() string
- type PrivKeySecp256k1
- func (privKey *PrivKeySecp256k1) Bytes() []byte
- func (privKey *PrivKeySecp256k1) Equals(other PrivKey) bool
- func (privKey *PrivKeySecp256k1) PubKey() PubKey
- func (privKey *PrivKeySecp256k1) Raw() []byte
- func (privKey *PrivKeySecp256k1) Reset()
- func (privKey *PrivKeySecp256k1) Sign(hash []byte) (Signature, error)
- func (privKey *PrivKeySecp256k1) Type() string
- type PubKey
- type PubKeyEd25519
- func (pubKey PubKeyEd25519) Address() Address
- func (pubKey PubKeyEd25519) Bytes() []byte
- func (pubKey PubKeyEd25519) Equals(other PubKey) bool
- func (pubKey PubKeyEd25519) MarshalJSON() ([]byte, error)
- func (pubKey PubKeyEd25519) Raw() []byte
- func (pubKey PubKeyEd25519) String() string
- func (pubKey *PubKeyEd25519) UnmarshalJSON(input []byte) error
- func (pubKey PubKeyEd25519) VerifyBytes(msg []byte, sig_ Signature) bool
- type PubKeyGM
- type PubKeySecp256k1
- func (pubKey *PubKeySecp256k1) Address() Address
- func (pubKey *PubKeySecp256k1) Bytes() []byte
- func (pubKey *PubKeySecp256k1) Equals(other PubKey) bool
- func (pubKey *PubKeySecp256k1) Raw() []byte
- func (pubKey *PubKeySecp256k1) String() string
- func (pubKey *PubKeySecp256k1) VerifyBytes(msg []byte, sig Signature) bool
- type Signature
- type SignatureEd25519
- type SignatureGM
- type SignatureSecp256k1
Constants ¶
const ( CryptoTypeGM = "gm" CryptoTypeEd25519 = "ed25519" CryptoTypeSecp256K1 = "secp256k1" )
const PubKeyEd25519Size = 32
const SM2Magic = 0x8
const SignatureEd25519Size = 64
const SignatureGMSize = 65
const Version = "0.9.0-dev"
Variables ¶
var ( // ErrInvalidCryptoType -- ErrInvalidCryptoType = errors.New("Invalid Crypto Type") )
Functions ¶
func CRandHex ¶
CRandHex returns a hex encoded string that's floor(numDigits/2) * 2 long.
Note: CRandHex(24) gives 96 bits of randomness that are usually strong enough for most purposes.
func CheckPriKey ¶
func CreateAddress ¶
CreateAddress creates an ethereum address given the bytes and the nonce
func CreateAddress2 ¶
CreateAddress2 creates an ethereum address given the address bytes, initial contract code hash and a salt.
func CreateContractAddress ¶
CreateContractAddress creates an ethereum address given the bytes and the nonce and the random number
func Keccak256Hash ¶
Keccak256Hash calculates and returns the Keccak256 hash of the input data, converting it to an internal Hash data structure.
func LocalNodeType ¶
func LocalNodeType() string
func MixEntropy ¶
func MixEntropy(seedBytes []byte)
Mix additional bytes of randomness, e.g. from hardware, user-input, etc. It is OK to call it multiple times. It does not diminish security.
func ParseSignatureGM ¶
ParseSignatureGM --
func RegisterAmino ¶
func RegisterAmino()
RegisterAmino registers all crypto related types in the given (amino) codec.
func ValidateSignatureValues ¶
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 ¶
VerifySignature checks that the given pubkey created signature over message. The signature should be in [R || S || V] format.
Types ¶
type Address ¶
An address is a []byte, but hex-encoded even in JSON. []byte leaves us the option to change the address length. Use an alias so Unmarshal methods (with ptr receivers) are available too.
type PrivKey ¶
type PrivKey interface { Bytes() []byte Sign(msg []byte) (Signature, error) PubKey() PubKey Equals(PrivKey) bool Reset() Raw() []byte Type() string }
func GeneratePrivKeyFromSecret ¶
GeneratePrivKeyFromSecret --
func HexToPrivkey ¶
func PrivKeyFromBytes ¶
type PrivKeyEd25519 ¶
type PrivKeyEd25519 [64]byte
Implements PrivKey
func GenPrivKeyEd25519 ¶
func GenPrivKeyEd25519() (PrivKeyEd25519, error)
func GenPrivKeyEd25519FromSecret ¶
func GenPrivKeyEd25519FromSecret(secret []byte) (PrivKeyEd25519, error)
NOTE: secret should be the output of a KDF like bcrypt, if it's derived from user input.
func (PrivKeyEd25519) Bytes ¶
func (privKey PrivKeyEd25519) Bytes() []byte
func (PrivKeyEd25519) Equals ¶
func (privKey PrivKeyEd25519) Equals(other PrivKey) bool
Equals - you probably don't need to use this. Runs in constant time based on length of the keys.
func (PrivKeyEd25519) Generate ¶
func (privKey PrivKeyEd25519) Generate(index int) PrivKeyEd25519
Deterministically generates new priv-key bytes from key.
func (PrivKeyEd25519) MarshalJSON ¶
func (privKey PrivKeyEd25519) MarshalJSON() ([]byte, error)
func (PrivKeyEd25519) PubKey ¶
func (privKey PrivKeyEd25519) PubKey() PubKey
func (PrivKeyEd25519) Type ¶
func (privKey PrivKeyEd25519) Type() string
func (*PrivKeyEd25519) UnmarshalJSON ¶
func (privKey *PrivKeyEd25519) UnmarshalJSON(input []byte) error
type PrivKeyGM ¶
type PrivKeyGM struct { Db []byte // contains filtered or unexported fields }
PrivKeyGM --
func GenPrivKeyGMFromSecret ¶
GenPrivKeyGMFromSecret --
type PrivKeySecp256k1 ¶
type PrivKeySecp256k1 struct { Data []byte // contains filtered or unexported fields }
func GenPrivKeySecp256k1 ¶
func GenPrivKeySecp256k1() (*PrivKeySecp256k1, error)
func GenPrivKeySecp256k1FromSecret ¶
func GenPrivKeySecp256k1FromSecret(secret []byte) (*PrivKeySecp256k1, error)
NOTE: secret should be the output of a KDF like bcrypt, if it's derived from user input.
func (*PrivKeySecp256k1) Equals ¶
func (privKey *PrivKeySecp256k1) Equals(other PrivKey) bool
Equals - you probably don't need to use this. Runs in constant time based on length of the keys.
func (*PrivKeySecp256k1) Sign ¶
func (privKey *PrivKeySecp256k1) Sign(hash []byte) (Signature, 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 hash 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.
type PubKey ¶
type PubKey interface { Address() Address Bytes() []byte VerifyBytes(msg []byte, sig Signature) bool Equals(PubKey) bool Raw() []byte }
func HexToPubkey ¶
func PubKeyFromBytes ¶
type PubKeyEd25519 ¶
type PubKeyEd25519 [PubKeyEd25519Size]byte
Implements PubKeyInner
func (PubKeyEd25519) Address ¶
func (pubKey PubKeyEd25519) Address() Address
Address is the Ripemd160 of the raw pubkey bytes.
func (PubKeyEd25519) Bytes ¶
func (pubKey PubKeyEd25519) Bytes() []byte
func (PubKeyEd25519) Equals ¶
func (pubKey PubKeyEd25519) Equals(other PubKey) bool
func (PubKeyEd25519) MarshalJSON ¶
func (pubKey PubKeyEd25519) MarshalJSON() ([]byte, error)
func (PubKeyEd25519) String ¶
func (pubKey PubKeyEd25519) String() string
func (*PubKeyEd25519) UnmarshalJSON ¶
func (pubKey *PubKeyEd25519) UnmarshalJSON(input []byte) error
func (PubKeyEd25519) VerifyBytes ¶
func (pubKey PubKeyEd25519) VerifyBytes(msg []byte, sig_ Signature) bool
type PubKeyGM ¶
type PubKeyGM struct { Data []byte // contains filtered or unexported fields }
PubKeyGM --
type PubKeySecp256k1 ¶
type PubKeySecp256k1 struct { Data []byte // contains filtered or unexported fields }
Implements PubKey. Compressed pubkey (just the x-cord), prefixed with 0x02 or 0x03, depending on the y-cord. type PubKeySecp256k1 [PubKeySecp256k1Size]byte
func PubKeySecp256k1FromBytes ¶
func PubKeySecp256k1FromBytes(raw []byte) *PubKeySecp256k1
PubKeySecp256k1FromBytes --
func (*PubKeySecp256k1) String ¶
func (pubKey *PubKeySecp256k1) String() string
func (*PubKeySecp256k1) VerifyBytes ¶
func (pubKey *PubKeySecp256k1) VerifyBytes(msg []byte, sig Signature) bool
VerifyBytes -- VerifySignature checks that the given public key created signature over hash. The public key should be in compressed (33 bytes) or uncompressed (65 bytes) format. The signature should have the 64 byte [R || S] format.
type SignatureEd25519 ¶
type SignatureEd25519 [SignatureEd25519Size]byte
Implements Signature
func (SignatureEd25519) Bytes ¶
func (sig SignatureEd25519) Bytes() []byte
func (SignatureEd25519) Equals ¶
func (sig SignatureEd25519) Equals(other Signature) bool
func (SignatureEd25519) IsZero ¶
func (sig SignatureEd25519) IsZero() bool
func (SignatureEd25519) String ¶
func (sig SignatureEd25519) String() string
type SignatureSecp256k1 ¶
type SignatureSecp256k1 []byte
Implements Signature
func (SignatureSecp256k1) Bytes ¶
func (sig SignatureSecp256k1) Bytes() []byte
func (SignatureSecp256k1) Equals ¶
func (sig SignatureSecp256k1) Equals(other Signature) bool
func (SignatureSecp256k1) IsZero ¶
func (sig SignatureSecp256k1) IsZero() bool
func (SignatureSecp256k1) String ¶
func (sig SignatureSecp256k1) String() string
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
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. |
Package merkle computes a deterministic minimal height Merkle tree hash.
|
Package merkle computes a deterministic minimal height Merkle tree hash. |
Package secp256k1 wraps the bitcoin secp256k1 C library.
|
Package secp256k1 wraps the bitcoin secp256k1 C library. |