ASN.1
JSONのようなデータ記述言語の古いもの、型の定義方法だけ決められていて書式は決まっていないので複数ある module を把握するには X.680 ?
データ型的な入門はX.690のDER から入ればいいかも仕様は BER から書かれているので差分に悩みながら読み
書式とデータ
X.680 では型定義など構造の定義形式、X.690 ではデータ形式について書かれている
汎用型の他、 [2] などで書かれるタグ(応用:Application, コンテキスト特定:Context-specific, プライベート: private) がある
構造はSEQUENCE/SEQUENCE OFがあり、JSONのObjectのような名前はデータに含まない(省略するのであらかじめ元のスキーマ定義側の型を知っている必要あり) OBJECTIDENTIFIER で各項目を区別できる
OCTETSTRING でDERなどの構造を入れ子構造にすることもある (SEQUENCEの階層化とは違う)
ITU-T X.680 から 683, X.690 から X.692 ぐらい読めばいい?
JIS は旧規格のX5603が残っているが新しいX5605 (引用だけで中身なし?)は廃止されているらしい
最新版は ITU-T X.680 X.690
ITU-T X.680 ISO/IEC 8824-1 JIS X 5605-1 Abstract Syntax Notation One. Specification of basic notation 基本表記の仕様 ITU-T X.681 ISO/IEC 8824-2 JIS X 5605-2 Abstract Syntax Notation One: Information Object Specification. 情報オブジェクトの仕様 ITU-T X.682 ISO/IEC 8824-3 JIS X 5605-3 Abstract Syntax Notation One: Constraint Specification. 制約仕様 ITU-T X.683 ISO/IEC 8824-4 JIS X 5605-4 Abstract Syntax Notation One: Parameterization of ASN.1 Specifications. ASN.1のパラメータ化仕様 ISO/IEC 8825-1 JIS X 5603 (ASN.1) 仕様
書式 ASN.1 encoding rules
BER ITU-T X.690 ISO/IEC 8825-1 JIS X 5606-1 Basic Encoding Rules 基本符号化規則 CER ITU-T X.690 ISO/IEC 8825-1 JIS X 5606-1 Canonical Encoding Rules 標準符号化規則
DER ITU-T X.690 ISO/IEC 8825-1 JIS X 5606-1 Distinguished Encoding Rules 識別符号化規則 PER ITU-T X.691 ISO/IEC 8825-2 JIS X 5606-2 Specification of Packed Encoding Rules (PER)
ECN ITU-T X.692 ISO/IEC 8825-3 Specification of Encoding Control Notation (ECN) エンコーディング制御表記法 XER ITU-T X.693 ISO/IEC 8825-4 XML Encoding Rules (XER)
ITU-T X.694 ISO/IEC 8825-5 Mapping W3C XML schema definitions into ASN.1
ITU-T X.695 ISO/IEC 8825-6 Registration and application of PER encoding instructions
OER ITU-T X.696 ISO/IEC 8825-7 Specification of Octet Encoding Rules (OER)
JER ITU-T X.697 ISO/IEC 8825-8 Specification of JavaScript Object Notation Encoding Rules (JER)
RFC 4912 ASN.X
のような感じ
BER はゆるい符号化ルールで1つの値を複数の表現で記述することができる
CER/DERはBERに制限を設けて1つの値を1つの形式に絞れるようにしたもの。再構築しても変わりようがなくなるのでデジタル署名などが使いやすい。 BER/CER/DERをBASE64でくるんだものがPEMだったりする(改行は64文字くらい?) 最近はDERが使われるが、そうでもないBER/CERなPEMもある。
RFC 5911 New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME
RFC 5912 New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX) 暗号などの分野で標準書式っぽくDERが使われる。