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