第十三章 NSA1库 / 13.3 ASN1基本类型示例

1  ASN1_BOOLEAN

表明了ASN1语法中的trueflase。用户以用UltraEdit等工具编辑一个二进制文件来查看,此二进制文件的内容为:0x30 0x03 0x01 0x01 0x00,然后用asn1view工具查看此文件内容。显示如下:

其中0x01 (表示为BOOLEAN) 0x01(表示后面值的长度) 0x00(值)为本例BOOLEANDER编码。

       2  ASN1_OBJECT

ASN1中的OBJECT表明来一个对象,每个对象有一个OID(object id)。例如:OUOID2.5.4.11OBJECT对象在DER编码的时候通过计算将OID转换为另外一组数据(可用函数a2d_ASN1_OBJECTH函数)。用户编辑一个二进制文件,内容为:0x30 0x05 0x06 0x03 0x55 0x04 0x0A,用asn1view打开查看。如下:

其中0x06(表示为OBJECT类型) 0x03(值的长度) 0x55 0x04 0x0A(此三项由2.5.4.11计算而来)为此OBJECTDER编码。

       3)    ASN1_INTEGER

ASN1中的INTEGER类型用于表示整数。编辑一个二进制文件,其内容为:0x30 0x03 0x02(整数) 0x01 (整数值长度)0x55 (整数值)。用an1view查看如下:

4  ASN1_ENUMERATED

ASN1枚举类型,示例如下:

5)           ASN1_BIT_STRING

示例如下:

此图显示0x01 0x02DER编码:0x03BIT STRING 类型) 0x02(长度) 0x01 0x02(比特值)。

6  ASN1_OCTET_STRING

如下:

显示0x01 0x02OCTET STRING编码:0x04(OCTET STRING) 0x02(长度) 0x01 0x02(值)。

7ASN1_PRINTABLESTRING

可打印字符,如下:

显示来可打印字符“asn1“的DER编码,其编码值为0x13(PRINTABLESTRING) 0x04(值长度) 0x61 0x73 0x6E 0x31(值,即“asn1)

       其他:

ASN1_UTCTIME:表示时间。

ASN1_GENERALIZEDTIME:表示时间。

ASN1_VISIBLESTRING:存放可见字符。

ASN1_UTF8STRING:用于存放utf8字符串,存放汉字需要将汉字转换为utf8字符串。

ASN1_TYPE:用于存放任意类型。