crypto

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2016 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateAddress

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

Creates an ethereum address given the bytes and the nonce

func Decrypt

func Decrypt(prv *ecdsa.PrivateKey, ct []byte) ([]byte, error)

func Ecrecover

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

Ecrecover returns the public key for the private key that was used to calculate the signature.

Note: secp256k1 expects the recover id to be either 0, 1. Ethereum signatures have a recover id with an offset of 27. Callers must take this into account and if "recovering" from an Ethereum signature adjust.

func Encrypt

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

func FromECDSA

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

func FromECDSAPub

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

func GenerateKey

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

func HexToECDSA added in v0.8.4

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

HexToECDSA parses a secp256k1 private key.

func Keccak256 added in v1.4.0

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

func Keccak256Hash added in v1.4.0

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

func LoadECDSA added in v0.8.4

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

LoadECDSA loads a secp256k1 private key from the given file. The key data is expected to be hex-encoded.

func PubkeyToAddress added in v0.8.4

func PubkeyToAddress(p ecdsa.PublicKey) common.Address

func Ripemd160

func Ripemd160(data []byte) []byte

func SaveECDSA added in v0.9.18

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

SaveECDSA saves a secp256k1 private key to the given file with restrictive permissions. The key data is saved hex-encoded.

func Sha256

func Sha256(data []byte) []byte

func Sha3 deprecated

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

Deprecated: For backward compatibility as other packages depend on these

func Sha3Hash added in v0.9.18

func Sha3Hash(data ...[]byte) common.Hash

func SigToPub

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

func Sign

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

Sign calculates an ECDSA signature. This function is susceptible to choosen 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 choosen by an adversery. Common solution is to hash any input before calculating the signature.

Note: the calculated signature is not Ethereum compliant. The yellow paper dictates Ethereum singature to have a V value with and offset of 27 v in [27,28]. Use SignEthereum to get an Ethereum compliant signature.

func SignEthereum added in v1.5.0

func SignEthereum(data []byte, prv *ecdsa.PrivateKey) ([]byte, error)

SignEthereum calculates an Ethereum ECDSA signature. This function is susceptible to choosen 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 freely choosen by an adversery. Common solution is to hash the message before calculating the signature.

func ToECDSA

func ToECDSA(prv []byte) *ecdsa.PrivateKey

New methods using proper ecdsa keys from the stdlib

func ToECDSAPub

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

func ValidateSignatureValues added in v0.9.34

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

Types

This section is empty.

Directories

Path Synopsis
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.

Jump to

Keyboard shortcuts

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