-- ASN module extracted from OASIS X9.84-CMS (2003)
--
-- OASIS XML Common Biometric Format (XCBF) Technical Committee
--
-- From http://oasis-open.org/committees/xcbf/docs/XCBFSchema20030107.zip
--
-- OASIS takes no position regarding the validity or scope of any
-- intellectual property or other rights that might be claimed to
-- pertain to the implementation or use of the technology described in
-- this document or the extent to which any license under such rights
-- might or might not be available; neither does it represent that it
-- has made any effort to identify any such rights. Information on
-- OASIS's procedures with respect to rights in OASIS specifications
-- can be found at the OASIS website. Copies of claims of rights made
-- available for publication and any assurances of licenses to be made
-- available, or the result of an attempt made to obtain a general
-- license or permission for the use of such proprietary rights by
-- implementors or users of this specification, can be obtained from
-- the OASIS Executive Director.
--
-- OASIS invites any interested party to bring to its attention any
-- copyrights, patents or patent applications, or other proprietary
-- rights which may cover technology that may be required to implement
-- this specification. Please address the information to the OASIS
-- Executive Director.
--
-- Copyright © OASIS Open 2002, 2003. All Rights Reserved.
--
-- This document and translations of it may be copied and furnished to
-- others, and derivative works that comment on or otherwise explain
-- it or assist in its implementation may be prepared, copied,
-- published and distributed, in whole or in part, without restriction
-- of any kind, provided that the above copyright notice and this
-- paragraph are included on all such copies and derivative works.
-- However, this document itself does not be modified in any way, such
-- as by removing the copyright notice or references to OASIS, except
-- as needed for the purpose of developing OASIS specifications, in
-- which case the procedures for copyrights defined in the OASIS
-- Intellectual Property Rights document must be followed, or as
-- required to translate it into languages other than English.
--
-- The limited permissions granted above are perpetual and will not be
-- revoked by OASIS or its successors or assigns.
--
-- This document and the information contained herein is provided on
-- an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
-- THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
-- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
--
X9-84-CMS {iso(1) identified-organization(3) tc68(133) country(16) x9(840) x9Standards(9) x9-84(84) module(0) cms(2) rev(1)}
DEFINITIONS IMPLICIT TAGS ::= BEGIN
-- EXPORTS All;
IMPORTS
-- ANS X9.84 Biometric Information Management & Security IDs --
des-ede3-cbc, dsa-with-sha1, ecdsa-with-SHA1, hmac-with-SHA1,
id-data, NoIV, rsaEncryption, SHA-Algorithms, sha1WithRSAEncryption
FROM X9-84-Identifiers {
iso(1) identified-organization(3) tc68(133) country(16)
x9(840) x9Standards(9) x9-84(84) module(0)
ids(3) rev(1) };
SignedData ::= SEQUENCE {
version CMSVersion,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
certificates [0] CertificateSet OPTIONAL,
crls [1] CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}
CMSVersion ::= INTEGER { v84(84) } (v84,...)
DigestAlgorithmIdentifiers ::=
SET SIZE(1) OF DigestAlgorithmIdentifier
DigestAlgorithmIdentifier ::= AlgorithmIdentifier {{DigestAlgorithms}}
DigestAlgorithms ALGORITHM ::= {
SHA-Algorithms,
... -- Expect other digest algorithms --
}
EncapsulatedContentInfo ::= SEQUENCE {
eContentType ContentType,
eContent [0] EXPLICIT OCTET STRING OPTIONAL
}
ContentType ::= CONTENTS.&id({Contents})
CONTENTS ::= TYPE-IDENTIFIER -- ISO/IEC 8824-2:1998, Annex A
Contents CONTENTS ::= {
{ Data IDENTIFIED BY id-data }
}
Data ::= OCTET STRING
CertificateSet ::= OCTET STRING
CertificateRevocationLists ::= OCTET STRING
SignerInfos ::= SET SIZE(1) OF SignerInfo
SignerInfo ::= SEQUENCE {
version CMSVersion,
sid SignerIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue
}
SignerIdentifier ::= CHOICE {
certHash [1] EXPLICIT Hash
}
Hash ::= CHOICE {
ietf CertHash, -- SHA-1 hash of entire certificate
withAlgID DigestInfo
}
CertHash ::= OCTET STRING (ENCODED BY sha-1)
DigestInfo ::= SEQUENCE {
hashAlgorithm DigestAlgorithmIdentifier,
digest OCTET STRING
}
SignatureAlgorithmIdentifier ::=
AlgorithmIdentifier {{SignatureAlgorithms}}
SignatureAlgorithms ALGORITHM ::= {
{ OID dsa-with-sha1 PARMS NoIV } |
{ OID ecdsa-with-SHA1 PARMS NoIV } |
{ OID sha1WithRSAEncryption PARMS NoIV },
... -- Expect other signature algorithms --
}
SignatureValue ::= OCTET STRING
EncryptedData ::= SEQUENCE {
version CMSVersion,
encryptedContentInfo EncryptedContentInfo
}
EncryptedContentInfo ::= SEQUENCE {
contentType ContentType,
contentEncryptionAlgorithm ContentEncryptAlgorithmIdentifier,
encryptedContent [0] EncryptedContent
}
ContentEncryptAlgorithmIdentifier ::=
AlgorithmIdentifier {{ContentEncryptionAlgorithms}}
ContentEncryptionAlgorithms ALGORITHM ::= {
{ OID des-ede3-cbc PARMS IV },
... -- Expect other content encryption algorithms --
}
IV ::= OCTET STRING (SIZE(8))
EncryptedContent ::= OCTET STRING
EnvelopedData ::= SEQUENCE {
version CMSVersion,
originatorInfo [0] OriginatorInfo OPTIONAL,
recipientInfos RecipientInfos,
encryptedContentInfo EncryptedContentInfo
}
OriginatorInfo ::= SEQUENCE {
certs [0] CertificateSet OPTIONAL,
crls [1] CertificateRevocationLists OPTIONAL
}
(ALL EXCEPT({ -- none; at least one component is present -- }))
RecipientInfos ::= SET SIZE(1) OF RecipientInfo
RecipientInfo ::= CHOICE {
ktri KeyTransRecipientInfo
}
KeyTransRecipientInfo ::= SEQUENCE {
version CMSVersion,
rid RecipientIdentifier,
keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
encryptedKey EncryptedKey
}
RecipientIdentifier ::= CHOICE {
certHash [73] EXPLICIT Hash
}
KeyEncryptionAlgorithmIdentifier ::=
AlgorithmIdentifier {{KeyEncryptionAlgorithms}}
KeyEncryptionAlgorithms ALGORITHM ::= {
{ OID rsaEncryption PARMS NoIV },
... -- expect other key encryption algorithms --
}
EncryptedKey ::= OCTET STRING
AuthenticatedData ::= SEQUENCE {
version CMSVersion,
recipientInfos RecipientInfos,
macAlgorithm MACAlgorithmIdentifier,
encapContentInfo EncapsulatedContentInfo,
mac MessageAuthenticationCode
}
MACAlgorithmIdentifier ::= AlgorithmIdentifier {{MACAlgorithms}}
MACAlgorithms ALGORITHM ::= {
{ OID hmac-with-SHA1 },
... -- expect other MAC or HMAC algorithms --
}
MessageAuthenticationCode ::= OCTET STRING
-- Cryptographic algorithm identification --
ALGORITHM ::= CLASS {
&id OBJECT IDENTIFIER UNIQUE,
&Type OPTIONAL
}
WITH SYNTAX { OID &id [PARMS &Type] }
AlgorithmIdentifier { ALGORITHM:IOSet } ::= SEQUENCE {
algorithm ALGORITHM.&id( {IOSet} ),
parameters ALGORITHM.&Type( {IOSet}{@algorithm} ) OPTIONAL
}
END -- X9-84-CMS --
--
-- Last update: Tuesday, January 7, 2003
--
-- Phillip H. Griffin
-- OASIS XCBF TC Chair
-- mail: phil.griffin@asn-1.com
-- list: xcbf-comment@lists.oasis-open.org
-- site: http://www.oasis-open.org/committees/xcbf/
--