Documentation ¶
Index ¶
- Variables
- func AddCipher(oid asn1.ObjectIdentifier, cipher func() Cipher)
- func AddKDF(oid asn1.ObjectIdentifier, params func() KDFParameters)
- func DecryptPEMBlock(block *pem.Block, password []byte) ([]byte, error)
- func DecryptPKCS8PrivateKey(data, password []byte) ([]byte, error)
- func EncryptPKCS8PrivateKey(rand io.Reader, blockType string, data []byte, password []byte, opts ...Opts) (*pem.Block, error)
- type Cipher
- type CipherCBC
- type CipherCCM
- type CipherCFB
- type CipherCFB8
- type CipherECB
- type CipherGCM
- type CipherOFB
- type Hash
- type KDFOpts
- type KDFParameters
- type Opts
- type PBKDF2Opts
- type ScryptOpts
Constants ¶
This section is empty.
Variables ¶
var AES128CBC = CipherCBC{ // contains filtered or unexported fields }
AES128CBC is the 128-bit key AES cipher in CBC mode.
var AES128CCM = CipherCCM{ // contains filtered or unexported fields }
AES128CCM is the 128-bit key AES cipher in CCM mode.
var AES128CFB = CipherCFB{ // contains filtered or unexported fields }
AES128CFB is the 128-bit key AES cipher in CFB mode.
var AES128ECB = CipherECB{ // contains filtered or unexported fields }
AES128ECB is the 128-bit key AES cipher in ECB mode.
var AES128GCM = CipherGCM{ // contains filtered or unexported fields }
AES128GCM is the 128-bit key AES cipher in GCM mode.
var AES128OFB = CipherOFB{ // contains filtered or unexported fields }
AES128OFB is the 128-bit key AES cipher in OFB mode.
var AES192CBC = CipherCBC{ // contains filtered or unexported fields }
AES192CBC is the 192-bit key AES cipher in CBC mode.
var AES192CCM = CipherCCM{ // contains filtered or unexported fields }
AES192CCM is the 192-bit key AES cipher in CCM mode.
var AES192CFB = CipherCFB{ // contains filtered or unexported fields }
AES192CFB is the 192-bit key AES cipher in CFB mode.
var AES192ECB = CipherECB{ // contains filtered or unexported fields }
AES192ECB is the 192-bit key AES cipher in ECB mode.
var AES192GCM = CipherGCM{ // contains filtered or unexported fields }
AES192GCM is the 192-bit key AES cipher in GCM mode.
var AES192OFB = CipherOFB{ // contains filtered or unexported fields }
AES192OFB is the 192-bit key AES cipher in OFB mode.
var AES256CBC = CipherCBC{ // contains filtered or unexported fields }
AES256CBC is the 256-bit key AES cipher in CBC mode.
var AES256CCM = CipherCCM{ // contains filtered or unexported fields }
AES256CCM is the 256-bit key AES cipher in CCM mode.
var AES256CFB = CipherCFB{ // contains filtered or unexported fields }
AES256CFB is the 256-bit key AES cipher in CFB mode.
var AES256ECB = CipherECB{ // contains filtered or unexported fields }
AES256ECB is the 256-bit key AES cipher in ECB mode.
var AES256GCM = CipherGCM{ // contains filtered or unexported fields }
AES256GCM is the 256-bit key AES cipher in GCM mode.
var AES256OFB = CipherOFB{ // contains filtered or unexported fields }
AES256OFB is the 256-bit key AES cipher in OFB mode.
var CipherMap = map[string]Cipher{ "DESCBC": DESCBC, "DESEDE3CBC": DESEDE3CBC, "AES128ECB": AES128ECB, "AES128CBC": AES128CBC, "AES128OFB": AES128OFB, "AES128CFB": AES128CFB, "AES128GCM": AES128GCM, "AES128CCM": AES128CCM, "AES192ECB": AES192ECB, "AES192CBC": AES192CBC, "AES192OFB": AES192OFB, "AES192CFB": AES192CFB, "AES192GCM": AES192GCM, "AES192CCM": AES192CCM, "AES256ECB": AES256ECB, "AES256CBC": AES256CBC, "AES256OFB": AES256OFB, "AES256CFB": AES256CFB, "AES256GCM": AES256GCM, "AES256CCM": AES256CCM, "SM4ECB": SM4ECB, "SM4CBC": SM4CBC, "SM4OFB": SM4OFB, "SM4CFB": SM4CFB, "SM4CFB8": SM4CFB8, "SM4GCM": SM4GCM, "SM4CCM": SM4CCM, }
Cipher 列表
var DESCBC = CipherCBC{ // contains filtered or unexported fields }
DESCBC is the 56-bit key 3DES cipher in CBC mode.
var DESEDE3CBC = CipherCBC{ // contains filtered or unexported fields }
TripleDESCBC is the 168-bit key 3DES cipher in CBC mode.
var ( // 默认 hash DefaultHash = SHA1 )
var DefaultOpts = Opts{ Cipher: AES256CBC, KDFOpts: PBKDF2Opts{ SaltSize: 16, IterationCount: 10000, }, }
默认配置
var HashMap = map[string]Hash{ "MD5": MD5, "SHA1": SHA1, "SHA224": SHA224, "SHA256": SHA256, "SHA384": SHA384, "SHA512": SHA512, "SHA512_224": SHA512_224, "SHA512_256": SHA512_256, "SM3": SM3, }
hash 列表
var SM4CBC = CipherCBC{ // contains filtered or unexported fields }
SM4CBC is the 128-bit key SM4 cipher in CBC mode.
var SM4CCM = CipherCCM{ // contains filtered or unexported fields }
SM4CCM is the 128-bit key SM4 cipher in CCM mode.
var SM4CFB = CipherCFB{ // contains filtered or unexported fields }
SM4CFB is the 128-bit key SM4 cipher in CFB mode.
var SM4CFB8 = CipherCFB8{ // contains filtered or unexported fields }
SM4CFB8 is the 128-bit key SM4 cipher in CFB mode.
var SM4ECB = CipherECB{ // contains filtered or unexported fields }
SM4ECB is the 128-bit key SM4 cipher in ECB mode.
var SM4GCM = CipherGCM{ // contains filtered or unexported fields }
SM4GCM is the 128-bit key SM4 cipher in GCM mode.
var SM4OFB = CipherOFB{ // contains filtered or unexported fields }
SM4OFB is the 128-bit key SM4 cipher in OFB mode.
Functions ¶
func AddCipher ¶ added in v1.0.1018
func AddCipher(oid asn1.ObjectIdentifier, cipher func() Cipher)
添加加密
func AddKDF ¶ added in v1.0.1018
func AddKDF(oid asn1.ObjectIdentifier, params func() KDFParameters)
添加 kdf 方式
func DecryptPEMBlock ¶
解出 PEM 块
func DecryptPKCS8PrivateKey ¶
解出 PKCS8 密钥 加密方式: DESCBC | DESEDE3CBC AES128CBC | AES192CBC | AES256CBC AES128GCM | AES192GCM | AES256GCM SM4CBC | SM4GCM
Types ¶
type Cipher ¶ added in v1.0.1018
type Cipher interface { // oid OID() asn1.ObjectIdentifier // 值大小 KeySize() int // 加密, 返回: [加密后数据, 参数, error] Encrypt(key, plaintext []byte) ([]byte, []byte, error) // 解密 Decrypt(key, params, ciphertext []byte) ([]byte, error) }
加密接口
type CipherCBC ¶ added in v1.0.1020
type CipherCBC struct {
// contains filtered or unexported fields
}
cbc 模式加密
type CipherCCM ¶ added in v1.0.1021
type CipherCCM struct {
// contains filtered or unexported fields
}
ccm 模式加密
type CipherCFB ¶ added in v1.0.1021
type CipherCFB struct {
// contains filtered or unexported fields
}
CFB 模式加密
type CipherCFB8 ¶ added in v1.0.1021
type CipherCFB8 struct {
// contains filtered or unexported fields
}
CFB8 模式加密
func (CipherCFB8) Decrypt ¶ added in v1.0.1021
func (this CipherCFB8) Decrypt(key, params, ciphertext []byte) ([]byte, error)
解密
type CipherECB ¶ added in v1.0.1021
type CipherECB struct {
// contains filtered or unexported fields
}
ecb 模式加密
type CipherGCM ¶ added in v1.0.1020
type CipherGCM struct {
// contains filtered or unexported fields
}
gcm 模式加密
type CipherOFB ¶ added in v1.0.1021
type CipherOFB struct {
// contains filtered or unexported fields
}
OFB 模式加密
type KDFOpts ¶ added in v1.0.1018
type KDFOpts interface { // oid OID() asn1.ObjectIdentifier // 生成密钥 DeriveKey(password, salt []byte, size int) (key []byte, params KDFParameters, err error) // 随机数大小 GetSaltSize() int }
KDF 设置接口
type KDFParameters ¶ added in v1.0.1018
type KDFParameters interface { // 生成密钥 DeriveKey(password []byte, size int) (key []byte, err error) }
数据接口
type PBKDF2Opts ¶ added in v1.0.1018
PBKDF2 配置
func (PBKDF2Opts) DeriveKey ¶ added in v1.0.1018
func (this PBKDF2Opts) DeriveKey(password, salt []byte, size int) (key []byte, params KDFParameters, err error)
func (PBKDF2Opts) GetSaltSize ¶ added in v1.0.1018
func (this PBKDF2Opts) GetSaltSize() int
func (PBKDF2Opts) OID ¶ added in v1.0.1018
func (this PBKDF2Opts) OID() asn1.ObjectIdentifier
type ScryptOpts ¶ added in v1.0.1018
type ScryptOpts struct { SaltSize int CostParameter int BlockSize int ParallelizationParameter int }
ScryptOpts 设置
func (ScryptOpts) DeriveKey ¶ added in v1.0.1018
func (this ScryptOpts) DeriveKey(password, salt []byte, size int) (key []byte, params KDFParameters, err error)
func (ScryptOpts) GetSaltSize ¶ added in v1.0.1018
func (this ScryptOpts) GetSaltSize() int
func (ScryptOpts) OID ¶ added in v1.0.1018
func (this ScryptOpts) OID() asn1.ObjectIdentifier