/**
package oid defines the object identifier in GM/T 0006
*/
package oid

const (

	// 算法机制
	/*                    标准算法机制定义               */
	///////////////////////////////////////////////////////
	//              		分组密码算法的标识

	SGD_SM1_ECB   = 0x00000101 //SM1算法ECB加密模式
	SGD_SM1_CBC   = 0x00000102 //SM1算法CBC加密模式
	SGD_SM1_CFB   = 0x00000104 //SM1算法CFB加密模式
	SGD_SM1_OFB   = 0x00000108 //SM1算法OFB加密模式
	SGD_SM1_MAC   = 0x00000110 //SM1算法MAC运算
	SGD_SSF33_ECB = 0x00000201 //SSF33算法ECB加密模式
	SGD_SSF33_CBC = 0x00000202 //SSF33算法CBC加密模式
	SGD_SSF33_CFB = 0x00000204 //SSF33算法CFB加密模式
	SGD_SSF33_OFB = 0x00000208 //SSF33算法OFB加密模式
	SGD_SSF33_MAC = 0x00000210 //SSF33算法MAC运算
	SGD_SM4_ECB   = 0x00000401 //SMS4算法ECB加密模式
	SGD_SM4_CBC   = 0x00000402 //SMS4算法CBC加密模式
	SGD_SM4_CFB   = 0x00000404 //SMS4算法CFB加密模式
	SGD_SM4_OFB   = 0x00000408 //SMS4算法OFB加密模式
	SGD_SM4_MAC   = 0x00000410 //SMS4算法MAC运算
	//0x00000800～0x800000FF	为其它分组密码算法预留
	//非对称密码算法标识
	SGD_RSA   = 0x00010000 //RSA算法
	SGD_SM2_1 = 0x00020200 //椭圆曲线签名算法
	SGD_SM2_2 = 0x00020400 //椭圆曲线密钥交换协议
	SGD_SM2_3 = 0x00020800 //椭圆曲线加密算法

	//0x00040000～0x80000000	为其它非对称密码算法预留
	//密码杂凑算法标识
	SGD_SM3    = 0x00000001 //SM3杂凑算法
	SGD_SHA1   = 0x00000002 //SHA_1杂凑算法
	SGD_SHA256 = 0x00000004 //SHA_256杂凑算法
	SGD_SHA512 = 0x00000008 //SHA_512杂凑算法
	//	0x00000008～0x000000FF	为其它密码杂凑算法预留

	//签名算法的标识
	SGD_SM3_RSA    = 0x00001001 //基于SM3算法和RSA算法的签名
	SGD_SHA1_RSA   = 0x00001002 //基于SHA_1算法和RSA算法的签名
	SGD_SHA256_RSA = 0x00001004 //基于SHA_256算法和RSA算法的签名
	SGD_SM3_SM2    = 0x00020101 //基于SM2算法和SM3算法的签名
	//	0x00040000～0x800000FF	为其它密码签名算法预留

	//add by jgq 2016/09/01
	// SGD_SM9_1 = 0x00040100 //基于双线性对的标识密码签名算法
	// SGD_SM9_2 = 0x00040200 //基于双线性对的标识密码密钥交换协议
	// SGD_SM9_3 = 0x00040400 //基于双线性对的标识密码密钥封装算法
	// SGD_SM9_4 = 0x00040800 //基于双线性对的标识密码公钥加密算法

	// TODO update sm9 with gmt0006
	SGD_SM9   = 0x00040100 // SM9标识密码算法
	SGD_SM9_1 = 0x00040200 //SM9数字签名算法
	SGD_SM9_2 = 0x00040400 //SM9密钥交换协议
	SGD_SM9_3 = 0x00040800 //SM9密钥封装机制和公钥加密算法
)
