DER编码

1. Attribute Type编码

​ 对于标识串,采用低标识编码方式,只需1个字节。OBJECT IDENTIFIER的 tag为Ox06;class选择universal,则位8和位7为0,OBJECT IDENTIFIER为基本类型,则位6为0。因此,标识串=0x06。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由3个字节组成。2.5.4.6编码为55 04 06,2.5.4.10编码为5504 0A,2.5.4.3编码为55 04 03。

image-20210615151041671

2. AttributeValue编码

​ 对于标识串,采用低标识编码方式,只需1个字节。PrintableString 的 tag 为 0x 13; class选择universal,则位8和位7为0,OBJECT IDENTIFIER为基本类型,则位6为0。因此,标识串=0x13。

​ 对于长度串,采用短型编码方式,只需1个字节。对于内容串,由其ASCII码组成。

​ countryName为“CN”,organizationName为"20181230", commonName="zhuyoumin"

AttributeValue标识符长度串内容串
"CN" 13 02 43 4E
"20181230" 13 08 32 30 31 38 31 32 33 30
"zhuyoumin" 13 09 7A 68 75 79 6F 75 6D 69 6E

3. AttributeValueAssertion编码

​ 对于标识串,采用低标识编码方式,只需1个字节。SEQUENCE的 tag 为0x10;class选择universal,则位8和位7为0,SEQUENCE为结构类型,则位6为1。因此,标识串=0x30。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由AttributeType和 AttributeValue的 DER编码值组成。

AttributeValueAssertion标识符长度串内容串
countryName="CN" 30 09 06 03 55 04 06 13 02 43 4E
organizationName="20181230" 30 0F 06 03 55 04 0A 13 08 32 30 31 38 31 32 33 30
commonName="zhuyoumin" 30 10 06 03 55 04 03 13 09 7A 68 75 79 6F 75 6D 69 6E

4. RelativeDistinguishedName编码

​ 对于标识串,采用低标识编码方式,只需1个字节。SET OF的 tag 为0x11; class 选择universal,则位8和位7为0,SET OF为结构类型,则位6为1。因此,标识串=0x31。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由Attribute ValucAssertion的 DER编码值组成。

RelativeDistinguishedName标识符长度串内容串
countryName="CN" 31 0B 30 09 06 03 55 04 06 13 02 43 4E
organizationName="20181230" 31 11 30 0F 06 03 55 04 0A 13 08 32 30 31 38 31 32 33 30
commonName="zhuyoumin" 31 12 30 10 06 03 55 04 03 13 09 7A 68 75 79 6F 75 6D 69 6E

5. RDNSequence编码

​ 对于标识串,采用低标识编码方式,只需1个字节。SEQUENCE OF的 tag 为0x10;class选择universal,则位8和位7为0,SEQUENCE OF为结构类型,则位6为1。因此,标识串=0x30。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由3个 RelativeDistinguishedName的 DER编码值组成。

RDNSequence标识符长度串内容串
countryName="CN" 30 0D 31 0B 30 09 06 03 55 04 06 13 02 43 4E
organizationName="20181335" 30 13 31 11 30 0F 06 03 55 04 0A 13 08 32 30 31 38 31 33 33 35
commonName="zhangyy" 30 14 31 12 30 10 06 03 55 04 03 13 09 7A 68 61 6E 67 79 79

6. Name编码

最终编码为:

\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E\x32\x30\x31\x38\x31\x33\x33\x35\x31\x12\x30\x10\x06\x03\x55\x04\x03\x13\x09\x7A\x68\x61\x6E\x67\x79\x79


 

 

 

 
posted @ 2021-06-20 22:58  20181335ZYY  阅读(165)  评论(0编辑  收藏  举报