?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
import "crypto"
概述
索引
子目錄
加密包收集常用的密碼常量。
func RegisterHash(h Hash, f func() hash.Hash)
type Decrypter
type DecrypterOpts
type Hash
func (h Hash) Available() bool
func (h Hash) HashFunc() Hash
func (h Hash) New() hash.Hash
func (h Hash) Size() int
func (h Hash) Available() bool
func (h Hash) HashFunc() Hash
func (h Hash) New() hash.Hash
func (h Hash) Size() int
type PrivateKey
type PublicKey
type Signer
type SignerOpts
crypto.go
func RegisterHash(h Hash, f func() hash.Hash)
RegisterHash 注冊一個函數(shù),該函數(shù)返回給定散列函數(shù)的新實例。這是打算從實現(xiàn)散列函數(shù)的包中的 init 函數(shù)調(diào)用的。
Decrypter 是一個不透明私鑰的接口,可用于非對稱解密操作。一個例子是保存在硬件模塊中的 RSA 密鑰。
type Decrypter interface { // 公開返回與不透明對應(yīng)的公鑰, // 私鑰。 Public() PublicKey // 解密解密消息。 opts的論點應(yīng)該適合于 // 使用的原語。 請參閱每個實現(xiàn)中的文檔 // 細節(jié)。 Decrypt(rand io.Reader, msg []byte, opts DecrypterOpts) (plaintext []byte, err error)}
type DecrypterOpts interface{}
哈希標識在另一個包中實現(xiàn)的加密哈希函數(shù)。
type Hash uint
const ( MD4 Hash = 1 + iota // 輸入 golang.org/x/crypto/md4 MD5 // 輸入 crypto/md5 SHA1 // 輸入 crypto/sha1 SHA224 // 輸入 crypto/sha256 SHA256 // 輸入 crypto/sha256 SHA384 // 輸入 crypto/sha512 SHA512 // 輸入 crypto/sha512 MD5SHA1 // 沒有執(zhí)行; 用于TLS RSA的MD5+SHA1 RIPEMD160 // 輸入 golang.org/x/crypto/ripemd160 SHA3_224 // 輸入 golang.org/x/crypto/sha3 SHA3_256 // 輸入 golang.org/x/crypto/sha3 SHA3_384 // 輸入 golang.org/x/crypto/sha3 SHA3_512 // 輸入 golang.org/x/crypto/sha3 SHA512_224 // 輸入 crypto/sha512 SHA512_256 // 輸入 crypto/sha512 BLAKE2s_256 // 輸入 golang.org/x/crypto/blake2s BLAKE2b_256 // 輸入 golang.org/x/crypto/blake2b BLAKE2b_384 // 輸入 golang.org/x/crypto/blake2b BLAKE2b_512 // 輸入 golang.org/x/crypto/blake2b)
func (h Hash) Available() bool
可用報告是否將給定的散列函數(shù)鏈接到二進制文件中。
func (h Hash) HashFunc() Hash
HashFunc 只是返回 h 的值,以便 Hash 實現(xiàn) SignerOpts。
func (h Hash) New() hash.Hash
New 返回一個新的 hash.Hash 計算給定的散列函數(shù)。如果哈希函數(shù)沒有鏈接到二進制文件中,則將產(chǎn)生恐慌。
func (h Hash) Size() int
Size 返回由給定散列函數(shù)產(chǎn)生的摘要的長度(以字節(jié)為單位)。它并不要求將有問題的散列函數(shù)鏈接到程序中。
PrivateKey 使用未指定的算法表示私鑰。
type PrivateKey interface{}
PublicKey 使用未指定的算法表示公鑰。
type PublicKey interface{}
Signer 是可用于簽名操作的不透明私鑰的接口。例如,一個 RSA 密鑰保存在硬件模塊中。
type Signer interface { // 公開返回與不透明對應(yīng)的公鑰, // 私鑰。 Public() PublicKey // 使用私鑰簽名標志摘要,可能使用熵 // rand. 對于RSA密鑰,結(jié)果簽名應(yīng)該是一個 // PKCS#1 v1.5 或 PSS signature (如opts所示)。 對于(EC)DSA // 密鑰,它應(yīng)該是DER序列化的ASN.1簽名結(jié)構(gòu)。 // // 哈希實現(xiàn) SignerOpts 接口,在大多數(shù)情況下,可以 // 只需傳入用作 opts 的散列函數(shù)即可。 標志也可能會嘗試 // 輸入 assert opts 到其他類型以獲得算法 // 具體的值。 有關(guān)詳細信息,請參閱每個包中的文檔。 // // 請注意,當需要較大消息的散列簽名時, // 調(diào)用者負責散列較大的消息并傳遞 // 散列(作為摘要)和散列函數(shù)(作為opts)來標記。 Sign(rand io.Reader, digest []byte, opts SignerOpts) (signature []byte, err error)}
SignerOpts包含用簽名者簽名的選項。
type SignerOpts interface { // HashFunc返回用于生成的哈希函數(shù)的標識符 // 該消息傳遞給Signer.Sign,否則為0表示不 // 哈希完成。 HashFunc() Hash}
路徑 | 概要 |
---|---|
aes | 按照美國的定義,aes實現(xiàn)AES加密(以前稱為Rijndael) |
cipher | 包密碼實現(xiàn)了標準塊密碼模式,可以圍繞低級塊密碼實現(xiàn)。 |
des | Package des實現(xiàn)了美國定義的數(shù)據(jù)加密標準(DES)和三重數(shù)據(jù)加密算法(TDEA) |
dsa | 軟件包dsa實現(xiàn)了FIPS 186-3中定義的數(shù)字簽名算法。 |
ecdsa | 軟件包ecdsa實現(xiàn)了FIPS 186-3中定義的橢圓曲線數(shù)字簽名算法。 |
elliptic | 橢圓包橢圓實現(xiàn)了在素數(shù)域上的幾個標準橢圓曲線。 |
hmac | 包hmac實現(xiàn)美國定義的Keyed-Hash消息認證碼(HMAC) |
internal/cipherhw | 包cipherhw公開了用于檢測是否存在對某些密碼和認證器的硬件支持的常用功能。 |
md5 | 包md5實現(xiàn)了RFC 1321中定義的MD5哈希算法。 |
rand | Package rand實現(xiàn)了一個密碼安全的偽隨機數(shù)生成器。 |
rc4 | 軟件包rc4實現(xiàn)了RC4加密,如Bruce Schneier的應(yīng)用密碼術(shù)中所定義。 |
rsa | 軟件包rsa按照PKCS#1中的規(guī)定實現(xiàn)RSA加密。 |
sha1 | 包sha1實現(xiàn)了RFC 3174中定義的SHA-1哈希算法。 |
sha256 | 軟件包sha256實現(xiàn)FIPS 180-4中定義的SHA224和SHA256哈希算法。 |
sha512 | 軟件包sha512實現(xiàn)FIPS 180-4中定義的SHA-384,SHA-512,SHA-512/224和SHA-512/256哈希算法。 |
subtle | 包微妙地實現(xiàn)了在密碼學中經(jīng)常使用的功能,但需要仔細考慮才能正確使用。 |
tls | 按照RFC 5246的規(guī)定,軟件包部分實現(xiàn)了TLS 1.2。 |
x509 | 軟件包x509分析X.509編碼的密鑰和證書。 |
x509/pkix | 包pkix包含用于ASN.1解析和序列化X.509證書,CRL和OCSP的共享低級別結(jié)構(gòu)。 |