OpenSSL publi c кодировка ключа - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть вопрос о способе OpenSSL RSA, опубликованном c ключом DER-кодировки. В соответствии с RFC3447 представление ASN.1 ключа publi c представляет собой последовательность:

  RSAPublicKey ::= SEQUENCE {
      modulus           INTEGER,  -- n
      publicExponent    INTEGER   -- e
  }

Hexdump для некоторых генерируемых openssl DER-кодированных ключей publi c выглядит следующим образом :

0000000 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01
0000010 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01
0000020 00 f3 7b 82 a0 2b ff 0d b1 5b 63 16 e3 93 72 6b
0000030 43 9b b7 23 eb 2f 63 fa 2e db f1 d1 44 6c d9 6b
0000040 a5 14 60 e4 f8 4a 51 58 f7 ac 9d 75 f3 90 2f 42
0000050 80 b5 c3 92 db 2b 02 6c 02 0b 2c d7 17 d8 fe 4e
0000060 79 61 72 d5 43 c2 43 87 d2 0c d7 f3 7e 48 84 8c
0000070 b1 e1 fc 43 fb da a4 7f aa 10 c1 bf 45 34 23 09
0000080 ef 30 57 14 c0 68 ef 2b 74 9d db 01 a8 cc a1 2c
0000090 7d 4d 29 63 6a f5 a7 17 5a 29 95 df 8f d9 9e ab
00000a0 c7 ef 47 c6 16 e6 df 01 54 82 8d 29 ff 23 5b f3
00000b0 4e e1 9c 80 e0 26 81 bf 02 6e 65 82 32 f2 e5 f4
00000c0 dc ba 00 08 6e db f6 e8 04 de 08 ba 5e 4d f2 db
00000d0 aa 19 3e 4a a9 e1 ec 95 6d 41 b9 8b 0d c7 fc de
00000e0 96 97 8f 3f b4 3e de 07 e5 d4 2f 51 cc d5 b2 2f
00000f0 e4 b3 0c df 23 33 54 6e 9a 8d 59 79 8b b3 18 a1
0000100 5d 31 61 19 59 b0 64 1b 18 0a 2b 5e 43 7e c7 d2
0000110 3d 75 2d eb bb 2b 8d 51 8d c9 07 5f e1 4f 29 26
0000120 21 02 03 01 00 01
0000126

Итак, как вы можете видеть, в начале есть последовательность, которая содержит тип объекта ASN.1 (теги 06, 05):

0000000 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01
0000010 01 05 00 03 82 01 0f 00

Может кто-нибудь уточнить что это за объект и почему он используется в реализации openssl?

...