-- Module AuthenticationFramework (X.509:08/1997)
AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
authenticationFramework(7) 3} DEFINITIONS ::=
BEGIN
-- EXPORTS All
-- The types and values defined in this module are exported for use in the other ASN.1 modules contained
-- within the Directory Specifications, and for the use of other applications which will use them to access
-- Directory services. Other applications may use them for their own purposes, but this will not constrain
-- extensions and modifications needed to maintain or improve the Directory service.
IMPORTS
id-at, id-mr, informationFramework, upperBounds, selectedAttributeTypes,
basicAccessControl, certificateExtensions
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
usefulDefinitions(0) 3}
Name, ATTRIBUTE, AttributeType, MATCHING-RULE, Attribute
FROM InformationFramework informationFramework
ub-user-password
FROM UpperBounds upperBounds
AuthenticationLevel
FROM BasicAccessControl basicAccessControl
UniqueIdentifier, octetStringMatch
FROM SelectedAttributeTypes selectedAttributeTypes
certificateExactMatch, certificatePairExactMatch, certificateListExactMatch,
GeneralNames
FROM CertificateExtensions certificateExtensions;
-- basic certificate definition
Certificate ::=
SIGNED
{SEQUENCE {version [0] Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- if present, version must be v2 or v3
subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- if present, version must be v2 or v3
extensions [3] Extensions OPTIONAL
-- If present, version must be v3 -- }}
Version ::= INTEGER {v1(0), v2(1), v3(2)}
CertificateSerialNumber ::= INTEGER
AlgorithmIdentifier ::= SEQUENCE {
algorithm ALGORITHM.&id({SupportedAlgorithms}),
parameters ALGORITHM.&Type({SupportedAlgorithms}{@algorithm}) OPTIONAL
}
-- Definition of the following information object set is deferred, perhaps to standardized
-- profiles or to protocol implementation conformance statements. The set is required to
-- specify a table constraint on the parameters component of AlgorithmIdentifier.
SupportedAlgorithms ALGORITHM ::=
{...}
Validity ::= SEQUENCE {notBefore Time,
notAfter Time
}
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
Time ::= CHOICE {utcTime UTCTime,
generalizedTime GeneralizedTime
}
Extensions ::= SEQUENCE OF Extension
-- For those extensions where ordering of individual extensions within the SEQUENCE is significant, the
-- specification of those individual extensions shall include the rules for the significance of the order therein
Extension ::= SEQUENCE {
extnId EXTENSION.&id({ExtensionSet}),
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING-- contains a DER encoding of a value of type &ExtnType
-- for the extension object identified by extnId
}
ExtensionSet EXTENSION ::=
{...}
EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
&ExtnType
}WITH SYNTAX {SYNTAX &ExtnType
IDENTIFIED BY &id
}
-- other certificate constructs
Certificates ::= SEQUENCE {
userCertificate Certificate,
certificationPath ForwardCertificationPath OPTIONAL
}
ForwardCertificationPath ::= SEQUENCE OF CrossCertificates
CrossCertificates ::= SET OF Certificate
CertificationPath ::= SEQUENCE {
userCertificate Certificate,
theCACertificates SEQUENCE OF CertificatePair OPTIONAL
}
CertificatePair ::= SEQUENCE {
issuedByThisCA [0] Certificate OPTIONAL,
issuedToThisCA [1] Certificate OPTIONAL
-- at least one of the pair shall be present
}
-- Certificate Revocation List (CRL)
CertificateList ::=
SIGNED
{SEQUENCE {version Version OPTIONAL,
-- if present, version must be v2
signature AlgorithmIdentifier,
issuer Name,
thisUpdate Time,
nextUpdate Time OPTIONAL,
revokedCertificates
SEQUENCE OF
SEQUENCE {userCertificate CertificateSerialNumber,
revocationDate Time,
crlEntryExtensions Extensions OPTIONAL} OPTIONAL,
crlExtensions [0] Extensions OPTIONAL}}
-- attribute certificate
AttributeCertificationPath ::= SEQUENCE {
attributeCertificate AttributeCertificate,
acPath SEQUENCE OF ACPathData OPTIONAL
}
ACPathData ::= SEQUENCE {
certificate [0] Certificate OPTIONAL,
attributeCertificate [1] AttributeCertificate OPTIONAL
}
attributeCertificate ATTRIBUTE ::= {
WITH SYNTAX AttributeCertificate
EQUALITY MATCHING RULE attributeCertificateMatch
ID id-at-attributeCertificate
}
AttributeCertificate ::= SIGNED{AttributeCertificateInfo}
AttributeCertificateInfo ::= SEQUENCE {
version Version DEFAULT v1,
subject
CHOICE {baseCertificateID [0] IssuerSerial, -- associated with a Public Key Certificate--
subjectName [1] GeneralNames}, -- associated with a name
issuer GeneralNames, -- CA issuing the attribute certificate
signature AlgorithmIdentifier,
serialNumber CertificateSerialNumber,
attCertValidityPeriod AttCertValidityPeriod,
attributes SEQUENCE OF Attribute,
issuerUniqueID UniqueIdentifier OPTIONAL,
extensions Extensions OPTIONAL
}
IssuerSerial ::= SEQUENCE {
issuer GeneralNames,
serial CertificateSerialNumber,
issuerUID UniqueIdentifier OPTIONAL
}
AttCertValidityPeriod ::= SEQUENCE {
notBeforeTime GeneralizedTime,
notAfterTime GeneralizedTime
}
attributeCertificateMatch MATCHING-RULE ::= {
SYNTAX AttributeCertificateAssertion
ID id-mr-attributeCertificateMatch
}
AttributeCertificateAssertion ::= SEQUENCE {
subject
[0] CHOICE {baseCertificateID [0] IssuerSerial,
subjectName [1] Name} OPTIONAL,
issuer [1] Name OPTIONAL,
attCertValidity [2] GeneralizedTime OPTIONAL,
attType [3] SET OF AttributeType OPTIONAL
}
-- At least one component of the sequence must be present
-- attribute types
userPassword ATTRIBUTE ::= {
WITH SYNTAX OCTET STRING(SIZE (0..ub-user-password))
EQUALITY MATCHING RULE octetStringMatch
ID id-at-userPassword
}
userCertificate ATTRIBUTE ::= {
WITH SYNTAX Certificate
EQUALITY MATCHING RULE certificateExactMatch
ID id-at-userCertificate
}
cACertificate ATTRIBUTE ::= {
WITH SYNTAX Certificate
EQUALITY MATCHING RULE certificateExactMatch
ID id-at-cAcertificate
}
crossCertificatePair ATTRIBUTE ::= {
WITH SYNTAX CertificatePair
EQUALITY MATCHING RULE certificatePairExactMatch
ID id-at-crossCertificatePair
}
authorityRevocationList ATTRIBUTE ::= {
WITH SYNTAX CertificateList
EQUALITY MATCHING RULE certificateListExactMatch
ID id-at-authorityRevocationList
}
certificateRevocationList ATTRIBUTE ::= {
WITH SYNTAX CertificateList
EQUALITY MATCHING RULE certificateListExactMatch
ID id-at-certificateRevocationList
}
attributeCertificateRevocationList ATTRIBUTE ::= {
WITH SYNTAX CertificateList
ID id-at-attributeCertificateRevocationList
}
-- information object classes
ALGORITHM ::= TYPE-IDENTIFIER
-- parameterized types
HASH{ToBeHashed} ::= SEQUENCE {
algorithmIdentifier AlgorithmIdentifier,
hashValue
BIT STRING
(CONSTRAINED BY {
-- must be the result of applying a hashing procedure to the DER-encoded octets
-- of a value of -- ToBeHashed})
}
ENCRYPTED-HASH{ToBeSigned} ::=
BIT STRING
(CONSTRAINED BY {
-- must be the result of applying a hashing procedure to the DER-encoded octets
-- of a value of --ToBeSigned -- and then applying an encipherment procedure to those octets --})
ENCRYPTED{ToBeEnciphered} ::=
BIT STRING
(CONSTRAINED BY {
-- must be the result of applying an encipherment procedure
-- to the BER-encoded octets of a value of --ToBeEnciphered})
SIGNATURE{ToBeSigned} ::= SEQUENCE {
algorithmIdentifier AlgorithmIdentifier,
encrypted ENCRYPTED-HASH{ToBeSigned}
}
SIGNED{ToBeSigned} ::= SEQUENCE {
toBeSigned ToBeSigned,
COMPONENTS OF SIGNATURE{ToBeSigned}
}
-- object identifier assignments
id-at-userPassword OBJECT IDENTIFIER ::=
{id-at 35}
id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
id-at-cAcertificate OBJECT IDENTIFIER ::= {id-at 37}
id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
END
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D