Documentation ¶
Index ¶
- Variables
- func ParsePKCS8PrivateKey(certPem []byte) (any, error)
- func ParsePKIXPublicKey(certPEM []byte) (any, error)
- func ParseRSAPKCS1PrivateKey(certPem []byte) (*rsa.PrivateKey, error)
- func ParseRSAPKCS1PublicKey(certPEM []byte) (*rsa.PublicKey, error)
- func ParseRSAPKCS8PrivateKey(certPem []byte) (*rsa.PrivateKey, error)
- func ParseRSAPKIXPublicKey(certPEM []byte) (*rsa.PublicKey, error)
- func ParseRSAPrivateKey(certPEM []byte) (*rsa.PrivateKey, error)
- func ParseRSAPublicKey(certPEM []byte) (*rsa.PublicKey, error)
- func ParseRSAPublicKeyFromCert(certPEM []byte) (*rsa.PublicKey, error)
- func RC4Encrypt(key, src []byte) []byte
- type AESCipher
- type BlockMode
- type Cipher
- type DESCipher
- type Option
- type PaddingMode
- type RSACipher
- func (r *RSACipher) DecryptOAEP(hash hash.Hash, cipherText []byte, label []byte) ([]byte, error)
- func (r *RSACipher) DecryptOAEPBase64(hash hash.Hash, cipherText []byte, label []byte) ([]byte, error)
- func (r *RSACipher) DecryptOAEPHex(hash hash.Hash, cipherText []byte, label []byte) ([]byte, error)
- func (r *RSACipher) DecryptPKCS1v15(cipherText []byte) ([]byte, error)
- func (r *RSACipher) DecryptPKCS1v15Base64(cipherText []byte) ([]byte, error)
- func (r *RSACipher) DecryptPKCS1v15Hex(cipherText []byte) ([]byte, error)
- func (r *RSACipher) EncryptOAEP(hash hash.Hash, plainText []byte, label []byte) ([]byte, error)
- func (r *RSACipher) EncryptOAEPBase64(hash hash.Hash, plainText []byte, label []byte) ([]byte, error)
- func (r *RSACipher) EncryptOAEPHex(hash hash.Hash, plainText []byte, label []byte) ([]byte, error)
- func (r *RSACipher) EncryptPKCS1v15(plainText []byte) ([]byte, error)
- func (r *RSACipher) EncryptPKCS1v15Base64(plainText []byte) ([]byte, error)
- func (r *RSACipher) EncryptPKCS1v15Hex(plainText []byte) ([]byte, error)
- type RSACipherOption
- type RSAKeyGenerator
- func (r *RSAKeyGenerator) PKCS1PrivateKeyDER() ([]byte, error)
- func (r *RSAKeyGenerator) PKCS1PrivateKeyPEM() ([]byte, error)
- func (r *RSAKeyGenerator) PKCS1PublicKeyDER() ([]byte, error)
- func (r *RSAKeyGenerator) PKCS1PublicKeyPEM() ([]byte, error)
- func (r *RSAKeyGenerator) PKCS8PrivateKeyDER() ([]byte, error)
- func (r *RSAKeyGenerator) PKCS8PrivateKeyPEM() ([]byte, error)
- func (r *RSAKeyGenerator) PKIXPublicKeyDER() ([]byte, error)
- func (r *RSAKeyGenerator) PKIXPublicKeyPEM() ([]byte, error)
- type TripleDESCipher
Constants ¶
This section is empty.
Variables ¶
var CBC cbc
CBC 密码块链模式(Cipher-block chaining) 每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有平文块。 同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。 CBC是最为常用的工作模式。它的主要缺点在于加密过程是串行的,无法被并行化,而且消息必须被填充到块大小的整数倍。 加密时,平文中的微小改变会导致其后的全部密文块发生改变,而在解密时,从两个邻接的密文块中即可得到一个平文块。 因此,解密过程可以被并行化,而解密时,密文中一位的改变只会导致其对应的平文块完全改变和下一个平文块中对应位发生改变, 不会影响到其它平文的内容
var CFB cfb
var CTR ctr
var ECB ecbBlockMode
ECB 电子密码本模式(lectronic codebook) 最简单的模式,也是最不安全的模式。需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密,相同明文会产生同样的密文组。 这会暴露明文数据的格式和统计特征,从而有潜在的安全风险,但是用于短数据(如加密密钥)时非常理想
var GCM gcm
GCM AE,Authenticated Encryption
var OFB ofb
var PKCS7Padding pkcs7Padding
var ZeroPadding zeroPadding
Functions ¶
func ParsePKCS8PrivateKey ¶
ParsePKCS1PrivateKey 从 ASN.1 PEM 格式的证书中解析 PKCS #8 格式的私钥,PEM 块类型通常是 "PRIVATE KEY"
func ParsePKIXPublicKey ¶
ParsePKIXPublicKey 从 ASN.1 PEM 格式的证书中解析 PKIX 格式的公钥,PEM 块类型通常是 "PUBLIC KEY"
func ParseRSAPKCS1PrivateKey ¶
func ParseRSAPKCS1PrivateKey(certPem []byte) (*rsa.PrivateKey, error)
ParseRSAPKCS1PrivateKey 从 ASN.1 PEM 格式的证书中解析 PKCS #1 格式的 RSA 私钥,PEM 块类型通常是 "RSA PRIVATE KEY"
func ParseRSAPKCS1PublicKey ¶
ParseRSAPKCS1PublicKey 从 ASN.1 PEM 格式的证书中解析 PKCS #1 格式的 RSA 公钥,PEM 块类型通常是 "RSA PUBLIC KEY"
func ParseRSAPKCS8PrivateKey ¶
func ParseRSAPKCS8PrivateKey(certPem []byte) (*rsa.PrivateKey, error)
ParseRSAPKCS8PrivateKey 从 ASN.1 PEM 格式的证书中解析 PKCS #8 格式的 RSA 私钥,PEM 块类型通常是 "PRIVATE KEY"
func ParseRSAPKIXPublicKey ¶
ParseRSAPKIXPublicKey 从 ASN.1 PEM 格式的证书中解析中解析 PKIX 格式的 RSA 公钥,PEM 块类型通常是 "PUBLIC KEY"
func ParseRSAPrivateKey ¶
func ParseRSAPrivateKey(certPEM []byte) (*rsa.PrivateKey, error)
ParseRSAPrivateKey 从 ASN.1 PEM 格式的证书中解析 PKCS #1 格式或者 PKCS #8 格式的 RSA 私钥
func ParseRSAPublicKey ¶
ParseRSAPublicKey 从 ASN.1 PEM 格式的证书中解析 PKCS #1 格式或者 PKIX 格式的 RSA 公钥
func ParseRSAPublicKeyFromCert ¶
ParseRSAPublicKeyFromCert 从 ASN.1 PEM 格式的证书中解析 X.509 证书,并提取公钥
func RC4Encrypt ¶
Types ¶
type AESCipher ¶
type AESCipher struct {
// contains filtered or unexported fields
}
AESCipher AES Advanced Encryption Standard 支持 ECB、CBC、CFB、CTR、GCM、OFB key 长度 16、24、32 位,即 128、192、256 bit(AES-128、AES-192、AES-256),位数越大安全性越高但加密速度越慢
type Cipher ¶
type Cipher interface { Encrypt(plainTxt []byte) ([]byte, error) Decrypt(cipherTxt []byte) ([]byte, error) }
func NewTripleDES ¶
type Option ¶
type Option func(*cipherConfig)
func WithBlockMode ¶
func WithPaddingMode ¶
func WithPaddingMode(padding PaddingMode) Option
func WithTagSize ¶
type PaddingMode ¶
type RSACipher ¶
type RSACipher struct {
// contains filtered or unexported fields
}
func NewRSA ¶
func NewRSA(opts ...RSACipherOption) (*RSACipher, error)
func (*RSACipher) DecryptOAEP ¶
func (*RSACipher) DecryptOAEPBase64 ¶
func (*RSACipher) DecryptOAEPHex ¶
func (*RSACipher) DecryptPKCS1v15 ¶
func (*RSACipher) DecryptPKCS1v15Base64 ¶
func (*RSACipher) DecryptPKCS1v15Hex ¶
func (*RSACipher) EncryptOAEP ¶
func (*RSACipher) EncryptOAEPBase64 ¶
func (*RSACipher) EncryptOAEPHex ¶
func (*RSACipher) EncryptPKCS1v15 ¶
func (*RSACipher) EncryptPKCS1v15Base64 ¶
type RSACipherOption ¶
type RSACipherOption func(*RSACipher)
func WithPrivateKey ¶
func WithPrivateKey(priKey []byte) RSACipherOption
func WithPublicKey ¶
func WithPublicKey(pubKey []byte) RSACipherOption
type RSAKeyGenerator ¶
type RSAKeyGenerator struct {
// contains filtered or unexported fields
}
RSAKeyGenerator 生成 RSA 密钥对 密钥长度推荐使用 2048 位或者更高 私钥格式和公钥格式可以随意组合
func NewRSAKeyGenerator ¶
func NewRSAKeyGenerator(bits int) *RSAKeyGenerator
NewRSAKeyGenerator 生成 RSA 密钥对
func NewRSAKeyGenerator1024 ¶
func NewRSAKeyGenerator1024() *RSAKeyGenerator
NewRSAKeyGenerator1024 生成 1024 位的 RSA 密钥对,密钥长度推荐使用 2048 位或者更高
func NewRSAKeyGenerator2048 ¶
func NewRSAKeyGenerator2048() *RSAKeyGenerator
NewRSAKeyGenerator2048 生成 2048 位的 RSA 密钥对
func NewRSAKeyGenerator4096 ¶
func NewRSAKeyGenerator4096() *RSAKeyGenerator
NewRSAKeyGenerator3072 生成 3072 位的 RSA 密钥对
func (*RSAKeyGenerator) PKCS1PrivateKeyDER ¶
func (r *RSAKeyGenerator) PKCS1PrivateKeyDER() ([]byte, error)
PKCS1PrivateKeyDER 生成 PKCS #1 标准 DER 格式的 RSA 私钥
func (*RSAKeyGenerator) PKCS1PrivateKeyPEM ¶
func (r *RSAKeyGenerator) PKCS1PrivateKeyPEM() ([]byte, error)
PKCS1PrivateKey 生成 PKCS #1 标准 PEM 格式的 RSA 私钥
func (*RSAKeyGenerator) PKCS1PublicKeyDER ¶
func (r *RSAKeyGenerator) PKCS1PublicKeyDER() ([]byte, error)
PKCS1PublicKeyDER 生成 PKCS #1 标准 DER 格式的 RSA 公钥
func (*RSAKeyGenerator) PKCS1PublicKeyPEM ¶
func (r *RSAKeyGenerator) PKCS1PublicKeyPEM() ([]byte, error)
PKCS1PublicKeyPEM 生成 PKCS #1 标准 PEM 格式的 RSA 公钥
func (*RSAKeyGenerator) PKCS8PrivateKeyDER ¶
func (r *RSAKeyGenerator) PKCS8PrivateKeyDER() ([]byte, error)
PKCS8PrivateKeyDER 生成 PKCS #8 标准 DER 格式的 RSA 私钥
func (*RSAKeyGenerator) PKCS8PrivateKeyPEM ¶
func (r *RSAKeyGenerator) PKCS8PrivateKeyPEM() ([]byte, error)
PKCS8PrivateKeyPEM 生成 PKCS #8 标准 PEM 格式的 RSA 私钥
func (*RSAKeyGenerator) PKIXPublicKeyDER ¶
func (r *RSAKeyGenerator) PKIXPublicKeyDER() ([]byte, error)
PKIXPublicKeyDER 生成 PKIX 标准 DER 格式的 RSA 公钥
func (*RSAKeyGenerator) PKIXPublicKeyPEM ¶
func (r *RSAKeyGenerator) PKIXPublicKeyPEM() ([]byte, error)
PKIXPublicKeyPEM 生成 PKIX 标准 PEM 格式的 RSA 公钥
type TripleDESCipher ¶
type TripleDESCipher struct {
// contains filtered or unexported fields
}