3: 2021-07-06 (火) 11:10:23 iseki |
4: 2022-10-19 (水) 13:23:25 iseki |
| -- BER(Basic Encoding Rules) 曖昧性がある. | | -- BER(Basic Encoding Rules) 曖昧性がある. |
| -- DER(Distinguished Encoding Rules) 曖昧性がない.BERのサブセット版 | | -- DER(Distinguished Encoding Rules) 曖昧性がない.BERのサブセット版 |
| + | #br |
| + | - https://letsencrypt.org/ja/docs/a-warm-welcome-to-asn1-and-der/ |
| #br | | #br |
| | | |
| | | |
| **** 識別子(タグ) [#mfd4eb60] | | **** 識別子(タグ) [#mfd4eb60] |
- | - 5bit 0: Primitive, 1:Constructed | + | - 1bit から数える |
- | - 6,7bit Class 0x00 UNIVERSAL, 0x01 APPLICATION, 0x10 Context-Defined, 0x11 PRIVATE | + | - 8,7bit Class: |
| + | -- 0000(0x00) UNIVERSAL(汎用)(通常はこれ) |
| + | -- 0100(0x40) APPLICATION(応用) |
| + | -- 1000(0x80) Context-Specific(コンテキスト特定) |
| + | -- 1100(0xc0) PRIVATE(私用) |
| + | - 6bit |
| + | -- 0000(0x00)Primitive(基本型) |
| + | -- 0010(0x20)Constructed(構造型) |
| #br | | #br |
- | - 0x02:整数(INT) | + | - 汎用タグ(1~5bit) |
- | - 0x03:ビット列(BIT) | + | -- 0x02:整数(INTEGER) |
- | - 0x04:8bit文字列(OCT) | + | -- 0x03:ビット列(BIT STRING) |
- | - 0x06:オブジェクト(OBJ) | + | -- 0x04:8bit文字列(OCTET STRING) |
- | - 0x30 : シーケンス(SEQ) Constructed 0x10 | + | -- 0x05:NULL(NULL) |
- | - 0x31:セット(SET) Constructed 0x11 | + | -- 0x06:オブジェクト(OBJECT IDENTIFIER) |
| + | -- 0x0c:UTF8文字列(UTF8String) |
| + | -- 0x10:シーケンス(SEQUENCE) |
| + | -- 0x11:セット(SET) |
| + | -- 0x30:構造型シーケンス(SEQUENCE) |
| + | -- 0x31:構造型セット(SET) |
| #br | | #br |
| | | |
| **** コンテンツ長 [#f4cdba1d] | | **** コンテンツ長 [#f4cdba1d] |
| - 0x7F 以下:長さを格納するバイトはこの1Byte のみ | | - 0x7F 以下:長さを格納するバイトはこの1Byte のみ |
- | - 0x80 以上:下位7bit(x - 0x80)がこれ以降に続く,長さを格納するバイト数. | + | - 0x80 以上:下位7bit(0x01~0x7f)がこれ以降に続く,長さを格納するバイト数. |
| -- 0x81:この後の1Byteが長さを表す. | | -- 0x81:この後の1Byteが長さを表す. |
| - ということは 0x80 はあり得ない. | | - ということは 0x80 はあり得ない. |