init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
// Package identifier is the Cryptographic application identifier
// criterion specfication. see also GM/T 0006 and GB/T 33560.
package identifier
+86
View File
@@ -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
)
+67
View File
@@ -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 //支持热拔插的智能密码钥匙或智能卡类密码设备
)