Documentation ¶
Index ¶
Constants ¶
View Source
const ( // 密码算法默认值,若是此项,将采用配置文件中配置的密码算法 CRYPTO_ALGO_HASH_DEFAULT = "" CRYPTO_ALGO_SYM_DEFAULT = "" CRYPTO_ALGO_ASYM_DEFAULT = "" // 哈希算法 CRYPTO_ALGO_SHA256 = "SHA256" CRYPTO_ALGO_SHA3_256 = "SHA3_256" CRYPTO_ALGO_SM3 = "SM3" // 对称加密 CRYPTO_ALGO_AES = "AES" CRYPTO_ALGO_AES128 = "AES128" CRYPTO_ALGO_AES192 = "AES192" CRYPTO_ALGO_AES256 = "AES256" CRYPTO_ALGO_SM4 = "SM4" // 非对称秘钥 CRYPTO_ALGO_RSA512 = "RSA512" CRYPTO_ALGO_RSA1024 = "RSA1024" CRYPTO_ALGO_RSA2048 = "RSA2048" CRYPTO_ALGO_RSA3072 = "RSA3072" CRYPTO_ALGO_SM2 = "SM2" CRYPTO_ALGO_ECC_P256 = "ECC_P256" CRYPTO_ALGO_ECC_P384 = "ECC_P384" CRYPTO_ALGO_ECC_P521 = "ECC_P521" CRYPTO_ALGO_ECC_Ed25519 = "ECC_Ed25519" CRYPTO_ALGO_ECC_Secp256k1 = "ECC_Secp256k1" )
View Source
const ( BITS_SIZE_128 BitsSize = 128 BITS_SIZE_192 = 192 BITS_SIZE_256 = 256 BITS_SIZE_512 = 512 BITS_SIZE_1024 = 1024 BITS_SIZE_2048 = 2048 BITS_SIZE_3072 = 3072 )
View Source
const CRYPTO_DEFAULT_UID = "1234567812345678"
constant UID for SM2-SM3
Variables ¶
View Source
var AsymAlgoMap = map[string]KeyType{ CRYPTO_ALGO_RSA512: RSA512, CRYPTO_ALGO_RSA1024: RSA1024, CRYPTO_ALGO_RSA2048: RSA2048, CRYPTO_ALGO_RSA3072: RSA3072, CRYPTO_ALGO_SM2: SM2, CRYPTO_ALGO_ECC_P256: ECC_NISTP256, CRYPTO_ALGO_ECC_P384: ECC_NISTP384, CRYPTO_ALGO_ECC_P521: ECC_NISTP521, CRYPTO_ALGO_ECC_Ed25519: ECC_Ed25519, CRYPTO_ALGO_ECC_Secp256k1: ECC_Secp256k1, }
View Source
var HashAlgoMap = map[string]HashType{ CRYPTO_ALGO_SHA256: HASH_TYPE_SHA256, CRYPTO_ALGO_SHA3_256: HASH_TYPE_SHA3_256, CRYPTO_ALGO_SM3: HASH_TYPE_SM3, }
View Source
var KeyType2NameMap = map[KeyType]string{ AES: CRYPTO_ALGO_AES, SM4: CRYPTO_ALGO_SM4, RSA512: CRYPTO_ALGO_RSA512, RSA1024: CRYPTO_ALGO_RSA1024, RSA2048: CRYPTO_ALGO_RSA2048, RSA3072: CRYPTO_ALGO_RSA3072, SM2: CRYPTO_ALGO_SM2, ECC_Secp256k1: CRYPTO_ALGO_ECC_Secp256k1, ECC_NISTP256: "ECC_NISTP256", ECC_NISTP384: "ECC_NISTP384", ECC_NISTP521: "ECC_NISTP521", ECC_Ed25519: CRYPTO_ALGO_ECC_Ed25519, }
View Source
var Name2KeyTypeMap = map[string]KeyType{ CRYPTO_ALGO_AES: AES, CRYPTO_ALGO_SM4: SM4, CRYPTO_ALGO_RSA512: RSA512, CRYPTO_ALGO_RSA1024: RSA1024, CRYPTO_ALGO_RSA2048: RSA2048, CRYPTO_ALGO_RSA3072: RSA3072, CRYPTO_ALGO_SM2: SM2, CRYPTO_ALGO_ECC_Secp256k1: ECC_Secp256k1, "ECC_NISTP256": ECC_NISTP256, "ECC_NISTP384": ECC_NISTP384, "ECC_NISTP521": ECC_NISTP521, CRYPTO_ALGO_ECC_Ed25519: ECC_Ed25519, }
View Source
var SymAlgoMap = map[string]KeyType{ CRYPTO_ALGO_AES: AES, CRYPTO_ALGO_AES128: AES, CRYPTO_ALGO_AES192: AES, CRYPTO_ALGO_AES256: AES, CRYPTO_ALGO_SM4: SM4, }
Functions ¶
This section is empty.
Types ¶
type DecryptKey ¶
type EncOpts ¶
type EncOpts struct { EncodingType string BlockMode string EnableMAC bool Hash HashType Label []byte EnableASN1 bool }
Encryption options
type EncryptKey ¶
type Key ¶
type Key interface { // 获取秘钥字节数组 Bytes() ([]byte, error) // 获取秘钥类型 Type() KeyType // 获取编码后秘钥(PEM格式) String() (string, error) }
=== 秘钥接口 ===
type PrivateKey ¶
type PrivateKey interface { Key // 私钥签名 Sign(data []byte) ([]byte, error) SignWithOpts(data []byte, opts *SignOpts) ([]byte, error) // 返回公钥 PublicKey() PublicKey // 转换为crypto包中的 PrivateKey 接口类 ToStandardKey() crypto.PrivateKey }
=== 非对称秘钥签名+验签接口 === 私钥签名接口
type PublicKey ¶
type PublicKey interface { Key // 公钥验签 Verify(data []byte, sig []byte) (bool, error) VerifyWithOpts(data []byte, sig []byte, opts *SignOpts) (bool, error) // 转换为crypto包中的 PublicKey 接口类 ToStandardKey() crypto.PublicKey }
公钥验签接口
type SignOpts ¶
Signing options
Directories ¶
Path | Synopsis |
---|---|
hibe_amd64/hibe
Package hibe implements the cryptosystem described in the paper "Hierarchical Identity Based Encyprtion with Constant Size Ciphertext" by Boneh, Boyen, and Goh.
|
Package hibe implements the cryptosystem described in the paper "Hierarchical Identity Based Encyprtion with Constant Size Ciphertext" by Boneh, Boyen, and Goh. |
hibe_amd64/hibe/bn256
Package bn256 implements a particular bilinear group at the 128-bit security level.
|
Package bn256 implements a particular bilinear group at the 128-bit security level. |
hibe_noamd64/hibe
Package hibe implements the cryptosystem described in the paper "Hierarchical Identity Based Encyprtion with Constant Size Ciphertext" by Boneh, Boyen, and Goh.
|
Package hibe implements the cryptosystem described in the paper "Hierarchical Identity Based Encyprtion with Constant Size Ciphertext" by Boneh, Boyen, and Goh. |
hibe_noamd64/hibe/bn256
Package bn256 implements a particular bilinear group.
|
Package bn256 implements a particular bilinear group. |
Click to show internal directories.
Click to hide internal directories.