Overview
crypto包收集了常用的密码常量。
Index
func RegisterHash(h Hash,f func() hash.Hash)
注册一个函数,该函数返回给定哈希函数的新实例。这将从实现散列函数的包中的init函数调用。
type Decrypter
是可用于非对称解密操作的不透明私钥的接口。一个例子是保存在硬件模块中的RSA密钥。
type Decrypter interface {
// Public 返回对应于opaque的公钥,私钥。
Public() PublicKey
// opts参数应该适用于所使用的原语。有关详细信息,请参见每个实现中的文档。
Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)
}
type DecrypterOpts
type DecryterOpts interface{}
type Hash
标识在另一个包中实现的加密哈希函数。
type Hash uint
const (
MD4 Hash = 1 + iota // import golang.org/x/crypto/md4
MD5 // import crypto/md5
SHA1 // import crypto/sha1
SHA224 // import crypto/sha256
SHA256 // import crypto/sha256
SHA384 // import crypto/sha512
SHA512 // import crypto/sha512
MD5SHA1 // no implementation; MD5+SHA1 used for TLS RSA
RIPEMD160 // import golang.org/x/crypto/ripemd160
SHA3_224 // import golang.org/x/crypto/sha3
SHA3_256 // import golang.org/x/crypto/sha3
SHA3_384 // import golang.org/x/crypto/sha3
SHA3_512 // import golang.org/x/crypto/sha3
SHA512_224 // import crypto/sha512
SHA512_256 // import crypto/sha512
BLAKE2s_256 // import golang.org/x/crypto/blake2s
BLAKE2b_256 // import golang.org/x/crypto/blake2b
BLAKE2b_384 // import golang.org/x/crypto/blake2b
BLAKE2b_512 // import golang.org/x/crypto/blake2b
)
func(h Hash) Available() bool
func(h Hash) HashFunc() Hash
func(h Hash) New() hash.Hash
返回一个新的散列。哈希计算给定的哈希函数。如果哈希函数没有链接到二进制文件中,则会产生新的恐慌。
func(h Hash) Size() int
返回由给定哈希函数产生的摘要的长度(以字节为单位)。它不要求将问题中的散列函数链接到程序中。
func(h Hash) String() string
type PrivateKey
PrivateKey表示使用未指定算法的私钥。
type PrivateKey interface{}
type PublicKey
PublicKey表示使用未指定算法的公钥。
type PublicKey interface{}
type Signer
Signer是用于签名操作的不透明私钥的接口。例如,保存在硬件模块中的RSA密钥。
type SignerOpts
type Signer interface {
// Public 返回公钥和私钥
Public() PublicKey
//使用私钥的符号摘要,可能使用rand中的熵。对于RSA密钥,生成的签名应该是PKCS #1 v1.5或PSS签名(如opts所示)。对于一个(EC)DSA密钥,它应该是一个DER-serialised, ASN.1签名结构。
//
// 哈希实现了SignerOpts接口,在大多数情况下,可以简单地传入作为opts的哈希函数。Sign也可以尝试将assert选项类型设置为其他类型,以获得算法特定的值。详细信息请参见每个包中的文档。
//
// 请注意,当需要较大消息的哈希签名时,调用者负责对较大消息进行哈希,并将哈希(作为摘要)和哈希函数(作为选择)传递给Sign。
Sign(rand io.Reader, digest []byte, opts SignerOpts) (signature []byte, err error)
}