BERは符号化の際に送信側の任意である事が多く、同じ情報に対し多数の符号化が存在します。 これは特にデジタル署名を行う場合に問題になりました。 これに対処するために、BERの符号化方法に制限をかけた符号化方法であるCERとDERが規定されました。 CERとDERの主な違いは、DERが一定の長さのフォーマットを使うのに対して、 CERが不定長のフォーマットを使うことです。 主要な差分を下記に示します。
CER | DER | |
長さフィールド | 基本型の符号化化の際には、長さ127オクテット以下では短形式で、128オクテット以上では長形式を使用します。 構造型では可変長形式を使用します。 | 基本型でも構造型でも符号化化の際には、長さ127オクテット以下では短形式で、 128オクテット以上では長形式を使用します。 |
論理型 | TRUE値は常にオール1で符号化します。 | |
ビット列型 | 未使用ビットは常に0にします。 もし名前付きのビットリストの場合、後ろの0は常に切り捨てます。 もし型にサイズ制限がある場合は後ろの0のビットは必要なだけ存在しなければなりません。 もし長さが0の場合、長さフィールドは1、内容フィールドは1オクテットの0で符号化します。 |
|
ビット列型 オクテット列型 文字列型 |
もし1000オクテット未満なら基本型で符号化します。 1000オクテット以上なら、構造型で符号化し、最後を除き各要素は1000オクテット丁度でなければなりません。 |
常に基本型で符号化します。 |
順序列型 集合型 |
デフォルト値の要素は符号化しません。 | |
集合型 | 要素はタグの正規化順(汎用、応用、文脈特定、私用の順、同じクラスでは昇順)で符号化します。 | |
もし、要素がタグなしの選択型の場合、選択肢内のもっとも小さいタグの正規化順で符号化します。 | もし、要素がタグなしの選択型の場合、選択された要素のタグの正規化順で符号化します (選択肢に応じて動的な並べ替えが必要です)。 | |
単一集合型 | 要素は、符号化した情報の昇順にします。順序比較は、オクテット列としての比較です。 |