Формат открытого ключа RSA "BIT STRING" - PullRequest
3 голосов
/ 23 апреля 2019
30 81 9F            ;SEQUENCE (0x9f bytes = 159 bytes)
|  30 0D            ;SEQUENCE (0x0d bytes = 13 bytes)
|  |  06 09         ;OBJECT_IDENTIFIER (0x09 = 9 bytes)
|  |  2A 86 48 86   ;Hex encoding of 1.2.840.113549.1.1
|  |  F7 0D 01 01 01
|  |  05 00         ;NULL (0 bytes)
|  03 81 8D 00      ;BIT STRING (0x8d bytes = 141 bytes)
|  |  30 81 89          ;SEQUENCE (0x89 bytes = 137 bytes)
|  |  |  02 81 81       ;INTEGER (0x81 bytes = 129 bytes)
|  |  |  00          ;leading zero of INTEGER
|  |  |  DC 67 FA
|  |  |  F4 9E F2 72 1D 45 2C B4  80 79 06 A0 94 27 50 82
|  |  |  09 DD 67 CE 57 B8 6C 4A  4F 40 9F D2 D1 69 FB 99
|  |  |  5D 85 0C 07 A1 F9 47 1B  56 16 6E F6 7F B9 CF 2A
|  |  |  58 36 37 99 29 AA 4F A8  12 E8 4F C7 82 2B 9D 72
|  |  |  2A 9C DE 6F C2 EE 12 6D  CF F0 F2 B8 C4 DD 7C 5C
|  |  |  1A C8 17 51 A9 AC DF 08  22 04 9D 2B D7 F9 4B 09
|  |  |  DE 9A EB 5C 51 1A D8 F8  F9 56 9E F8 FB 37 9B 3F
|  |  |  D3 74 65 24 0D FF 34 75  57 A4 F5 BF 55
|  |  02 03          ;INTEGER (0x03 = 3 bytes)
|  |  |  01 00 01    ;hex for 65537.

Здравствуйте, у меня есть некоторые сомнения по поводу «03 81 8D 00; BIT STRING (0x8d bytes = 141 bytes)», зачем добавлять «00» в конце, я искал много информации, но все еще не могу найти почему, я надеюсь, кто-то может помочь ответить на мои сомнения, спасибо! ! !

1 Ответ

3 голосов
/ 23 апреля 2019

Первый байт содержимого типа BITSTRING указывает, сколько неиспользованных битов содержится в последнем байте содержимого.

В этом случае содержимое представляет собой SEQUENCE, состоящий из 2 INTEGER с, и последний байт последнего целочисленного значения используется полностью, поэтому байт сигнала установлен в ноль.

См. Документацию Microsoft дальнейшие подробности.

...