順序列型は、0個以上に順序付けされたASN.1データ型の集まりを表現するデータ型です。順序列型は、構成要素の定義の並び順に符号化をするため、並び順が重要な意味を持ちます。構成要素の並び順に意味を持たせない場合は、集合型を使用します。
型の記法
順序列型 ::= SEQUENCE{要素型リスト}
要素型リスト ::= 要素型 | 要素型リスト , 要素型
要素型 ::= 名前付き型 | 名前付き型 OPTIONAL | 名前付き型 DEFAULT 値 | COMPONENT OF 型
名前付き型 ::= 識別子 型 | 型 | 参照選択型
型の例
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time }
上記の例は、構成要素のデータ型がすべて同じ Time型で表現される期間を表わす順序列型です。
順序列型は各要素型を指定するときにその要素を省略してもいい場合、OPTIONAL キーワードを使用して表現します。
下記は、OPTIONALキーワードを使用した順序列型の例です。
PKIStatusInfo ::= SEQUENCE {
status PKIStatus,
statusString PKIFreeText OPTIONAL,
failInfo PKIFailureInfo OPTIONAL }
http://www.ietf.org/rfc/rfc2510.txt
要素が省略された場合に、その要素のデフォルト値を指定したい場合、DEFAULT キーワードを使用して表現します。
下記は、DEFAULTキーワードを使用した順序列型の例です。
TimeStampReq ::= SEQUENCE {
version INTEGER { v1(1) },
messageImprint MessageImprint,
reqPolicy TSAPolicyId OPTIONAL,
nonce INTEGER OPTIONAL,
certReq BOOLEAN DEFAULT FALSE,
extensions [0] IMPLICIT Extensions OPTIONAL }
http://www.ietf.org/rfc/rfc3161.txt
要素 certReqが省略された場合、その値は、FALSEと解釈します。
値の記法
順序列値 ::= { 要素値リスト } {}
要素値リスト ::= 名前付き値 | 要素値リスト , 名前付き値
名前付き値 ::= 識別子 値 | 値