311 lines
9.7 KiB
Groff
311 lines
9.7 KiB
Groff
PKIX1-PSS-OAEP-Algorithms-2009
|
|
{iso(1) identified-organization(3) dod(6) internet(1) security(5)
|
|
mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-rsa-pkalgs-02(54)}
|
|
|
|
DEFINITIONS EXPLICIT TAGS ::=
|
|
BEGIN
|
|
|
|
IMPORTS
|
|
|
|
AlgorithmIdentifier{}, ALGORITHM, DIGEST-ALGORITHM, KEY-TRANSPORT,
|
|
SIGNATURE-ALGORITHM, PUBLIC-KEY, SMIME-CAPS
|
|
FROM AlgorithmInformation-2009 {
|
|
iso(1) identified-organization(3) dod(6) internet(1) security(5)
|
|
mechanisms(5) pkix(7) id-mod(0)
|
|
id-mod-algorithmInformation-02(58)}
|
|
|
|
id-sha1, mda-sha1, pk-rsa, RSAPublicKey
|
|
FROM PKIXAlgs-2009 {
|
|
iso(1) identified-organization(3) dod(6) internet(1) security(5)
|
|
mechanisms(5) pkix(7) id-mod(0)
|
|
id-mod-pkix1-algorithms2008-02(56)};
|
|
|
|
-- ============================
|
|
-- Object Set exports
|
|
-- ============================
|
|
--
|
|
-- Define top-level symbols with all of the objects defined for
|
|
-- export to other modules. These objects would be included as part
|
|
-- of an Object Set to restrict the set of legal values.
|
|
--
|
|
|
|
PublicKeys PUBLIC-KEY ::= { pk-rsaSSA-PSS | pk-rsaES-OAEP, ... }
|
|
SignatureAlgs SIGNATURE-ALGORITHM ::= { sa-rsaSSA-PSS, ...}
|
|
KeyTransportAlgs KEY-TRANSPORT ::= { kta-rsaES-OAEP, ... }
|
|
HashAlgs DIGEST-ALGORITHM ::= { mda-sha224 | mda-sha256 | mda-sha384
|
|
| mda-sha512, ... }
|
|
SMimeCaps SMIME-CAPS ::= {
|
|
sa-rsaSSA-PSS.&smimeCaps |
|
|
kta-rsaES-OAEP.&smimeCaps,
|
|
...
|
|
}
|
|
|
|
-- =============================
|
|
-- Algorithm Objects
|
|
-- =============================
|
|
|
|
--
|
|
-- Public key object for PSS signatures
|
|
--
|
|
|
|
pk-rsaSSA-PSS PUBLIC-KEY ::= {
|
|
IDENTIFIER id-RSASSA-PSS
|
|
KEY RSAPublicKey
|
|
PARAMS TYPE RSASSA-PSS-params ARE optional
|
|
-- Private key format not in this module --
|
|
CERT-KEY-USAGE { nonRepudiation, digitalSignature,
|
|
keyCertSign, cRLSign }
|
|
}
|
|
|
|
--
|
|
-- Signature algorithm definition for PSS signatures
|
|
--
|
|
|
|
sa-rsaSSA-PSS SIGNATURE-ALGORITHM ::= {
|
|
IDENTIFIER id-RSASSA-PSS
|
|
PARAMS TYPE RSASSA-PSS-params ARE required
|
|
HASHES { mda-sha1 | mda-sha224 | mda-sha256 | mda-sha384
|
|
| mda-sha512 }
|
|
PUBLIC-KEYS { pk-rsa | pk-rsaSSA-PSS }
|
|
SMIME-CAPS { IDENTIFIED BY id-RSASSA-PSS }
|
|
}
|
|
|
|
--
|
|
-- Signature algorithm definitions for PKCS v1.5 signatures
|
|
--
|
|
|
|
sa-sha224WithRSAEncryption SIGNATURE-ALGORITHM ::= {
|
|
IDENTIFIER sha224WithRSAEncryption
|
|
PARAMS TYPE NULL ARE required
|
|
HASHES { mda-sha224 }
|
|
PUBLIC-KEYS { pk-rsa }
|
|
SMIME-CAPS { IDENTIFIED BY sha224WithRSAEncryption }
|
|
}
|
|
sha224WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 14 }
|
|
|
|
sa-sha256WithRSAEncryption SIGNATURE-ALGORITHM ::= {
|
|
IDENTIFIER sha256WithRSAEncryption
|
|
PARAMS TYPE NULL ARE required
|
|
HASHES { mda-sha256 }
|
|
PUBLIC-KEYS { pk-rsa }
|
|
SMIME-CAPS { IDENTIFIED BY sha256WithRSAEncryption }
|
|
}
|
|
sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 }
|
|
|
|
sa-sha384WithRSAEncryption SIGNATURE-ALGORITHM ::= {
|
|
IDENTIFIER sha384WithRSAEncryption
|
|
PARAMS TYPE NULL ARE required
|
|
HASHES { mda-sha384 }
|
|
PUBLIC-KEYS { pk-rsa }
|
|
SMIME-CAPS { IDENTIFIED BY sha384WithRSAEncryption }
|
|
}
|
|
sha384WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 12 }
|
|
|
|
sa-sha512WithRSAEncryption SIGNATURE-ALGORITHM ::= {
|
|
IDENTIFIER sha512WithRSAEncryption
|
|
PARAMS TYPE NULL ARE required
|
|
HASHES { mda-sha512 }
|
|
PUBLIC-KEYS { pk-rsa }
|
|
SMIME-CAPS { IDENTIFIED BY sha512WithRSAEncryption }
|
|
}
|
|
sha512WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 13 }
|
|
|
|
--
|
|
-- Public key definition for OAEP encryption
|
|
--
|
|
|
|
pk-rsaES-OAEP PUBLIC-KEY ::= {
|
|
IDENTIFIER id-RSAES-OAEP
|
|
KEY RSAPublicKey
|
|
PARAMS TYPE RSAES-OAEP-params ARE optional
|
|
-- Private key format not in this module --
|
|
CERT-KEY-USAGE {keyEncipherment, dataEncipherment}
|
|
}
|
|
|
|
--
|
|
-- Key transport key lock definition for OAEP encryption
|
|
--
|
|
|
|
kta-rsaES-OAEP KEY-TRANSPORT ::= {
|
|
IDENTIFIER id-RSAES-OAEP
|
|
PARAMS TYPE RSAES-OAEP-params ARE required
|
|
PUBLIC-KEYS { pk-rsa | pk-rsaES-OAEP }
|
|
SMIME-CAPS { TYPE RSAES-OAEP-params IDENTIFIED BY id-RSAES-OAEP}
|
|
}
|
|
-- ============================
|
|
-- Basic object identifiers
|
|
-- ============================
|
|
|
|
pkcs-1 OBJECT IDENTIFIER ::=
|
|
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
|
|
|
|
-- When rsaEncryption is used in an AlgorithmIdentifier, the
|
|
-- parameters MUST be present and MUST be NULL.
|
|
-- rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
|
|
|
|
-- When id-RSAES-OAEP is used in an AlgorithmIdentifier,
|
|
-- and the parameters field is present, it MUST be
|
|
-- RSAES-OAEP-params.
|
|
|
|
id-RSAES-OAEP OBJECT IDENTIFIER ::= { pkcs-1 7 }
|
|
|
|
-- When id-mgf1 is used in an AlgorithmIdentifier, the parameters
|
|
-- MUST be present and MUST be a HashAlgorithm.
|
|
|
|
id-mgf1 OBJECT IDENTIFIER ::= { pkcs-1 8 }
|
|
|
|
-- When id-pSpecified is used in an AlgorithmIdentifier, the
|
|
-- parameters MUST be an OCTET STRING.
|
|
|
|
id-pSpecified OBJECT IDENTIFIER ::= { pkcs-1 9 }
|
|
|
|
-- When id-RSASSA-PSS is used in an AlgorithmIdentifier, and the
|
|
-- parameters field is present, it MUST be RSASSA-PSS-params.
|
|
|
|
id-RSASSA-PSS OBJECT IDENTIFIER ::= { pkcs-1 10 }
|
|
|
|
-- When the following OIDs are used in an AlgorithmIdentifier, the
|
|
-- parameters SHOULD be absent, but if the parameters are present,
|
|
-- they MUST be NULL.
|
|
|
|
--
|
|
-- id-sha1 is imported from RFC 3279. Additionally, the v1.5
|
|
-- signature algorithms (i.e., rsaWithSHA256) are now solely placed
|
|
-- in that module.
|
|
--
|
|
|
|
id-sha224 OBJECT IDENTIFIER ::=
|
|
{ joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)
|
|
csor(3) nistAlgorithms(4) hashalgs(2) 4 }
|
|
|
|
mda-sha224 DIGEST-ALGORITHM ::= {
|
|
IDENTIFIER id-sha224
|
|
PARAMS TYPE NULL ARE preferredAbsent
|
|
}
|
|
|
|
id-sha256 OBJECT IDENTIFIER ::=
|
|
{ joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)
|
|
csor(3) nistAlgorithms(4) hashalgs(2) 1 }
|
|
|
|
mda-sha256 DIGEST-ALGORITHM ::= {
|
|
IDENTIFIER id-sha256
|
|
PARAMS TYPE NULL ARE preferredAbsent
|
|
}
|
|
id-sha384 OBJECT IDENTIFIER ::=
|
|
{ joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)
|
|
csor(3) nistAlgorithms(4) hashalgs(2) 2 }
|
|
|
|
mda-sha384 DIGEST-ALGORITHM ::= {
|
|
IDENTIFIER id-sha384
|
|
PARAMS TYPE NULL ARE preferredAbsent
|
|
}
|
|
id-sha512 OBJECT IDENTIFIER ::=
|
|
{ joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)
|
|
csor(3) nistAlgorithms(4) hashalgs(2) 3 }
|
|
|
|
mda-sha512 DIGEST-ALGORITHM ::= {
|
|
IDENTIFIER id-sha512
|
|
PARAMS TYPE NULL ARE preferredAbsent
|
|
}
|
|
|
|
-- =============
|
|
-- Constants
|
|
-- =============
|
|
|
|
EncodingParameters ::= OCTET STRING(SIZE(0..MAX))
|
|
|
|
nullOctetString EncodingParameters ::= ''H
|
|
|
|
nullParameters NULL ::= NULL
|
|
|
|
-- =========================
|
|
-- Algorithm Identifiers
|
|
-- =========================
|
|
|
|
HashAlgorithm ::= AlgorithmIdentifier{DIGEST-ALGORITHM,
|
|
{HashAlgorithms}}
|
|
|
|
HashAlgorithms DIGEST-ALGORITHM ::= {
|
|
{ IDENTIFIER id-sha1 PARAMS TYPE NULL ARE preferredPresent } |
|
|
{ IDENTIFIER id-sha224 PARAMS TYPE NULL ARE preferredPresent } |
|
|
{ IDENTIFIER id-sha256 PARAMS TYPE NULL ARE preferredPresent } |
|
|
{ IDENTIFIER id-sha384 PARAMS TYPE NULL ARE preferredPresent } |
|
|
{ IDENTIFIER id-sha512 PARAMS TYPE NULL ARE preferredPresent }
|
|
}
|
|
|
|
sha1Identifier HashAlgorithm ::= {
|
|
algorithm id-sha1,
|
|
parameters NULL : NULL
|
|
}
|
|
|
|
--
|
|
-- We have a default algorithm - create the value here
|
|
--
|
|
|
|
MaskGenAlgorithm ::= AlgorithmIdentifier{ALGORITHM,
|
|
{PKCS1MGFAlgorithms}}
|
|
|
|
mgf1SHA1 MaskGenAlgorithm ::= {
|
|
algorithm id-mgf1,
|
|
parameters HashAlgorithm : sha1Identifier
|
|
}
|
|
|
|
--
|
|
-- Define the set of mask generation functions
|
|
--
|
|
-- If the identifier is id-mgf1, any of the listed hash
|
|
-- algorithms may be used.
|
|
--
|
|
|
|
PKCS1MGFAlgorithms ALGORITHM ::= {
|
|
{ IDENTIFIER id-mgf1 PARAMS TYPE HashAlgorithm ARE required },
|
|
...
|
|
}
|
|
|
|
--
|
|
-- Define the set of known source algorithms for PSS
|
|
--
|
|
|
|
PSourceAlgorithm ::= AlgorithmIdentifier{ALGORITHM,
|
|
{PSS-SourceAlgorithms}}
|
|
|
|
PSS-SourceAlgorithms ALGORITHM ::= {
|
|
{ IDENTIFIER id-pSpecified PARAMS TYPE EncodingParameters
|
|
ARE required },
|
|
...
|
|
}
|
|
pSpecifiedEmpty PSourceAlgorithm ::= {
|
|
algorithm id-pSpecified,
|
|
parameters EncodingParameters : nullOctetString
|
|
}
|
|
|
|
-- ===================
|
|
-- Main structures
|
|
-- ===================
|
|
|
|
-- AlgorithmIdentifier parameters for id-RSASSA-PSS.
|
|
-- Note that the tags in this Sequence are explicit.
|
|
-- Note: The hash algorithm in hashAlgorithm and in
|
|
-- maskGenAlgorithm should be the same.
|
|
|
|
RSASSA-PSS-params ::= SEQUENCE {
|
|
hashAlgorithm [0] HashAlgorithm DEFAULT sha1Identifier,
|
|
maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1,
|
|
saltLength [2] INTEGER DEFAULT 20,
|
|
trailerField [3] INTEGER DEFAULT 1
|
|
}
|
|
|
|
-- AlgorithmIdentifier parameters for id-RSAES-OAEP.
|
|
-- Note that the tags in this Sequence are explicit.
|
|
-- Note: The hash algorithm in hashFunc and in
|
|
-- maskGenFunc should be the same.
|
|
|
|
RSAES-OAEP-params ::= SEQUENCE {
|
|
hashFunc [0] HashAlgorithm DEFAULT sha1Identifier,
|
|
maskGenFunc [1] MaskGenAlgorithm DEFAULT mgf1SHA1,
|
|
pSourceFunc [2] PSourceAlgorithm DEFAULT
|
|
pSpecifiedEmpty
|
|
}
|
|
|
|
END
|