メインコンテンツまでスキップ

Appendix C. ASN.1 Module (ASN.1モジュール)

本附録には、本文書の完全なASN.1モジュールが含まれています。このモジュールは、1988年および1993年のASN.1構文の組み合わせを使用しており、1993年の追加で導入された情報オブジェクトクラス機能を含んでいます。

PKCS-1 {
iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1)
modules(0) pkcs-1(1)
}

DEFINITIONS EXPLICIT TAGS ::= BEGIN

-- すべてのシンボルをエクスポート
EXPORTS ALL;

-- インポート
IMPORTS

AlgorithmIdentifier, ALGORITHM-IDENTIFIER
FROM AlgorithmInformation
{ joint-iso-itu-t(2) etsi(0) specification(0) mhss(1)
pkcs(7) revision(0) module(7) id-mod-algorithmInformation(0) } ;

-- 基本オブジェクト識別子
pkcs-1 OBJECT IDENTIFIER ::= {
iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1
}

-- RSA鍵タイプ
rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }

RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e
}

RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}

Version ::= INTEGER { two-prime(0), multi(1) }

OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo

OtherPrimeInfo ::= SEQUENCE {
prime INTEGER, -- r_i
exponent INTEGER, -- d_i
coefficient INTEGER -- t_i
}

-- 暗号化スキームオブジェクト識別子
id-RSAES-OAEP OBJECT IDENTIFIER ::= { pkcs-1 7 }
id-RSAES-PKCS1-v1_5 OBJECT IDENTIFIER ::= { pkcs-1 1 }

-- 署名スキームオブジェクト識別子
id-RSASSA-PSS OBJECT IDENTIFIER ::= { pkcs-1 10 }

sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 }
sha384WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 12 }
sha512WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 13 }

-- RSAES-OAEPパラメータ
RSAES-OAEP-params ::= SEQUENCE {
hashFunc [0] AlgorithmIdentifier DEFAULT sha1,
maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1,
pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmpty
}

-- RSASSA-PSSパラメータ
RSASSA-PSS-params ::= SEQUENCE {
hashAlgorithm [0] AlgorithmIdentifier DEFAULT sha1,
maskGenAlgorithm [1] AlgorithmIdentifier DEFAULT mgf1SHA1,
saltLength [2] INTEGER DEFAULT 20,
trailerField [3] INTEGER DEFAULT 1
}

-- マスク生成関数
id-mgf1 OBJECT IDENTIFIER ::= { pkcs-1 8 }

-- ハッシュ関数オブジェクト識別子
id-sha256 OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840) organization(1)
gov(101) csor(3) nistalgorithm(4) hashalgs(2) 1
}

id-sha384 OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840) organization(1)
gov(101) csor(3) nistalgorithm(4) hashalgs(2) 2
}

id-sha512 OBJECT IDENTIFIER ::= {
joint-iso-itu-t(2) country(16) us(840) organization(1)
gov(101) csor(3) nistalgorithm(4) hashalgs(2) 3
}

-- RSASSA-PKCS1-v1_5用DigestInfo
DigestInfo ::= SEQUENCE {
digestAlgorithm AlgorithmIdentifier,
digest OCTET STRING
}

END

このASN.1モジュールは、本文書のすべてのスキームと鍵タイプに必要なデータ型とオブジェクト識別子を定義しています。