Overview

crypto包收集了常用的密码常量。

Index

func RegisterHash(h Hash,f func() hash.Hash)

注册一个函数,该函数返回给定哈希函数的新实例。这将从实现散列函数的包中的init函数调用。

type Decrypter

是可用于非对称解密操作的不透明私钥的接口。一个例子是保存在硬件模块中的RSA密钥。

  1. type Decrypter interface {
  2. // Public 返回对应于opaque的公钥,私钥。
  3. Public() PublicKey
  4. // opts参数应该适用于所使用的原语。有关详细信息,请参见每个实现中的文档。
  5. Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)
  6. }

type DecrypterOpts

  1. type DecryterOpts interface{}

type Hash

标识在另一个包中实现的加密哈希函数。

  1. type Hash uint
  2. const (
  3. MD4 Hash = 1 + iota // import golang.org/x/crypto/md4
  4. MD5 // import crypto/md5
  5. SHA1 // import crypto/sha1
  6. SHA224 // import crypto/sha256
  7. SHA256 // import crypto/sha256
  8. SHA384 // import crypto/sha512
  9. SHA512 // import crypto/sha512
  10. MD5SHA1 // no implementation; MD5+SHA1 used for TLS RSA
  11. RIPEMD160 // import golang.org/x/crypto/ripemd160
  12. SHA3_224 // import golang.org/x/crypto/sha3
  13. SHA3_256 // import golang.org/x/crypto/sha3
  14. SHA3_384 // import golang.org/x/crypto/sha3
  15. SHA3_512 // import golang.org/x/crypto/sha3
  16. SHA512_224 // import crypto/sha512
  17. SHA512_256 // import crypto/sha512
  18. BLAKE2s_256 // import golang.org/x/crypto/blake2s
  19. BLAKE2b_256 // import golang.org/x/crypto/blake2b
  20. BLAKE2b_384 // import golang.org/x/crypto/blake2b
  21. BLAKE2b_512 // import golang.org/x/crypto/blake2b
  22. )

func(h Hash) Available() bool

报告给定的哈希函数是否链接到二进制文件中。

func(h Hash) HashFunc() Hash

简单地返回h的值,以便Hash实现SignerOpts。

func(h Hash) New() hash.Hash

返回一个新的散列。哈希计算给定的哈希函数。如果哈希函数没有链接到二进制文件中,则会产生新的恐慌。

func(h Hash) Size() int

返回由给定哈希函数产生的摘要的长度(以字节为单位)。它不要求将问题中的散列函数链接到程序中。

func(h Hash) String() string

type PrivateKey

PrivateKey表示使用未指定算法的私钥。

  1. type PrivateKey interface{}

type PublicKey

PublicKey表示使用未指定算法的公钥。

  1. type PublicKey interface{}

type Signer

Signer是用于签名操作的不透明私钥的接口。例如,保存在硬件模块中的RSA密钥。

type SignerOpts

  1. type Signer interface {
  2. // Public 返回公钥和私钥
  3. Public() PublicKey
  4. //使用私钥的符号摘要,可能使用rand中的熵。对于RSA密钥,生成的签名应该是PKCS #1 v1.5或PSS签名(如opts所示)。对于一个(EC)DSA密钥,它应该是一个DER-serialised, ASN.1签名结构。
  5. //
  6. // 哈希实现了SignerOpts接口,在大多数情况下,可以简单地传入作为opts的哈希函数。Sign也可以尝试将assert选项类型设置为其他类型,以获得算法特定的值。详细信息请参见每个包中的文档。
  7. //
  8. // 请注意,当需要较大消息的哈希签名时,调用者负责对较大消息进行哈希,并将哈希(作为摘要)和哈希函数(作为选择)传递给Sign。
  9. Sign(rand io.Reader, digest []byte, opts SignerOpts) (signature []byte, err error)
  10. }

Package files

crypto.go