init: v1.0.0
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
// Package identifier is the Cryptographic application identifier
|
||||
// criterion specfication. see also GM/T 0006 and GB/T 33560.
|
||||
package identifier
|
||||
@@ -0,0 +1,86 @@
|
||||
package identifier
|
||||
|
||||
import "encoding/asn1"
|
||||
|
||||
type ObjectIdentifier = asn1.ObjectIdentifier
|
||||
|
||||
var (
|
||||
// GBT 33560
|
||||
OIDISOMember = asn1.ObjectIdentifier{1, 2} //国际标准化组织成员标识
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156} //中国
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 197} //国家密码管理局
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197} //国家密码行业标准化技术委员会
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 1} //密码算法
|
||||
|
||||
// 分组密码算法对象标识符
|
||||
OIDBlock = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 100} //分组密码算法
|
||||
OIDSM1 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 102} //SM1分组密码算法
|
||||
OIDSSF33 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 103} //SSF33分组密码算法
|
||||
OIDSM4 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 104} //SM4分组密码算法
|
||||
|
||||
// 序列密码算法对象标识符
|
||||
OIDStream = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 200} //序列密码算法
|
||||
OIDZUC = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 201} //祖冲之序列密码算法
|
||||
|
||||
// 公钥密码算法对象标识符
|
||||
OIDPublic = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 300} //公钥密码算法
|
||||
OIDSM2 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 301} //SM2椭圆曲线公钥密码算法
|
||||
OIDSM2Signature = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 301, 1} //SM2-1数字签名算法
|
||||
OIDSM2KeyExchange = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 301, 2} //SM2-2密钥交换协议
|
||||
OIDSM2Encryption = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 301, 3} //SM2-3公钥加密算法
|
||||
|
||||
OIDSM9 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302} //SM9 IBC密码算法
|
||||
OIDSM9Signature = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 1} //SM9 IBC签名算法
|
||||
OIDSM9KeyExchange = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 2} //SM9 IBC密钥交换协议
|
||||
OIDSM9Encryption = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 3} //SM9 IBC加密算法
|
||||
OIDSM9EncryptionKDF = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 3, 0} //基于KDF加密模式的SM9 IBC加密
|
||||
OIDSM9EncryptionECB = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 3, 1} //基于SM4_ECB加密模式的SM9 IBC加密
|
||||
OIDSM9EncryptionCBC = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 3, 2} //基于SM4_CBC加密模式的SM9 IBC加密
|
||||
OIDSM9EncryptionCFB = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 3, 3} //基于SM4_CFB加密模式的SM9 IBC加密
|
||||
OIDSM9EncryptionOFB = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 3, 4} //基于SM4_OFB加密模式的SM9 IBC加密
|
||||
OIDSM9KeyEncupsulate = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 302, 4} //SM9 IBC密钥封装机制
|
||||
|
||||
// 杂凑算法对象标识符
|
||||
OIDHash = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 400} //杂凑算法
|
||||
OIDSM3 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 401} //SM3密码杂凑算法
|
||||
OIDSM3WithoutKey = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 401, 1} //SM3密码杂凑算法,无密钥使用
|
||||
OIDSM3WithKey = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 401, 2} //SM3密码杂凑算法,有密钥使用
|
||||
|
||||
// 组合运算算法对象标识符
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 500} //组合运算机制
|
||||
OIDSM3WithSM2Encryption = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 501} //基于SM2算法和SM3算法的签名, name IdSm3WithSm2Encryption is from GB/T 20518-2018 appendix E
|
||||
OIDSM3WithRSAEncryption = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 504} //基于RSA算法和SM3算法的签名
|
||||
|
||||
// CA代码对象标识符
|
||||
OIDCA = asn1.ObjectIdentifier{1, 2, 156, 10197, 4, 3} //CA代码
|
||||
|
||||
// 标准体系对象标识符
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6} //标准体系
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1} //基础类
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 1} //算法类
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 1, 1} //《祖冲之序列密码算法》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 1, 2} //《SM4分组密码算法》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 1, 3} //《SM2椭圆曲线公钥密码算法》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 1, 4} //《SM3密码杂凑算法》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 2} //标识类
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 2, 1} //《密码应用标识规范》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 3} //工作模式
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 4} //安全机制
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 4, 1} //《SM2密码使用规范》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 4, 2} //《SM2加密签名消息语法规范》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 2} //设备类
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 3} //服务类
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 4} //基础设施
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 5} //检测类
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 5, 1} //《随机性检测规范》
|
||||
_ = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 6} //管理类
|
||||
|
||||
// defined in GMT 0091 附录
|
||||
// hmac_sm3 是哪个
|
||||
// OIDHMacWithSM3 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 401, 3, 1} // hmac_sm3
|
||||
OIDHMacWithSM3 = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 401, 2} //SM3密码杂凑算法,有密钥使用
|
||||
OIDSM4ECB = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 104, 1} // sm4_ecb
|
||||
OIDSM4CBC = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 104, 2} // sm4_cbc
|
||||
OIDSM4GCM = asn1.ObjectIdentifier{1, 2, 156, 10197, 1, 104, 10} // sm4_gcm
|
||||
OIDPBKDF = asn1.ObjectIdentifier{1, 2, 156, 10197, 6, 1, 4, 1, 5, 1} // PBKDF
|
||||
)
|
||||
@@ -0,0 +1,67 @@
|
||||
package identifier
|
||||
|
||||
type AlgorithmID = uint32
|
||||
|
||||
const (
|
||||
SGDSM1Mask AlgorithmID = 0x00000100
|
||||
SGDSM4Mask AlgorithmID = 0x00000400 // SM4算法
|
||||
SGDSM2Mask AlgorithmID = 0x00020000 // SM2算法
|
||||
)
|
||||
|
||||
const (
|
||||
//分组密码算法的标识
|
||||
SGDSM1ECB AlgorithmID = 0x00000101 //nolint
|
||||
SGDSM1CBC AlgorithmID = 0x00000102 //nolint // SM1算法CBC加密模式
|
||||
SGDSM1CFB AlgorithmID = 0x00000104 //nolint // SM1算法CFB加密模式
|
||||
SGDSM1OFB AlgorithmID = 0x00000108 //nolint // SM1算法OFB加密模式
|
||||
SGDSM1Mac AlgorithmID = 0x00000110 //nolint // SM1算法MAC运算
|
||||
SGDSSF33ECB AlgorithmID = 0x00000201 //nolint // SSF33算法ECB加密模式
|
||||
SGDSSF33CBC AlgorithmID = 0x00000202 //nolint // SSF33算法CBC加密模式
|
||||
SGDSSF33CFB AlgorithmID = 0x00000204 //nolint // SSF33算法CFB加密模式
|
||||
SGDSSF33OFB AlgorithmID = 0x00000208 //nolint // SSF33算法OFB加密模式
|
||||
SGDSSF33Mac AlgorithmID = 0x00000210 //nolint // SSF33算法MAC运算
|
||||
SGDSM4ECB AlgorithmID = 0x00000401 //nolint // SMS4算法ECB加密模式
|
||||
SGDSM4CBC AlgorithmID = 0x00000402 //nolint // SMS4算法CBC加密模式
|
||||
SGDSM4CFB AlgorithmID = 0x00000404 //nolint // SMS4算法CFB加密模式
|
||||
SGDSM4OFB AlgorithmID = 0x00000408 //nolint // SMS4算法OFB加密模式
|
||||
SGDSM4GCM AlgorithmID = 0x02000400 //nolint // SMS4算法OFB加密模式
|
||||
SGDSM4Mac AlgorithmID = 0x00000410 //nolint // SMS4算法MAC运算
|
||||
SGDZUCEEA3 AlgorithmID = 0x00000801 // nolint
|
||||
SGDZUCEIA3 AlgorithmID = 0x00000802 // nolint
|
||||
|
||||
//非对称密码算法标识
|
||||
SGDRSA AlgorithmID = 0x00010000 //RSA算法
|
||||
SGDSM2 AlgorithmID = 0x00020100
|
||||
SGDSM21 AlgorithmID = 0x00020200 //椭圆曲线签名算法
|
||||
SGDSM22 AlgorithmID = 0x00020400 //椭圆曲线密钥交换协议
|
||||
SGDSM23 AlgorithmID = 0x00020800 //椭圆曲线加密算法
|
||||
|
||||
//密码杂凑算法标识
|
||||
SGDSM3 AlgorithmID = 0x00000001 //SM3杂凑算法
|
||||
SGDSHA1 AlgorithmID = 0x00000002 //SHA1杂凑算法
|
||||
SGDSHA256 AlgorithmID = 0x00000004 //SHA256杂凑算法
|
||||
SGDSM3HMAC AlgorithmID = 0x00000008 //SM3HMAC杂凑算法
|
||||
SGDSHA256HMAC AlgorithmID = 0x00000004 //SHA256HMAC杂凑算法
|
||||
|
||||
//签名算法的标识
|
||||
SGDSM3RSA AlgorithmID = 0x00001001 //基于SM3算法和RSA算法的签名
|
||||
SGDSHA1RSA AlgorithmID = 0x00001002 //基于SHA1算法和RSA算法的签名
|
||||
SGDSHA256RSA AlgorithmID = 0x00001004 //基于SHA256算法和RSA算法的签名
|
||||
SGDSM3SM2 AlgorithmID = 0x00020101 //基于SM2算法和SM3算法的签名
|
||||
|
||||
//SM9 GB/T 33560
|
||||
SGDSM9 AlgorithmID = 0x00040100 // SM9标识密码算法
|
||||
SGDSM91 AlgorithmID = 0x00040200 //SM9数字签名算法
|
||||
SGDSM92 AlgorithmID = 0x00040400 //SM9密钥交换协议
|
||||
SGDSM93 AlgorithmID = 0x00040800 //SM9 IBC加密算法 - KDF模式
|
||||
SGDSM931 AlgorithmID = 0x00040801 //基于SM4ECB加密模式的SM9 IBC加密
|
||||
SGDSM932 AlgorithmID = 0x00040802 //基于SM4CBC加密模式的SM9 IBC加密
|
||||
SGDSM933 AlgorithmID = 0x00040804 //基于SM4CFB加密模式的SM9 IBC加密
|
||||
SGDSM934 AlgorithmID = 0x00040808 //基于SM4OFB加密模式的SM9 IBC加密
|
||||
SGDSM94 AlgorithmID = 0x00041000 //SM9 IBC密钥封装机制
|
||||
|
||||
SGDDEVICESORTSJ AlgorithmID = 0x02000000 //通过网络提供服务的密码设备
|
||||
SGDDEVICESORTSK AlgorithmID = 0x03000000 //不支持热拔插功能的密码设备,如PCI 密码卡
|
||||
SGDDEVICESORTSM AlgorithmID = 0x04000000 //支持热拔插的智能密码钥匙或智能卡类密码设备
|
||||
|
||||
)
|
||||
Reference in New Issue
Block a user