证书格式说明

packageinfo 返回的信息内容为整个的签名信息。

尾部信息:89 16 e6

头部信息:3082030D

总共785个字符信息

1211个字符在cert.rsa里面的

 packageInfo.signatures 这里的签名信息就是用来计算签名的。
签名信息为byte数组类型,该类型的参数为字节数组的类型,共785个byte,这个byte数组中包括
公钥信息,

证书格式说明:
CertificateList  ::=  SEQUENCE  {
        tbsCertList          TBSCertList,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }
证书的数据格式为
(注意:计算签名时候包括tag length和val三个参数)
ASN.1 DER encoding is a
   tag, length, value encoding system for each element.
以下数据为certificate:
证书的签名是对TBSCertificate这一块的数据进行签名的。
首先计算sha256(TBSCertificate),得出结果为
89 58 E6 88 F5 6F CF EC 74 45 DC E4 2C C9 C8 2B 18 45 9C BB CC 91 09 6B 72 2D 4A A5 3A CA 40 E6 
共32个字节:

对证书里的
signatureValue用公钥进行解密后得到:

30 31 30 0D 06 09 60 86 48 01 65 03 04 02 01 05
00 04 20 89 58 E6 88 F5 6F CF EC 74 45 DC E4 2C
C9 C8 2B 18 45 9C BB CC 91 09 6B 72 2D 4A A5 3A
CA 40 E6

解析的为30 31(长度)+算法标识+sha256的结果

 

 

 //证书扩展域信息

\x30 \x82 \x03 \x0d \x30 \x82 \x01 \xf5
\xa0 \x03 \x02 \x01 \x02 \x02 \x04 \x45
\x62 \xb9 \xc5 \x30 \x0d \x06 \x09 \x2a
\x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x0b
\x05 \x00 \x30 \x37 \x31 \x0b \x30 \x09
\x06 \x03 \x55 \x04 \x06 \x13 \x02 \x55
\x53 \x31 \x10 \x30 \x0e \x06 \x03 \x55
\x04 \x0a \x13 \x07 \x41 \x6e \x64 \x72
\x6f \x69 \x64 \x31 \x16 \x30 \x14 \x06
\x03 \x55 \x04 \x03 \x13 \x0d \x41 \x6e
\x64 \x72 \x6f \x69 \x64 \x20 \x44 \x65
\x62 \x75 \x67 \x30 \x1e \x17 \x0d \x31
\x36 \x30 \x37 \x31 \x35 \x30 \x31 \x31
\x37 \x33 \x35 \x5a \x17 \x0d \x34 \x36
\x30 \x37 \x30 \x38 \x30 \x31 \x31 \x37
\x33 \x35 \x5a \x30 \x37 \x31 \x0b \x30
\x09 \x06 \x03 \x55 \x04 \x06 \x13 \x02
\x55 \x53 \x31 \x10 \x30 \x0e \x06 \x03
\x55 \x04 \x0a \x13 \x07 \x41 \x6e \x64
\x72 \x6f \x69 \x64 \x31 \x16 \x30 \x14
\x06 \x03 \x55 \x04 \x03 \x13 \x0d \x41
\x6e \x64 \x72 \x6f \x69 \x64 \x20 \x44
\x65 \x62 \x75 \x67 \x30 \x82 \x01 \x22
\x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86
\xf7 \x0d \x01 \x01 \x01 \x05 \x00 \x03
\x82 \x01 \x0f \x00 \x30 \x82 \x01 \x0a
\x02 \x82 \x01 \x01 \x00 \xe5 \x31 \x34
\xe7 \xd2 \x52 \x15 \x63 \x9d \x8c \x49
\xc2 \xf8 \x10 \x02 \x60 \x80 \x75 \xb3
\xf5 \x46 \xa1 \x7b \xd5 \x4c \x33 \x71
\x5a \x9b \x34 \xe1 \x15 \x5f \xbb \x06
\xa9 \x8f \x18 \xc8 \x12 \xb0 \xfd \xc0
\xe9 \x8a \xd7 \x98 \xb1 \x45 \x38 \x11
\x31 \x34 \x6d \x2e \xf1 \x7b \x64 \xbb
\x4b \x4f \x28 \xd5 \xf9 \xe8 \x5a \x43
\x6b \xd2 \xd4 \xee \x83 \xdf \xd4 \xdb
\x50 \x76 \xb9 \xb0 \x72 \x39 \x1e \x87
\x25 \x92 \xce \xb8 \xe4 \xbe \x54 \x69
\x23 \x72 \x0c \xc1 \xf6 \x42 \x5d \xca
\xc4 \x30 \x3d \xf8 \x7a \x6a \x36 \xfd
\xf0 \x1d \x6a \xa8 \xc9 \x91 \xc2 \x3c
\x33 \xf8 \x8b \x6e \xf3 \x7d \x33 \x9d
\x16 \xef \xbc \x0a \xce \x0f \xbc \xf7
\x4f \x25 \x09 \xdb \xf6 \xd8 \xd6 \x98
\xd8 \xc4 \xaa \xba \x04 \x6d \x93 \x0a
\xa9 \x03 \xb4 \x68 \xd2 \x11 \xca \x9c
\x7a \xf8 \x39 \x7a \x58 \xbd \x69 \x26
\xb7 \x59 \x10 \x80 \x00 \xa4 \x36 \x59
\xa9 \x24 \x9b \xf7 \xa2 \x0b \x38 \x22
\x7e \x6d \x12 \x82 \xfa \x32 \xfc \x28
\xb6 \x9d \xd2 \xd9 \x9c \x74 \x85 \x68
\x96 \xd0 \x4e \x2d \xe8 \x71 \x4a \xc1
\x34 \xa0 \xfd \xce \xc2 \x02 \x85 \xa3
\x37 \x64 \x50 \x8a \xee \x73 \xfc \xc2
\x37 \x03 \x14 \xa0 \x9c \xe3 \x1f \xa2
\x9f \xef \xa7 \x6b \x13 \x9e \x52 \x7d
\x3f \xbf \x35 \xe4 \xdf \xc0 \xdc \x33
\x62 \xd9 \x3f \x99 \x8d \xbd \x13 \x47
\x77 \xad \x0f \xfd \xa3 \x02 \x03 \x01
\x00 \x01 \xa3 \x21 \x30 \x1f \x30 \x1d
\x06 \x03 \x55 \x1d \x0e \x04 \x16 \x04
\x14 \xfb \xcc \x6c \x9b \xc6 \x61 \xcd
\x03 \x25 \xcc \x70 \x82 \x57 \xb0 \xf5
\xc2 \xf2 \x1b \x3d \xa1

