AlgorithmIdentifier
X.509のASN.1でアルゴリズムのOBJECTIDENTIFIERとパラメータを組み合わせて利用できる構造
code:ITU-T X.509 (201910) 6.2.2 AlgorithmIdentifier
ALGORITHM ::= CLASS {
&Type OPTIONAL,
&id OBJECT IDENTIFIER UNIQUE }
WITH SYNTAX {
PARMS &Type
IDENTIFIED BY &id }
AlgorithmIdentifier{ALGORITHM:SupportedAlgorithms} ::= SEQUENCE {
algorithm ALGORITHM.&id({SupportedAlgorithms}),
parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL,
... }
SupportedAlgorithms でいろいろ決める
RFC 5280 の簡易? 旧? 版 Certificate
code:RFC 5280 4.1.1.2
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
3つ目以降は使われない、parametersはOPTIONALだが利用しない場合省略せずに NULL にする
RFC 8017 RSA
code:RFC 8017 C
ALGORITHM-IDENTIFIER ::= CLASS {
&id OBJECT IDENTIFIER UNIQUE,
%Type OPTIONAL
}
WITH SYNTAX { OID &id PARAMETERS &Type }
AlgorithmIdentifier { ALGORITHM-IDENTIFIER:InfoObjectSet } ::=
SEQUENCE {
algorithm
ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
parameters
ALGORITHM-IDENTIFIER.%Type({InfoObjectSet}{@.algorithm})
OPTIONAL
}
だいたい同じ 3つめ以降のパラメータなし
PKCS #8 OneAsymmetricKey
RFC 4055
RSA
RSASSA-PSS
RSAES-OAEP
MGF
RFC 8410
RFC 7748 ECDH
X25519, X448
RFC 8032 EdDSA
Ed25519, Ed448