//证书算法标识

 

\x30 \x0d \x06 \x09 \x2a \x86 \x48 \x86 \xf7 \x0d \x01 \x01 \x0b \x05 \x00

//证书签名数据

 

\x03 \x82 \x01 \x01
\x00 \x7a \x72 \x29 \x25 \xd4 \x29 \xcb
\x30 \xc1 \x23 \xea \x70 \x34 \x1a \x88
\x7b \xc2 \xe8 \x70 \xfa \x8a \x56 \x26
\x58 \x10 \x2a \xba \x71 \x93 \x72 \x15
\x9d \xef \xa9 \x41 \x26 \x8c \xec \x63
\x35 \x8b \x45 \x6e \x4f \x80 \x56 \x95
\x02 \x9b \xb3 \x39 \xf4 \x7a \xf8 \x3b
\x68 \xb9 \x9e \x54 \x53 \x75 \x96 \xd5
\x32 \x31 \xf2 \x55 \xd3 \x40 \x18 \xfb
\x6a \x35 \x34 \x1e \x3d \x41 \x7e \x32
\xd3 \xd6 \x51 \x7d \x83 \x6f \x9a \xda
\x6a \xe2 \x6e \xec \x78 \xf8 \xd2 \x66
\x6e \xa6 \xff \x5d \x96 \x19 \xdc \x95
\x8f \x60 \x98 \xa5 \x49 \xdd \x94 \x43
\x15 \x46 \x5d \xae \x8e \xdf \x2a \xc2
\x05 \xe6 \x65 \x98 \x47 \x30 \x01 \xa1
\x74 \x5f \x57 \x6a \x5a \x5f \x0c \x78
\x15 \xd2 \x12 \x2a \x5e \xa6 \xd9 \x94
\x99 \xde \x36 \x7b \xe2 \x1d \x3b \xad
\xb4 \xc1 \xc1 \x46 \x0d \x88 \xea \x0b
\x7c \xcb \x37 \x04 \xf3 \x36 \xbb \xe1
\x6c \x91 \xab \x5d \x02 \x87 \x6c \xef
\x31 \x44 \xd7 \xa5 \xe8 \xf6 \x1c \x7e
\x9f \x5d \x8f \xfc \xa4 \x25 \xb2 \x7a
\xc9 \x3f \xf0 \xac \x83 \x5a \xff \x93
\x0d \xb7 \xa7 \x55 \x0e \xca \xaf \x84
\xd1 \x3e \x17 \x0d \x42 \x44 \x26 \x29
\x7f \xbe \xe0 \x30 \x24 \xba \x47 \x1a
\x8c \x40 \x59 \x50 \xb3 \x95 \xf8 \xa5
\x91 \x3d \xa4 \x24 \x2e \xd6 \x5b \x68
\xab \x58 \x17 \xe7 \xe3 \xa1 \x6d \xf4
\x81 \xce \xb2 \xde \x4a \xcf \x89 \x16
\xe6

证书链校验方式:安卓证书的校验方式,检验根证书,所以握手时候需要传输所有的中间证书

 

公钥证书格式说明

pcks#7格式证书

30 820122(290)
  30 0D
    06 09 2A864886F70D010101
    05 00
  03 82010F(271) 003082010A0282010100AF240808297A359E600CAAE74B3B4EDC7CBC3C45...

直接用公钥和私钥进行保存证书:

3082010A0282010100AF240808297A359E600CAAE74B3B4EDC7CBC3C45...

上述的证书中无算法标识,所以证书的格式不准确




posted on 2017-07-28 14:59  tistar  阅读(1507)  评论(0编辑  收藏  举报