diff options
Diffstat (limited to 'lib/asn1/test/asn1_SUITE_data/x420')
99 files changed, 24809 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn b/lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn new file mode 100644 index 0000000000..3f1385323a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/ACSE-1.asn @@ -0,0 +1,253 @@ +-- Module ACSE-1 (X.237:04/1995) +ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) version1(1)} +-- ACSE-1 refers to ACSE version 1 +DEFINITIONS ::= +BEGIN + +EXPORTS + acse-as-id, ACSE-apdu, aCSE-id, Application-context-name, AP-title, + AE-qualifier, AE-title, AP-invocation-identifier, AE-invocation-identifier, + Mechanism-name, Authentication-value, ACSE-requirements, ObjectSet; + +IMPORTS + Name, RelativeDistinguishedName + FROM InformationFramework {joint-iso-itu-t ds(5) module(1) + informationFramework(1) 3}; + +-- The data types Name and RelativeDistinguishedName are imported from ISO/IEC 9594-2. +-- object identifier assignments +acse-as-id OBJECT IDENTIFIER ::= + {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0) + version1(1)} + +-- may be used to reference the abstract syntax of the ACSE APDUs +aCSE-id OBJECT IDENTIFIER ::= + {joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)} + +-- may be used to identify the Association Control ASE. +-- top level CHOICE +ACSE-apdu ::= CHOICE { + aarq AARQ-apdu, + aare AARE-apdu, + rlrq RLRQ-apdu, + rlre RLRE-apdu, + abrt ABRT-apdu, + ... +} + +AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE { + protocol-version + [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1}, + application-context-name [1] Application-context-name, + called-AP-title [2] AP-title OPTIONAL, + called-AE-qualifier [3] AE-qualifier OPTIONAL, + called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL, + called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL, + calling-AP-title [6] AP-title OPTIONAL, + calling-AE-qualifier [7] AE-qualifier OPTIONAL, + calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL, + calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL, + -- The following field shall not be present if only the Kernel is used. + sender-acse-requirements [10] IMPLICIT ACSE-requirements OPTIONAL, + -- The following field shall only be present if the Authentication functional unit is selected. + mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL, + -- The following field shall only be present if the Authentication functional unit is selected. + calling-authentication-value [12] EXPLICIT Authentication-value OPTIONAL, + application-context-name-list + [13] IMPLICIT Application-context-name-list OPTIONAL, + -- The above field shall only be present if the Application Context Negotiation functional unit is selected + implementation-information [29] IMPLICIT Implementation-data OPTIONAL, + ..., + ..., + user-information + [30] IMPLICIT Association-information OPTIONAL +} + +AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE { + protocol-version + [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1}, + application-context-name [1] Application-context-name, + result [2] Associate-result, + result-source-diagnostic [3] Associate-source-diagnostic, + responding-AP-title [4] AP-title OPTIONAL, + responding-AE-qualifier [5] AE-qualifier OPTIONAL, + responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL, + responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL, + -- The following field shall not be present if only the Kernel is used. + responder-acse-requirements [8] IMPLICIT ACSE-requirements OPTIONAL, + -- The following field shall only be present if the Authentication functional unit is selected. + mechanism-name [9] IMPLICIT Mechanism-name OPTIONAL, + -- This following field shall only be present if the Authentication functional unit is selected. + responding-authentication-value + [10] EXPLICIT Authentication-value OPTIONAL, + application-context-name-list + [11] IMPLICIT Application-context-name-list OPTIONAL, + -- The above field shall only be present if the Application Context Negotiation functional unit is selected + implementation-information + [29] IMPLICIT Implementation-data OPTIONAL, + ..., + ..., + user-information + [30] IMPLICIT Association-information OPTIONAL +} + +RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE { + reason [0] IMPLICIT Release-request-reason OPTIONAL, + ..., + ..., + user-information [30] IMPLICIT Association-information OPTIONAL +} + +RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE { + reason [0] IMPLICIT Release-response-reason OPTIONAL, + ..., + ..., + user-information [30] IMPLICIT Association-information OPTIONAL +} + +ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE { + abort-source [0] IMPLICIT ABRT-source, + abort-diagnostic [1] IMPLICIT ABRT-diagnostic OPTIONAL, + -- This field shall not be present if only the Kernel is used. + ..., + ..., + user-information [30] IMPLICIT Association-information OPTIONAL +} + +ABRT-diagnostic ::= ENUMERATED { + no-reason-given(1), protocol-error(2), + authentication-mechanism-name-not-recognized(3), + authentication-mechanism-name-required(4), authentication-failure(5), + authentication-required(6), ... + } + +ABRT-source ::= INTEGER {acse-service-user(0), acse-service-provider(1) +}(0..1, ...) + +ACSE-requirements ::= BIT STRING { + authentication(0), application-context-negotiation(1)} + +Application-context-name-list ::= SEQUENCE OF Application-context-name + +Application-context-name ::= OBJECT IDENTIFIER + +-- Application-entity title productions follow (not in alphabetical order) +AP-title ::= CHOICE { + ap-title-form1 AP-title-form1, + ap-title-form2 AP-title-form2, + ... +} + +AE-qualifier ::= CHOICE { + ae-qualifier-form1 AE-qualifier-form1, + ae-qualifier-form2 AE-qualifier-form2, + ... +} + +-- When both AP-title and AE-qualifier data values are present in an AARQ or AARE APDU, both must +-- have the same form to allow the construction of an AE-title as discussed in CCITT Rec. X.665 | +-- ISO/IEC 9834-6. +AP-title-form1 ::= + Name + +-- The value assigned to AP-title-form1 is The Directory Name of an application-process title. +AE-qualifier-form1 ::= + RelativeDistinguishedName + +-- The value assigned to AE-qualifier-form1 is the relative distinguished name of a particular +-- application-entity of the application-process identified by AP-title-form1. +AP-title-form2 ::= OBJECT IDENTIFIER + +AE-qualifier-form2 ::= INTEGER + +AE-title ::= CHOICE { + ae-title-form1 AE-title-form1, + ae-title-form2 AE-title-form2, + ... +} + +-- As defined in CCITT Rec. X.650 | ISO 7498-3, an application-entity title is composed of an application- +-- process title and an application-entity qualifier. The ACSE protocol provides for the transfer of an +-- application-entity title value by the transfer of its component values. However, the following data type +-- is provided for International Standards that reference a single syntactic structure for AE titles. +AE-title-form1 ::= + Name + +-- For access to The Directory (ITU-T Rec. X.500-Series | ISO/IEC 9594), an AE title has AE-title-form1. +-- This value can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an +-- AARQ or AARE APDU. A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier- +-- form1 may be found in CCITT Rec. X.665 | ISO/IEC 9834-6. +AE-title-form2 ::= OBJECT IDENTIFIER + +-- A discussion of forming an AE-title-form2 from AP-title-form2 and AE-qualifier-form2 may be +-- found in CCITT Rec. X.665 | ISO/IEC 9834-6. +AE-invocation-identifier ::= INTEGER + +AP-invocation-identifier ::= INTEGER + +-- End of Application-entity title productions +Associate-result ::= INTEGER { + accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...) + +Associate-source-diagnostic ::= CHOICE { + acse-service-user + [1] INTEGER {null(0), no-reason-given(1), + application-context-name-not-supported(2), + calling-AP-title-not-recognized(3), + calling-AP-invocation-identifier-not-recognized(4), + calling-AE-qualifier-not-recognized(5), + calling-AE-invocation-identifier-not-recognized(6), + called-AP-title-not-recognized(7), + called-AP-invocation-identifier-not-recognized(8), + called-AE-qualifier-not-recognized(9), + called-AE-invocation-identifier-not-recognized(10), + authentication-mechanism-name-not-recognized(11), + authentication-mechanism-name-required(12), + authentication-failure(13), authentication-required(14)} + (0..14, ...), + acse-service-provider + [2] INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)} + (0..2, ...) +} + +Association-information ::= SEQUENCE SIZE (1, ..., 0 | 2..MAX) OF EXTERNAL + +Authentication-value ::= CHOICE { + charstring [0] IMPLICIT GraphicString, + bitstring [1] IMPLICIT BIT STRING, + external [2] IMPLICIT EXTERNAL, + other + [3] IMPLICIT SEQUENCE {other-mechanism-name + MECHANISM-NAME.&id({ObjectSet}), + other-mechanism-value + MECHANISM-NAME.&Type + ({ObjectSet}{@.other-mechanism-name})} +} + +-- The abstract syntax of (calling/responding) authentication-value is determined by the authentication +-- mechanism used during association establishment. The authentication mechanism is either explicitly +-- denoted by the &id field (of type OBJECT IDENTIFIER) for a mechanism belonging to the class +-- MECHANISM-NAME, or it is known implicitly by +-- prior agreement between the communicating partners. If the "other" component is chosen, then +-- the "mechanism-name" component must be present in accordance with +-- ITU-T Rec. X.680 | ISO/IEC 8824. If the value "mechanism-name" occurs in the AARQ-apdu or the +-- AARE-apdu, then that value must be the same as the value for "other-mechanism-name" +Implementation-data ::= GraphicString + +Mechanism-name ::= OBJECT IDENTIFIER + +MECHANISM-NAME ::= TYPE-IDENTIFIER + +ObjectSet MECHANISM-NAME ::= + {...} + +Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30) +}(0 | 1 | 30, ...) + +Release-response-reason ::= INTEGER { + normal(0), not-finished(1), user-defined(30)}(0 | 1 | 30, ...) + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn b/lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn new file mode 100644 index 0000000000..5cfa9062f0 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/AuthenticationFramework.asn @@ -0,0 +1,290 @@ +-- 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 + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn b/lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn new file mode 100644 index 0000000000..d8b2b687ae --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/BasicAccessControl.asn @@ -0,0 +1,184 @@ +-- Module BasicAccessControl (X.501:08/1997) +BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 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-aca, id-acScheme, informationFramework, upperBounds, + selectedAttributeTypes, directoryAbstractService + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + ATTRIBUTE, AttributeType, DistinguishedName, ContextAssertion, + SubtreeSpecification, SupportedAttributes, MATCHING-RULE, + objectIdentifierMatch, Refinement + FROM InformationFramework informationFramework + Filter + FROM DirectoryAbstractService directoryAbstractService + ub-tag + FROM UpperBounds upperBounds + NameAndOptionalUID, directoryStringFirstComponentMatch, DirectoryString{} + FROM SelectedAttributeTypes selectedAttributeTypes; + +-- types +ACIItem ::= SEQUENCE { + identificationTag DirectoryString{ub-tag}, + precedence Precedence, + authenticationLevel AuthenticationLevel, + itemOrUserFirst + CHOICE {itemFirst + [0] SEQUENCE {protectedItems ProtectedItems, + itemPermissions SET OF ItemPermission}, + userFirst + [1] SEQUENCE {userClasses UserClasses, + userPermissions SET OF UserPermission}} +} + +Precedence ::= INTEGER(0..255) + +ProtectedItems ::= SEQUENCE { + entry [0] NULL OPTIONAL, + allUserAttributeTypes [1] NULL OPTIONAL, + attributeType + [2] SET SIZE (1..MAX) OF AttributeType OPTIONAL, + allAttributeValues + [3] SET SIZE (1..MAX) OF AttributeType OPTIONAL, + allUserAttributeTypesAndValues [4] NULL OPTIONAL, + attributeValue + [5] SET SIZE (1..MAX) OF AttributeTypeAndValue OPTIONAL, + selfValue + [6] SET SIZE (1..MAX) OF AttributeType OPTIONAL, + rangeOfValues [7] Filter OPTIONAL, + maxValueCount + [8] SET SIZE (1..MAX) OF MaxValueCount OPTIONAL, + maxImmSub [9] INTEGER OPTIONAL, + restrictedBy + [10] SET SIZE (1..MAX) OF RestrictedValue OPTIONAL, + contexts + [11] SET SIZE (1..MAX) OF ContextAssertion OPTIONAL, + classes [12] Refinement OPTIONAL +} + +MaxValueCount ::= SEQUENCE {type AttributeType, + maxCount INTEGER +} + +RestrictedValue ::= SEQUENCE {type AttributeType, + valuesIn AttributeType +} + +UserClasses ::= SEQUENCE { + allUsers [0] NULL OPTIONAL, + thisEntry [1] NULL OPTIONAL, + name [2] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL, + userGroup [3] SET SIZE (1..MAX) OF NameAndOptionalUID OPTIONAL, + -- dn component must be the name of an + -- entry of GroupOfUniqueNames + subtree [4] SET SIZE (1..MAX) OF SubtreeSpecification OPTIONAL +} + +ItemPermission ::= SEQUENCE { + precedence Precedence OPTIONAL, + -- defaults to precedence in ACIItem + userClasses UserClasses, + grantsAndDenials GrantsAndDenials +} + +UserPermission ::= SEQUENCE { + precedence Precedence OPTIONAL, + -- defaults to precedence in ACIItem + protectedItems ProtectedItems, + grantsAndDenials GrantsAndDenials +} + +AuthenticationLevel ::= CHOICE { + basicLevels + SEQUENCE {level ENUMERATED {none(0), simple(1), strong(2)}, + localQualifier INTEGER OPTIONAL, + signed BOOLEAN DEFAULT FALSE}, + other EXTERNAL +} + +GrantsAndDenials ::= BIT STRING { + -- permissions that may be used in conjunction + -- with any component of ProtectedItems + grantAdd(0), denyAdd(1), grantDiscloseOnError(2), denyDiscloseOnError(3), + grantRead(4), denyRead(5), grantRemove(6), + denyRemove(7), + -- permissions that may be used only in conjunction + -- with the entry component + grantBrowse(8), denyBrowse(9), grantExport(10), denyExport(11), + grantImport(12), denyImport(13), grantModify(14), denyModify(15), + grantRename(16), denyRename(17), grantReturnDN(18), + denyReturnDN(19), + -- permissions that may be used in conjunction + -- with any component, except entry, of ProtectedItems + grantCompare(20), denyCompare(21), grantFilterMatch(22), denyFilterMatch(23), + grantInvoke(24), denyInvoke(25)} + +AttributeTypeAndValue ::= SEQUENCE { + type ATTRIBUTE.&id({SupportedAttributes}), + value ATTRIBUTE.&Type({SupportedAttributes}{@type}) +} + +-- attributes +accessControlScheme ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + SINGLE VALUE TRUE + USAGE directoryOperation + ID id-aca-accessControlScheme +} + +prescriptiveACI ATTRIBUTE ::= { + WITH SYNTAX ACIItem + EQUALITY MATCHING RULE directoryStringFirstComponentMatch + USAGE directoryOperation + ID id-aca-prescriptiveACI +} + +entryACI ATTRIBUTE ::= { + WITH SYNTAX ACIItem + EQUALITY MATCHING RULE directoryStringFirstComponentMatch + USAGE directoryOperation + ID id-aca-entryACI +} + +subentryACI ATTRIBUTE ::= { + WITH SYNTAX ACIItem + EQUALITY MATCHING RULE directoryStringFirstComponentMatch + USAGE directoryOperation + ID id-aca-subentryACI +} + +-- object identifier assignments +-- attributes +id-aca-accessControlScheme OBJECT IDENTIFIER ::= + {id-aca 1} + +id-aca-prescriptiveACI OBJECT IDENTIFIER ::= {id-aca 4} + +id-aca-entryACI OBJECT IDENTIFIER ::= {id-aca 5} + +id-aca-subentryACI OBJECT IDENTIFIER ::= {id-aca 6} + +-- access control schemes - +basicAccessControlScheme OBJECT IDENTIFIER ::= + {id-acScheme 1} + +simplifiedAccessControlScheme OBJECT IDENTIFIER ::= {id-acScheme 2} + +rule-based-access-control OBJECT IDENTIFIER ::= {id-acScheme 3} + +rule-and-basic-access-control OBJECT IDENTIFIER ::= {id-acScheme 4} + +rule-and-simple-access-control OBJECT IDENTIFIER ::= {id-acScheme 5} + +END -- BasicAccessControl + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn new file mode 100644 index 0000000000..0daf2208e9 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/CertificateExtensions.asn @@ -0,0 +1,498 @@ +-- Module CertificateExtensions (X.509:08/1997) + +CertificateExtensions {joint-iso-itu-t ds(5) module(1) + certificateExtensions(26) 0} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- EXPORTS ALL +IMPORTS + id-at, id-ce, id-mr, informationFramework, authenticationFramework, + selectedAttributeTypes, upperBounds + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + Name, RelativeDistinguishedName, ATTRIBUTE, Attribute, MATCHING-RULE + FROM InformationFramework informationFramework + CertificateSerialNumber, CertificateList, AlgorithmIdentifier, EXTENSION, + Time + FROM AuthenticationFramework authenticationFramework + DirectoryString{} + FROM SelectedAttributeTypes selectedAttributeTypes + ub-name + FROM UpperBounds upperBounds + ORAddress + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)}; + +-- Unless explicitly noted otherwise, there is no significance to the ordering +-- of components of a SEQUENCE OF construct in this Specification. +-- Key and policy information extensions +authorityKeyIdentifier EXTENSION ::= { + SYNTAX AuthorityKeyIdentifier + IDENTIFIED BY id-ce-authorityKeyIdentifier +} + +AuthorityKeyIdentifier ::= SEQUENCE { + keyIdentifier [0] KeyIdentifier OPTIONAL, + authorityCertIssuer [1] GeneralNames OPTIONAL, + authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL +} +(WITH COMPONENTS { + ..., + authorityCertIssuer PRESENT, + authorityCertSerialNumber PRESENT + } | + WITH COMPONENTS { + ..., + authorityCertIssuer ABSENT, + authorityCertSerialNumber ABSENT + }) + +KeyIdentifier ::= OCTET STRING + +subjectKeyIdentifier EXTENSION ::= { + SYNTAX SubjectKeyIdentifier + IDENTIFIED BY id-ce-subjectKeyIdentifier +} + +SubjectKeyIdentifier ::= KeyIdentifier + +keyUsage EXTENSION ::= {SYNTAX KeyUsage + IDENTIFIED BY id-ce-keyUsage +} + +KeyUsage ::= BIT STRING { + digitalSignature(0), nonRepudiation(1), keyEncipherment(2), + dataEncipherment(3), keyAgreement(4), keyCertSign(5), cRLSign(6), + encipherOnly(7), decipherOnly(8)} + +extKeyUsage EXTENSION ::= { + SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId + IDENTIFIED BY id-ce-extKeyUsage +} + +KeyPurposeId ::= OBJECT IDENTIFIER + +privateKeyUsagePeriod EXTENSION ::= { + SYNTAX PrivateKeyUsagePeriod + IDENTIFIED BY id-ce-privateKeyUsagePeriod +} + +PrivateKeyUsagePeriod ::= SEQUENCE { + notBefore [0] GeneralizedTime OPTIONAL, + notAfter [1] GeneralizedTime OPTIONAL +} +(WITH COMPONENTS { + ..., + notBefore PRESENT + } | WITH COMPONENTS { + ..., + notAfter PRESENT + }) + +certificatePolicies EXTENSION ::= { + SYNTAX CertificatePoliciesSyntax + IDENTIFIED BY id-ce-certificatePolicies +} + +CertificatePoliciesSyntax ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation + +PolicyInformation ::= SEQUENCE { + policyIdentifier CertPolicyId, + policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL +} + +CertPolicyId ::= OBJECT IDENTIFIER + +PolicyQualifierInfo ::= SEQUENCE { + policyQualifierId CERT-POLICY-QUALIFIER.&id({SupportedPolicyQualifiers}), + qualifier + CERT-POLICY-QUALIFIER.&Qualifier + ({SupportedPolicyQualifiers}{@policyQualifierId}) OPTIONAL +} + +SupportedPolicyQualifiers CERT-POLICY-QUALIFIER ::= + {...} + +CERT-POLICY-QUALIFIER ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Qualifier OPTIONAL +}WITH SYNTAX {POLICY-QUALIFIER-ID &id + [QUALIFIER-TYPE &Qualifier] +} + +policyMappings EXTENSION ::= { + SYNTAX PolicyMappingsSyntax + IDENTIFIED BY id-ce-policyMappings +} + +PolicyMappingsSyntax ::= + SEQUENCE SIZE (1..MAX) OF + SEQUENCE {issuerDomainPolicy CertPolicyId, + subjectDomainPolicy CertPolicyId} + +supportedAlgorithms ATTRIBUTE ::= { + WITH SYNTAX SupportedAlgorithm + EQUALITY MATCHING RULE algorithmIdentifierMatch + ID id-at-supportedAlgorithms +} + +SupportedAlgorithm ::= SEQUENCE { + algorithmIdentifier AlgorithmIdentifier, + intendedUsage [0] KeyUsage OPTIONAL, + intendedCertificatePolicies [1] CertificatePoliciesSyntax OPTIONAL +} + +-- Certificate subject and certificate issuer attributes extensions +subjectAltName EXTENSION ::= { + SYNTAX GeneralNames + IDENTIFIED BY id-ce-subjectAltName +} + +GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName + +GeneralName ::= CHOICE { + otherName [0] INSTANCE OF OTHER-NAME, + rfc822Name [1] IA5String, + dNSName [2] IA5String, + x400Address [3] ORAddress, + directoryName [4] Name, + ediPartyName [5] EDIPartyName, + uniformResourceIdentifier [6] IA5String, + iPAddress [7] OCTET STRING, + registeredID [8] OBJECT IDENTIFIER +} + +OTHER-NAME ::= TYPE-IDENTIFIER + +EDIPartyName ::= SEQUENCE { + nameAssigner [0] DirectoryString{ub-name} OPTIONAL, + partyName [1] DirectoryString{ub-name} +} + +issuerAltName EXTENSION ::= { + SYNTAX GeneralNames + IDENTIFIED BY id-ce-issuerAltName +} + +subjectDirectoryAttributes EXTENSION ::= { + SYNTAX AttributesSyntax + IDENTIFIED BY id-ce-subjectDirectoryAttributes +} + +AttributesSyntax ::= SEQUENCE SIZE (1..MAX) OF Attribute + +-- Certification path constraints extensions +basicConstraints EXTENSION ::= { + SYNTAX BasicConstraintsSyntax + IDENTIFIED BY id-ce-basicConstraints +} + +BasicConstraintsSyntax ::= SEQUENCE { + cA BOOLEAN DEFAULT FALSE, + pathLenConstraint INTEGER(0..MAX) OPTIONAL +} + +nameConstraints EXTENSION ::= { + SYNTAX NameConstraintsSyntax + IDENTIFIED BY id-ce-nameConstraint +} + +NameConstraintsSyntax ::= SEQUENCE { + permittedSubtrees [0] GeneralSubtrees OPTIONAL, + excludedSubtrees [1] GeneralSubtrees OPTIONAL, + requiredNameForms [2] NameForms OPTIONAL +} + +GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree + +GeneralSubtree ::= SEQUENCE { + base GeneralName, + minimum [0] BaseDistance DEFAULT 0, + maximum [1] BaseDistance OPTIONAL +} + +BaseDistance ::= INTEGER(0..MAX) + +NameForms ::= SEQUENCE { + basicNameForms [0] BasicNameForms OPTIONAL, + otherNameForms [1] SEQUENCE SIZE (1..MAX) OF OBJECT IDENTIFIER OPTIONAL +}(ALL EXCEPT ({ --none; i.e.:at least one component shall be present--})) + +BasicNameForms ::= BIT STRING { + rfc822Name(0), dNSName(1), x400Address(2), directoryName(3), ediPartyName(4), + uniformResourceIdentifier(5), iPAddress(6), registeredID(7)}(SIZE (1..MAX)) + +policyConstraints EXTENSION ::= { + SYNTAX PolicyConstraintsSyntax + IDENTIFIED BY id-ce-policyConstraints +} + +PolicyConstraintsSyntax ::= SEQUENCE { + requireExplicitPolicy [0] SkipCerts OPTIONAL, + inhibitPolicyMapping [1] SkipCerts OPTIONAL +} + +SkipCerts ::= INTEGER(0..MAX) + +CertPolicySet ::= SEQUENCE SIZE (1..MAX) OF CertPolicyId + +-- Basic CRL extensions +cRLNumber EXTENSION ::= { + SYNTAX CRLNumber + IDENTIFIED BY id-ce-cRLNumber +} + +CRLNumber ::= INTEGER(0..MAX) + +reasonCode EXTENSION ::= { + SYNTAX CRLReason + IDENTIFIED BY id-ce-reasonCode +} + +CRLReason ::= ENUMERATED { + unspecified(0), keyCompromise(1), cACompromise(2), affiliationChanged(3), + superseded(4), cessationOfOperation(5), certificateHold(6), removeFromCRL(8) +} + +instructionCode EXTENSION ::= { + SYNTAX HoldInstruction + IDENTIFIED BY id-ce-instructionCode +} + +HoldInstruction ::= OBJECT IDENTIFIER + +invalidityDate EXTENSION ::= { + SYNTAX GeneralizedTime + IDENTIFIED BY id-ce-invalidityDate +} + +-- CRL distribution points and delta-CRL extensions +cRLDistributionPoints EXTENSION ::= { + SYNTAX CRLDistPointsSyntax + IDENTIFIED BY id-ce-cRLDistributionPoints +} + +CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint + +DistributionPoint ::= SEQUENCE { + distributionPoint [0] DistributionPointName OPTIONAL, + reasons [1] ReasonFlags OPTIONAL, + cRLIssuer [2] GeneralNames OPTIONAL +} + +DistributionPointName ::= CHOICE { + fullName [0] GeneralNames, + nameRelativeToCRLIssuer [1] RelativeDistinguishedName +} + +ReasonFlags ::= BIT STRING { + unused(0), keyCompromise(1), caCompromise(2), affiliationChanged(3), + superseded(4), cessationOfOperation(5), certificateHold(6)} + +issuingDistributionPoint EXTENSION ::= { + SYNTAX IssuingDistPointSyntax + IDENTIFIED BY id-ce-issuingDistributionPoint +} + +IssuingDistPointSyntax ::= SEQUENCE { + distributionPoint [0] DistributionPointName OPTIONAL, + onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, + onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, + onlySomeReasons [3] ReasonFlags OPTIONAL, + indirectCRL [4] BOOLEAN DEFAULT FALSE +} + +certificateIssuer EXTENSION ::= { + SYNTAX GeneralNames + IDENTIFIED BY id-ce-certificateIssuer +} + +deltaCRLIndicator EXTENSION ::= { + SYNTAX BaseCRLNumber + IDENTIFIED BY id-ce-deltaCRLIndicator +} + +BaseCRLNumber ::= CRLNumber + +deltaRevocationList ATTRIBUTE ::= { + WITH SYNTAX CertificateList + EQUALITY MATCHING RULE certificateListExactMatch + ID id-at-deltaRevocationList +} + +-- Matching rules +certificateExactMatch MATCHING-RULE ::= { + SYNTAX CertificateExactAssertion + ID id-mr-certificateExactMatch +} + +CertificateExactAssertion ::= SEQUENCE { + serialNumber CertificateSerialNumber, + issuer Name +} + +certificateMatch MATCHING-RULE ::= { + SYNTAX CertificateAssertion + ID id-mr-certificateMatch +} + +CertificateAssertion ::= SEQUENCE { + serialNumber [0] CertificateSerialNumber OPTIONAL, + issuer [1] Name OPTIONAL, + subjectKeyIdentifier [2] SubjectKeyIdentifier OPTIONAL, + authorityKeyIdentifier [3] AuthorityKeyIdentifier OPTIONAL, + certificateValid [4] Time OPTIONAL, + privateKeyValid [5] GeneralizedTime OPTIONAL, + subjectPublicKeyAlgID [6] OBJECT IDENTIFIER OPTIONAL, + keyUsage [7] KeyUsage OPTIONAL, + subjectAltName [8] AltNameType OPTIONAL, + policy [9] CertPolicySet OPTIONAL, + pathToName [10] Name OPTIONAL +} + +AltNameType ::= CHOICE { + builtinNameForm + ENUMERATED {rfc822Name(1), dNSName(2), x400Address(3), directoryName(4), + ediPartyName(5), uniformResourceIdentifier(6), iPAddress(7), + registeredId(8)}, + otherNameForm OBJECT IDENTIFIER +} + +certificatePairExactMatch MATCHING-RULE ::= { + SYNTAX CertificatePairExactAssertion + ID id-mr-certificatePairExactMatch +} + +CertificatePairExactAssertion ::= SEQUENCE { + forwardAssertion [0] CertificateExactAssertion OPTIONAL, + reverseAssertion [1] CertificateExactAssertion OPTIONAL +} +(WITH COMPONENTS { + ..., + forwardAssertion PRESENT + } | WITH COMPONENTS { + ..., + reverseAssertion PRESENT + }) + +certificatePairMatch MATCHING-RULE ::= { + SYNTAX CertificatePairAssertion + ID id-mr-certificatePairMatch +} + +CertificatePairAssertion ::= SEQUENCE { + forwardAssertion [0] CertificateAssertion OPTIONAL, + reverseAssertion [1] CertificateAssertion OPTIONAL +} +(WITH COMPONENTS { + ..., + forwardAssertion PRESENT + } | WITH COMPONENTS { + ..., + reverseAssertion PRESENT + }) + +certificateListExactMatch MATCHING-RULE ::= { + SYNTAX CertificateListExactAssertion + ID id-mr-certificateListExactMatch +} + +CertificateListExactAssertion ::= SEQUENCE { + issuer Name, + thisUpdate Time, + distributionPoint DistributionPointName OPTIONAL +} + +certificateListMatch MATCHING-RULE ::= { + SYNTAX CertificateListAssertion + ID id-mr-certificateListMatch +} + +CertificateListAssertion ::= SEQUENCE { + issuer Name OPTIONAL, + minCRLNumber [0] CRLNumber OPTIONAL, + maxCRLNumber [1] CRLNumber OPTIONAL, + reasonFlags ReasonFlags OPTIONAL, + dateAndTime Time OPTIONAL, + distributionPoint [2] DistributionPointName OPTIONAL +} + +algorithmIdentifierMatch MATCHING-RULE ::= { + SYNTAX AlgorithmIdentifier + ID id-mr-algorithmIdentifierMatch +} + +-- Object identifier assignments +id-at-supportedAlgorithms OBJECT IDENTIFIER ::= + {id-at 52} + +id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53} + +id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= {id-ce 9} + +id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= {id-ce 14} + +id-ce-keyUsage OBJECT IDENTIFIER ::= {id-ce 15} + +id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= {id-ce 16} + +id-ce-subjectAltName OBJECT IDENTIFIER ::= {id-ce 17} + +id-ce-issuerAltName OBJECT IDENTIFIER ::= {id-ce 18} + +id-ce-basicConstraints OBJECT IDENTIFIER ::= {id-ce 19} + +id-ce-cRLNumber OBJECT IDENTIFIER ::= {id-ce 20} + +id-ce-reasonCode OBJECT IDENTIFIER ::= {id-ce 21} + +id-ce-instructionCode OBJECT IDENTIFIER ::= {id-ce 23} + +id-ce-invalidityDate OBJECT IDENTIFIER ::= {id-ce 24} + +id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= {id-ce 27} + +id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= {id-ce 28} + +id-ce-certificateIssuer OBJECT IDENTIFIER ::= {id-ce 29} + +id-ce-nameConstraint OBJECT IDENTIFIER ::= {id-ce 30 1} + +id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31} + +id-ce-certificatePolicies OBJECT IDENTIFIER ::= {id-ce 32} + +id-ce-policyMappings OBJECT IDENTIFIER ::= {id-ce 33} + +-- deprecated OBJECT IDENTIFIER ::= {id-ce 34} +id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= + {id-ce 35} + +id-ce-policyConstraints OBJECT IDENTIFIER ::= {id-ce 36} + +id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37} + +id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34} + +id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35} + +id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36} + +id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37} + +id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38} + +id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39} + +id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40} + +id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= {id-ce 54} + +-- The following OBJECT IDENTIFIERS are not used by this Specification: +-- {id-ce 2}, {id-ce 3}, {id-ce 4}, {id-ce 5}, {id-ce 6}, {id-ce 7}, +-- {id-ce 8}, {id-ce 10}, {id-ce 11}, {id-ce 12}, {id-ce 13}, +-- {id-ce 22}, {id-ce 25}, {id-ce 26}, {id-ce 30} +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn new file mode 100644 index 0000000000..04060cf060 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Character-Coding-Attributes.asn @@ -0,0 +1,17 @@ +-- Module Character-Coding-Attributes (T.416:03/1993) + +Character-Coding-Attributes {2 8 1 6 3} DEFINITIONS ::= +BEGIN + +EXPORTS Character-Coding-Attributes; + +Character-Coding-Attributes ::= SET { +} + +-- no character coding attributes +-- are defined in this part of +-- ITU-T Rec. T.410-Series | ISO/IEC 8613 +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn new file mode 100644 index 0000000000..aed48ac26b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Character-Presentation-Attributes.asn @@ -0,0 +1,125 @@ +-- Module Character-Presentation-Attributes (T.416:03/1993) + +Character-Presentation-Attributes {2 8 1 6 2} DEFINITIONS ::= +BEGIN + +EXPORTS + Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair, + Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator, + Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing, + Pairwise-Kerning; + +Character-Attributes ::= SET { + character-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL, + line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL, + character-orientation [2] IMPLICIT One-Of-Four-Angles OPTIONAL, + initial-offset [3] IMPLICIT Measure-Pair OPTIONAL, + character-spacing [6] IMPLICIT INTEGER OPTIONAL, + line-spacing [7] IMPLICIT INTEGER OPTIONAL, + alignment [8] IMPLICIT Alignment OPTIONAL, + line-layout-table [9] IMPLICIT Layout-Table OPTIONAL, + graphic-rendition [10] IMPLICIT Graphic-Rendition OPTIONAL, + formatting-indicator [11] IMPLICIT Formatting-Indicator OPTIONAL, + character-fonts [12] IMPLICIT Character-Fonts OPTIONAL, + graphic-char-subrepertoire [13] IMPLICIT INTEGER OPTIONAL, + itemization [14] IMPLICIT Itemization OPTIONAL, + widow-size [15] IMPLICIT INTEGER OPTIONAL, + orphan-size [16] IMPLICIT INTEGER OPTIONAL, + graphic-character-sets [17] IMPLICIT OCTET STRING OPTIONAL, + indentation [19] IMPLICIT INTEGER OPTIONAL, + kerning-offset [20] IMPLICIT Kerning-Offset OPTIONAL, + proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing OPTIONAL, + pairwise-kerning [22] IMPLICIT Pairwise-Kerning OPTIONAL, + first-line-offset [23] IMPLICIT INTEGER OPTIONAL, + code-extension-announcers [24] IMPLICIT OCTET STRING OPTIONAL +} + +One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)} + +One-Of-Two-Angles ::= INTEGER {d90(1), d270(3)} + +Measure-Pair ::= SEQUENCE { + horizontal [0] IMPLICIT INTEGER, + vertical [1] IMPLICIT INTEGER +} + +Alignment ::= INTEGER { + start-aligned(0), end-aligned(1), centred(2), justified(3)} + +Layout-Table ::= SET OF Tabulation-Stop + +Tabulation-Stop ::= SET { + tabulation-reference [0] IMPLICIT NumericString, + tabulation-position [1] IMPLICIT INTEGER, + alignment + [2] IMPLICIT INTEGER {start-aligned(0), end-aligned(1), centred(2), + aligned-around(3)}, + alignment-character-string [3] IMPLICIT OCTET STRING OPTIONAL +} + +-- string of graphic characters +-- from the set of graphic elements +-- specified by the presentation +-- attributes "graphic character +-- sets" and "graphic character +-- subrepertoire" +Graphic-Rendition ::= SET OF Graphic-Rendition-Aspect + +Character-Fonts ::= SET { + primary-font [0] IMPLICIT Font-Type OPTIONAL, + first-alternative-font [1] IMPLICIT Font-Type OPTIONAL, + second-alternative-font [2] IMPLICIT Font-Type OPTIONAL, + third-alternative-font [3] IMPLICIT Font-Type OPTIONAL, + fourth-alternative-font [4] IMPLICIT Font-Type OPTIONAL, + fifth-alternative-font [5] IMPLICIT Font-Type OPTIONAL, + sixth-alternative-font [6] IMPLICIT Font-Type OPTIONAL, + seventh-alternative-font [7] IMPLICIT Font-Type OPTIONAL, + eighth-alternative-font [8] IMPLICIT Font-Type OPTIONAL, + ninth-alternative-font [9] IMPLICIT Font-Type OPTIONAL +} + +Font-Type ::= SET { + font-size [0] IMPLICIT INTEGER, + font-identifier [1] IMPLICIT INTEGER +} + +Graphic-Rendition-Aspect ::= INTEGER { + cancel(0), increased-intensity(1), decreased-intensity(2), italicized(3), + underlined(4), slowly-blinking(5), rapidly-blinking(6), negative-image(7), + crossed-out(9), primary-font(10), first-alternative-font(11), + second-alternative-font(12), third-alternative-font(13), + fourth-alternative-font(14), fifth-alternative-font(15), + sixth-alternative-font(16), seventh-alternative-font(17), + eighth-alternative-font(18), ninth-alternative-font(19), + doubly-underlined(21), normal-intensity(22), not-italicized(23), + not-underlined(24), steady(25), variable-spacing(26), positive-image(27), + not-crossed-out(29), black-foreground(30), red-foreground(31), + green-foreground(32), yellow-foreground(33), blue-foreground(34), + magenta-foreground(35), cyan-foreground(36), white-foreground(37), + select-char-foreground-colour(38), black-background(40), red-background(41), + green-background(42), yellow-background(43), blue-background(44), + magenta-background(45), cyan-background(46), white-background(47), + select-char-background-colour(48), not-variable-spacing(50)} + +Formatting-Indicator ::= INTEGER {no(0), yes(1)} + +Itemization ::= SET { + identifier-alignment + [0] IMPLICIT INTEGER {no-itemization(0), start-aligned(1), end-aligned(2)}, + identifier-start-offset [1] IMPLICIT INTEGER OPTIONAL, + identifier-end-offset [2] IMPLICIT INTEGER OPTIONAL +} + +Kerning-Offset ::= SET { + start-offset [0] IMPLICIT INTEGER, + end-offset [1] IMPLICIT INTEGER +} + +Proportional-Line-Spacing ::= INTEGER {no(0), yes(1)} + +Pairwise-Kerning ::= INTEGER {no(0), yes(1)} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn new file mode 100644 index 0000000000..7ba5bf194a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Character-Profile-Attributes.asn @@ -0,0 +1,54 @@ +-- Module Character-Profile-Attributes (T.416:03/1993) + +Character-Profile-Attributes {2 8 1 6 4} DEFINITIONS ::= +BEGIN + +EXPORTS + Character-Presentation-Feature, Character-Coding-Attribute, + Character-Content-Defaults; + +IMPORTS + Character-Attributes, One-Of-Four-Angles, One-Of-Two-Angles, Measure-Pair, + Alignment, Layout-Table, Graphic-Rendition, Formatting-Indicator, + Character-Fonts, Itemization, Kerning-Offset, Proportional-Line-Spacing, + Pairwise-Kerning + FROM Character-Presentation-Attributes; + +-- see 11.2 +Character-Presentation-Feature ::= CHOICE { + character-path [0] IMPLICIT One-Of-Four-Angles, + line-progression [1] IMPLICIT One-Of-Two-Angles, + character-orientation [2] IMPLICIT One-Of-Four-Angles, + initial-offset [3] IMPLICIT Measure-Pair, + character-spacing [6] IMPLICIT INTEGER, + line-spacing [7] IMPLICIT INTEGER, + alignment [8] IMPLICIT Alignment, + line-layout-table [9] IMPLICIT Layout-Table, + graphic-rendition [10] IMPLICIT Graphic-Rendition, + formatting-indicator [11] IMPLICIT Formatting-Indicator, + character-fonts [12] IMPLICIT Character-Fonts, + graphic-char-subrepertoire [13] IMPLICIT INTEGER, + itemization [14] IMPLICIT Itemization, + widow-size [15] IMPLICIT INTEGER, + orphan-size [16] IMPLICIT INTEGER, + graphic-character-sets [17] IMPLICIT OCTET STRING, + indentation [19] IMPLICIT INTEGER, + kerning-offset [20] IMPLICIT Kerning-Offset, + proportional-line-spacing [21] IMPLICIT Proportional-Line-Spacing, + pairwise-kerning [22] IMPLICIT Pairwise-Kerning, + first-line-offset [23] IMPLICIT INTEGER, + code-extension-announcers [24] IMPLICIT OCTET STRING +} + +Character-Coding-Attribute ::= NULL + +-- no character coding attributes +-- are defined in this part of +-- ITU-T Rec. T.410-Series | ISO/IEC 8613 +Character-Content-Defaults ::= + Character-Attributes + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn new file mode 100644 index 0000000000..24c7fafc38 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Colour-Attributes.asn @@ -0,0 +1,192 @@ +-- Module Colour-Attributes (T.415:03/1993) + +Colour-Attributes {2 8 1 5 14} DEFINITIONS ::= +BEGIN + +EXPORTS + Colour-Expression, Colour-Table, Colour-Spaces-List, Colour-Characteristics; + +IMPORTS Character-Data + FROM Document-Profile-Descriptor; -- see 7.7 + +Real-Or-Int ::= CHOICE {a REAL, + b INTEGER +} + +Colour-Expression ::= SEQUENCE { + colour-access-mode [0] IMPLICIT INTEGER {direct(0), indexed(1)}, + a + [1] CHOICE {direct-colour [0] IMPLICIT Direct-Colour, + indexed-colour [1] IMPLICIT Indexed-Colour} +} + +Direct-Colour ::= SET { + colour-space-id [0] IMPLICIT INTEGER OPTIONAL, + colour-specification [1] Colour-Specification OPTIONAL, + colour-tolerance [2] Colour-Tolerance OPTIONAL +} + +Colour-Specification ::= CHOICE { + cmyk-colour [0] IMPLICIT CMYK-Colour, + rgb-colour [1] IMPLICIT RGB-Colour, + cie-colour [2] IMPLICIT CIE-Colour +} + +CMYK-Colour ::= SET { + c-value [0] Real-Or-Int, + m-value [1] Real-Or-Int, + y-value [2] Real-Or-Int, + k-value [3] Real-Or-Int OPTIONAL +} + +RGB-Colour ::= SET { + r-value [0] Real-Or-Int, + g-value [1] Real-Or-Int, + b-value [2] Real-Or-Int +} + +CIE-Colour ::= SET { + x-value [0] Real-Or-Int, + y-value [1] Real-Or-Int, + z-value [2] Real-Or-Int +} + +Colour-Tolerance ::= CHOICE { + unspecified-tolerance [0] IMPLICIT NULL, + specified-tolerance [1] IMPLICIT Specified-Tolerance +} + +Specified-Tolerance ::= SET { + tolerance-value [0] Real-Or-Int, + tolerance-space [1] IMPLICIT INTEGER {cieluv(3), cielab(4)} +} + +Indexed-Colour ::= SET {index [0] IMPLICIT INTEGER OPTIONAL +} + +Colour-Table ::= SET { + colour-space-id [0] IMPLICIT INTEGER, + colour-table-entries + [1] IMPLICIT SET OF + SET {index [0] IMPLICIT INTEGER, + colour-coordinates [1] Colour-Specification, + colour-tolerance [2] Colour-Tolerance OPTIONAL + } +} + +Colour-Characteristics ::= SET { + colour-spaces-present + [0] IMPLICIT SEQUENCE OF + SET {colour-space-type [0] IMPLICIT Colour-Space-Type, + colour-calibration-type + [1] IMPLICIT Colour-Space-Calibration-Type}, + colour-modes-present [1] IMPLICIT Colour-Modes-Present, + minimum-colour-tolerance [2] Colour-Tolerance OPTIONAL, + maximum-colour-table-length [3] IMPLICIT INTEGER OPTIONAL, + -- "maximum number of colour table entries" + maximum-rgb-lut-length [4] IMPLICIT INTEGER OPTIONAL, + -- "maximum number of look-up table entries" + maximum-cmy-k-grid-size [5] IMPLICIT INTEGER OPTIONAL +} + +Colour-Space-Type ::= INTEGER {rgb(0), cmyk(1), cmy(2), cieluv(3), cielab(4)} + +Colour-Space-Calibration-Type ::= INTEGER { + no-calibration(0), matrices(1), lookup-tables(2), + matrices-and-lookup-tables(3)} + +Colour-Modes-Present ::= INTEGER {direct(0), indexed(1), both(2)} + +Colour-Spaces-List ::= SET OF Colour-Space + +Colour-Space ::= SET { + colour-space-id [0] IMPLICIT INTEGER, + colour-space-type [1] IMPLICIT Colour-Space-Type, + colour-space-name [2] IMPLICIT Character-Data OPTIONAL, + colour-data-scaling [3] Colour-Data-Scaling OPTIONAL, + calibration-data [4] Calibration-Data OPTIONAL +} + +Colour-Data-Scaling ::= SET { + first-component [0] IMPLICIT Scale-And-Offset, + second-component [1] IMPLICIT Scale-And-Offset, + third-component [2] IMPLICIT Scale-And-Offset, + fourth-component [3] IMPLICIT Scale-And-Offset OPTIONAL +} + +Scale-And-Offset ::= SET { + colour-scale [0] Real-Or-Int, + colour-offset [1] Real-Or-Int +} + +Calibration-Data ::= CHOICE { + rgb [0] IMPLICIT RGB-Calibration, + cmyk [1] IMPLICIT CMY-K-Calibration, + cmy [2] IMPLICIT CMY-K-Calibration, + cieluv [3] IMPLICIT CIE-Calibration, + cielab [4] IMPLICIT CIE-Calibration +} + +CIE-Calibration ::= SET {reference-white [0] IMPLICIT CIE-Ref +} + +RGB-Calibration ::= SET { + reference-white [0] IMPLICIT CIE-Ref, + matrix1 [1] IMPLICIT Three-by-Three-Matrix OPTIONAL, + lookup-table [3] IMPLICIT Colour-Lookup-Table OPTIONAL, + matrix2 [2] IMPLICIT Three-by-Three-Matrix OPTIONAL +} + +Three-by-Three-Matrix ::= SEQUENCE { + row-1 Three-Nums, + row-2 Three-Nums, + row-3 Three-Nums +} + +Three-Nums ::= SEQUENCE { + column-1 Real-Or-Int, + column-2 Real-Or-Int, + column-3 Real-Or-Int +} + +Colour-Lookup-Table ::= SET { + number-of-entries [0] IMPLICIT INTEGER, + m [1] IMPLICIT INTEGER, + n [2] IMPLICIT INTEGER, + colour-table [3] IMPLICIT SET OF Colour-Table-Entry +} + +Colour-Table-Entry ::= SET { + index [3] IMPLICIT INTEGER, + r [0] Real-Or-Int, + g [1] Real-Or-Int, + b [2] Real-Or-Int +} + +CMY-K-Calibration ::= SET { + reference-white [0] IMPLICIT CIE-Ref, + comment [1] IMPLICIT Character-Data OPTIONAL, + cmyk-lut [2] IMPLICIT Grid-Specification +} + +Grid-Specification ::= + SET OF + SET {grid-location [0] IMPLICIT CMYK-Colour, + grid-value [1] IMPLICIT Grid-Value} + +Grid-Value ::= SET { + x-value [0] IMPLICIT REAL, + y-value [1] IMPLICIT REAL, + z-value [2] IMPLICIT REAL +} + +CIE-Ref ::= SET { + xn-value [0] Real-Or-Int, + yn-value [1] Real-Or-Int, + zn-value [2] Real-Or-Int +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn b/lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn new file mode 100644 index 0000000000..cd3330dc56 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DOR-definition.asn @@ -0,0 +1,134 @@ +-- Module DOR-definition (ISO|IEC 10031-2:1991) +DOR-definition {joint-iso-itu-t dor(4) reference-definition(0)} DEFINITIONS ::= +BEGIN + +EXPORTS + AE-Identifier, Altered-value, DOR, dor-abstract-syntax, dor-syntax-asn1, + dorx, Extend-QoS, Local-reference, Locational-identifier, Produce-QoS, + QoS-level, Quality-of-Service, Requested-QoS-level, + Single-use-of-reference, Token; + +IMPORTS + DistinguishedName + FROM InformationFramework {joint-iso-itu-t ds(5) module(1) + informationFramework(1) 3} + PresentationAddress + FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1) + selectedAttributeTypes(5) 3}; + +-- Defined Object Identifiers +dorx OBJECT IDENTIFIER ::= + {joint-iso-itu-t dor(11)} + +-- Object identifier for abstract syntax of DOR +dor-abstract-syntax OBJECT IDENTIFIER ::= + {dorx reference-abstract-syntax(1)} + +-- Object identifier for abstract syntax of DOR with basic ASN.1 encodings in +-- EXTERNAL +dor-syntax-asn1 OBJECT IDENTIFIER ::= + {dorx reference-syntax(2) asn1(0)} + +-- Definition of DOR type +DOR ::= SEQUENCE { + ae-identifier [0] AE-Identifier OPTIONAL, + -- mandatory in case of produce-operations and consume-operations + local-reference [1] Local-reference, + data-object-type OBJECT IDENTIFIER, + -- identifying the abstract syntax and the transfer syntax of the + -- referenced data value + quality-of-service [2] Quality-of-Service DEFAULT {}, + token [3] Token OPTIONAL +} + +AE-Identifier ::= SEQUENCE { -- at least one component shall be present + locational-identifier [0] Locational-identifier OPTIONAL, + direct-logical-identifier [1] DistinguishedName OPTIONAL, + indirect-logical-identifier [2] DistinguishedName OPTIONAL +} + +Locational-identifier ::= SEQUENCE { + presentation-address [0] PresentationAddress, + ae-title [1] AE-title OPTIONAL, + -- as defined in ISO 8650:1988/Cor.1:1990 + application-contexts SET OF OBJECT IDENTIFIER +} + +Local-reference ::= SEQUENCE { + application [0] OCTET STRING OPTIONAL, + specific-reference [1] OCTET STRING +} + +Quality-of-Service ::= SEQUENCE { + qoS-level [0] QoS-level DEFAULT level-1:NULL, + usage-of-reference Single-use-of-reference DEFAULT TRUE +} + +QoS-level ::= CHOICE { + level-1 [1] IMPLICIT NULL, + level-2 [2] IMPLICIT GeneralizedTime, + -- specifying the produce time + level-3 + [3] IMPLICIT SEQUENCE {produce-time GeneralizedTime, + fidelity-time GeneralizedTime} +} + +Single-use-of-reference ::= BOOLEAN + +Token ::= CHOICE { + simpletoken OCTET STRING, + -- used to validate an access which use this DOR + externaltoken EXTERNAL -- for future proxy mechanism +} + +-- Data types for produce-operations +Produce-QoS ::= SEQUENCE { + qoS-level [0] Requested-QoS-level DEFAULT level-1:NULL, + usage-of-reference Single-use-of-reference DEFAULT TRUE +} + +Requested-QoS-level ::= CHOICE { + level-1 [1] IMPLICIT NULL, + level-2 [2] IMPLICIT NULL, + level-3 [3] IMPLICIT GeneralizedTime + -- specifying the requested fidelity-time +} + +-- Data types for extending a specific QoS +Extend-QoS ::= SEQUENCE { + qoS-level [0] Requested-QoS-level OPTIONAL, + -- if omitted, no change required + usage-of-reference Single-use-of-reference OPTIONAL + -- if omitted, no change required +} + +-- Data types for requesting / indicating value alteration in produce-operation +-- or access-operation +Altered-value ::= ENUMERATED { + value-not-altered(1), value-altered(2), undefined(3)} + +-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990 +-- dw: defined in-line here so we don't need to import it, original comments +-- dw: are as they appear in the 8650:1988 Annex E +AP-title ::= TYPE-IDENTIFIER.&Type + +-- The exact definition and values used for AP-title +-- should be chosen taking into account the ongoing +-- work in areas of naming, the Directory, and the +-- Registration Authority procedures for AE titles, +-- AE titles, and AE qualifiers +AE-qualifier ::= TYPE-IDENTIFIER.&Type + +-- The exact definition and values used for AE-qualifier +-- should be chosen taking into account the ongoing +-- work in areas of naming, the Directory, and the +-- Registration Authority procedures for AE titles, +-- AE titles, and AE qualifiers +AE-title ::= SEQUENCE {ap AP-title, + ae AE-qualifier +} + +END -- of DOR-definition + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn new file mode 100644 index 0000000000..df5e8489ea --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DSAOperationalAttributeTypes.asn @@ -0,0 +1,186 @@ +-- Module DSAOperationalAttributeTypes (X.501:08/1997) +DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1) + dsaOperationalAttributeTypes(22) 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-doa, id-kmr, informationFramework, distributedOperations, + opBindingManagement, selectedAttributeTypes + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + ATTRIBUTE, MATCHING-RULE, Name + FROM InformationFramework informationFramework + OperationalBindingID + FROM OperationalBindingManagement opBindingManagement + AccessPoint, MasterAndShadowAccessPoints + FROM DistributedOperations distributedOperations + bitStringMatch + FROM SelectedAttributeTypes selectedAttributeTypes; + +-- data types +DSEType ::= BIT STRING { + root(0), -- root DSE + glue(1), -- represents knowledge of a name only + cp(2), -- context prefix + entry(3), -- object entry + alias(4), -- alias entry + subr(5), -- subordinate reference + nssr(6), -- non-specific subordinate reference + supr(7), -- superior reference + xr(8), -- cross reference + admPoint(9), -- administrative point + subentry(10), -- subentry + shadow(11), -- shadow copy + immSupr(13), -- immediate superior reference + rhob(14), -- rhob information + sa(15), -- subordinate reference to alias entry + dsSubentry(16), -- DSA Specific subentry + familyMember(17)} -- family member + +SupplierOrConsumer ::= SET { + COMPONENTS OF AccessPoint, -- supplier or consumer + agreementID [4] OperationalBindingID +} + +SupplierInformation ::= SET { + COMPONENTS OF SupplierOrConsumer, -- supplier + supplier-is-master [5] BOOLEAN DEFAULT TRUE, + non-supplying-master [6] AccessPoint OPTIONAL +} + +ConsumerInformation ::= SupplierOrConsumer -- consumer + +SupplierAndConsumers ::= SET { + COMPONENTS OF AccessPoint, -- supplier + consumers [4] SET OF AccessPoint +} + +-- attribute types +dseType ATTRIBUTE ::= { + WITH SYNTAX DSEType + EQUALITY MATCHING RULE bitStringMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE dSAOperation + ID id-doa-dseType +} + +myAccessPoint ATTRIBUTE ::= { + WITH SYNTAX AccessPoint + EQUALITY MATCHING RULE accessPointMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE dSAOperation + ID id-doa-myAccessPoint +} + +superiorKnowledge ATTRIBUTE ::= { + WITH SYNTAX AccessPoint + EQUALITY MATCHING RULE accessPointMatch + NO USER MODIFICATION TRUE + USAGE dSAOperation + ID id-doa-superiorKnowledge +} + +specificKnowledge ATTRIBUTE ::= { + WITH SYNTAX MasterAndShadowAccessPoints + EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE distributedOperation + ID id-doa-specificKnowledge +} + +nonSpecificKnowledge ATTRIBUTE ::= { + WITH SYNTAX MasterAndShadowAccessPoints + EQUALITY MATCHING RULE masterAndShadowAccessPointsMatch + NO USER MODIFICATION TRUE + USAGE distributedOperation + ID id-doa-nonSpecificKnowledge +} + +supplierKnowledge ATTRIBUTE ::= { + WITH SYNTAX SupplierInformation + EQUALITY MATCHING RULE supplierOrConsumerInformationMatch + NO USER MODIFICATION TRUE + USAGE dSAOperation + ID id-doa-supplierKnowledge +} + +consumerKnowledge ATTRIBUTE ::= { + WITH SYNTAX ConsumerInformation + EQUALITY MATCHING RULE supplierOrConsumerInformationMatch + NO USER MODIFICATION TRUE + USAGE dSAOperation + ID id-doa-consumerKnowledge +} + +secondaryShadows ATTRIBUTE ::= { + WITH SYNTAX SupplierAndConsumers + EQUALITY MATCHING RULE supplierAndConsumersMatch + NO USER MODIFICATION TRUE + USAGE dSAOperation + ID id-doa-secondaryShadows +} + +-- matching rules +accessPointMatch MATCHING-RULE ::= { + SYNTAX Name + ID id-kmr-accessPointMatch +} + +masterAndShadowAccessPointsMatch MATCHING-RULE ::= { + SYNTAX SET OF Name + ID id-kmr-masterShadowMatch +} + +supplierOrConsumerInformationMatch MATCHING-RULE ::= { + SYNTAX + SET {ae-title [0] Name, + agreement-identifier [2] INTEGER} + ID id-kmr-supplierConsumerMatch +} + +supplierAndConsumersMatch MATCHING-RULE ::= { + SYNTAX Name + ID id-kmr-supplierConsumersMatch +} + +-- object identifier assignments +-- dsa operational attributes +id-doa-dseType OBJECT IDENTIFIER ::= + {id-doa 0} + +id-doa-myAccessPoint OBJECT IDENTIFIER ::= {id-doa 1} + +id-doa-superiorKnowledge OBJECT IDENTIFIER ::= {id-doa 2} + +id-doa-specificKnowledge OBJECT IDENTIFIER ::= {id-doa 3} + +id-doa-nonSpecificKnowledge OBJECT IDENTIFIER ::= {id-doa 4} + +id-doa-supplierKnowledge OBJECT IDENTIFIER ::= {id-doa 5} + +id-doa-consumerKnowledge OBJECT IDENTIFIER ::= {id-doa 6} + +id-doa-secondaryShadows OBJECT IDENTIFIER ::= {id-doa 7} + +-- knowledge matching rules +id-kmr-accessPointMatch OBJECT IDENTIFIER ::= + {id-kmr 0} + +id-kmr-masterShadowMatch OBJECT IDENTIFIER ::= {id-kmr 1} + +id-kmr-supplierConsumerMatch OBJECT IDENTIFIER ::= {id-kmr 2} + +id-kmr-supplierConsumersMatch OBJECT IDENTIFIER ::= {id-kmr 3} + +END -- DSAOperationalAttributeTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn b/lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn new file mode 100644 index 0000000000..ef1187ba8c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Default-Value-Lists.asn @@ -0,0 +1,143 @@ +-- Module Default-Value-Lists (T.415:03/1993)
+
+Default-Value-Lists {2 8 1 5 11} DEFINITIONS ::=
+BEGIN
+
+EXPORTS Default-Value-Lists-Logical, Default-Value-Lists-Layout;
+
+IMPORTS
+ Style-Identifier, Category-Name
+ FROM Identifiers-and-Expressions -- see 7.8
+
+ Measure-Pair, One-Of-Four-Angles, Medium-Type, Dimension-Pair, Transparency,
+ Colour, Border, Content-Background-Colour, Content-Foreground-Colour,
+ Sealed
+ FROM Layout-Descriptors -- see 7.9
+
+ Protection
+ FROM Logical-Descriptors -- see 7.10
+
+ Presentation-Attributes
+ FROM Style-Descriptors -- see 7.11
+
+ Colour-Expression, Colour-Table
+ FROM Colour-Attributes; -- see 7.14
+
+Default-Value-Lists-Layout ::= SET {
+ page-set-attributes [1] IMPLICIT Page-Set-Attributes OPTIONAL,
+ page-attributes [2] IMPLICIT Page-Attributes OPTIONAL,
+ frame-attributes [3] IMPLICIT Frame-Attributes OPTIONAL,
+ block-attributes [4] IMPLICIT Block-Attributes OPTIONAL
+}
+
+Default-Value-Lists-Logical ::= SET {
+ composite-logical-attributes
+ [5] IMPLICIT Composite-Logical-Attributes OPTIONAL,
+ basic-logical-attributes [6] IMPLICIT Basic-Logical-Attributes OPTIONAL
+}
+
+Page-Set-Attributes ::= SET {
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL
+}
+
+Page-Attributes ::= SET {
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ page-position page-position < Attribute OPTIONAL,
+ medium-type medium-type < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Frame-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ layout-path layout-path < Attribute OPTIONAL,
+ permitted-categories permitted-categories < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colour colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Block-Attributes ::= SET {
+ position position < Attribute OPTIONAL,
+ dimensions dimensions < Attribute OPTIONAL,
+ transparency transparency < Attribute OPTIONAL,
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-stream-categories layout-stream-categories < Attribute OPTIONAL,
+ layout-stream-sub-categories
+ layout-stream-sub-categories < Attribute OPTIONAL,
+ colou colour < Attribute OPTIONAL,
+ colour-of-layout-object colour-of-layout-object < Attribute OPTIONAL,
+ object-colour-table object-colour-table < Attribute OPTIONAL,
+ content-background-colour content-background-colour < Attribute OPTIONAL,
+ content-foreground-colour content-foreground-colour < Attribute OPTIONAL,
+ content-colour-table content-colour-table < Attribute OPTIONAL,
+ border border < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Composite-Logical-Attributes ::= SET {
+ protection protection < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Basic-Logical-Attributes ::= SET {
+ presentation-attributes presentation-attributes < Attribute OPTIONAL,
+ -- only for use for the attribute content-architecture-class;
+ -- the content architecture specific attributes can only be referenced by
+ -- use of presentation style
+ protection protection < Attribute OPTIONAL,
+ presentation-style presentation-style < Attribute OPTIONAL,
+ layout-style layout-style < Attribute OPTIONAL,
+ sealed sealed < Attribute OPTIONAL
+}
+
+Attribute ::= CHOICE {
+ position [0] IMPLICIT Measure-Pair,
+ dimensions [1] IMPLICIT Dimension-Pair,
+ transparency [2] IMPLICIT Transparency,
+ presentation-attributes [3] IMPLICIT Presentation-Attributes,
+ layout-path [4] IMPLICIT One-Of-Four-Angles,
+ page-position [5] IMPLICIT Measure-Pair,
+ medium-type [6] IMPLICIT Medium-Type,
+ permitted-categories [7] IMPLICIT SET OF Category-Name,
+ layout-stream-categories [19] IMPLICIT SET OF Category-Name,
+ layout-stream-sub-categories [20] IMPLICIT SET OF Category-Name,
+ protection [8] IMPLICIT Protection,
+ presentation-style [9] IMPLICIT Style-Identifier,
+ layout-style [10] IMPLICIT Style-Identifier,
+ colour [11] IMPLICIT Colour,
+ colour-of-layout-object [14] Colour-Expression,
+ object-colour-table [15] IMPLICIT Colour-Table,
+ content-background-colour [16] Content-Background-Colour,
+ content-foreground-colour [17] Content-Foreground-Colour,
+ content-colour-table [18] IMPLICIT Colour-Table,
+ border [12] IMPLICIT Border,
+ sealed [13] IMPLICIT Sealed
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn new file mode 100644 index 0000000000..5a5d310729 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAbstractService.asn @@ -0,0 +1,710 @@ +-- Module DirectoryAbstractService (X.511:08/1997) +DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) + directoryAbstractService(2) 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 + informationFramework, distributedOperations, authenticationFramework, + dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity, + id-at + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + AttributeTypeAndValue + FROM BasicAccessControl basicAccessControl + AgreementID + FROM DirectoryShadowAbstractService directoryShadowAbstractService + Attribute, AttributeType, AttributeValue, AttributeValueAssertion, + DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes, + ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion, + OBJECT-CLASS, RelaxationPolicy + FROM InformationFramework informationFramework + OperationProgress, ReferenceType, Exclusions, AccessPoint, + ContinuationReference + FROM DistributedOperations distributedOperations + CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier, + AttributeCertificationPath + FROM AuthenticationFramework authenticationFramework + OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{} + FROM EnhancedSecurity enhancedSecurity + id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list, + id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry, + id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned, + id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError, + id-errcode-referral, id-errcode-securityError, id-errcode-serviceError, + id-errcode-updateError + FROM DirectoryAccessProtocol dap + OPERATION, ERROR, Code + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + emptyUnbind + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)} + InvokeId + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + --PROTECTED + -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) } + SPKM-REQ, SPKM-REP-TI, SPKM-ERROR + FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) spkm(1) spkmGssTokens(10)}; + +-- Common data types +-- Parameterized type for representing optional signing +OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type, + signed SIGNED{Type} +} + +CommonArguments ::= SET { + serviceControls [30] ServiceControls DEFAULT {}, + securityParameters [29] SecurityParameters OPTIONAL, + requestor [28] DistinguishedName OPTIONAL, + operationProgress + [27] OperationProgress DEFAULT {nameResolutionPhase notStarted}, + aliasedRDNs [26] INTEGER OPTIONAL, + criticalExtensions [25] BIT STRING OPTIONAL, + referenceType [24] ReferenceType OPTIONAL, + entryOnly [23] BOOLEAN DEFAULT TRUE, + nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE, + operationContexts [20] ContextSelection OPTIONAL, + familyGrouping [19] FamilyGrouping DEFAULT entryOnly +} + +FamilyGrouping ::= ENUMERATED { + entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)} + +CommonResults ::= SET { + securityParameters [30] SecurityParameters OPTIONAL, + performer [29] DistinguishedName OPTIONAL, + aliasDereferenced [28] BOOLEAN DEFAULT FALSE, + notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL +} + +CommonResultsSeq ::= SEQUENCE { + securityParameters [30] SecurityParameters OPTIONAL, + performer [29] DistinguishedName OPTIONAL, + aliasDereferenced [28] BOOLEAN DEFAULT FALSE +} + +ServiceControls ::= SET { + options [0] ServiceControlOptions DEFAULT {}, + priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium, + timeLimit [2] INTEGER OPTIONAL, + sizeLimit [3] INTEGER OPTIONAL, + scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL, + attributeSizeLimit [5] INTEGER OPTIONAL, + manageDSAITPlaneRef + [6] SEQUENCE {dsaName Name, + agreementID AgreementID} OPTIONAL, + serviceType [7] OBJECT IDENTIFIER OPTIONAL, + userClass [8] INTEGER OPTIONAL +} + +ServiceControlOptions ::= BIT STRING { + preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3), + dontDereferenceAliases(4), subentries(5), copyShallDo(6), + partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9), + noSubtypeSelection(10), countFamily(11)} + +EntryInformationSelection ::= SET { + attributes + CHOICE {allUserAttributes [0] NULL, + select [1] SET OF AttributeType + -- empty set implies no attributes are requested + } DEFAULT allUserAttributes:NULL, + infoTypes + [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)} + DEFAULT attributeTypesAndValues, + extraAttributes + CHOICE {allOperationalAttributes [3] NULL, + select [4] SET OF AttributeType} OPTIONAL, + contextSelection ContextSelection OPTIONAL, + returnContexts BOOLEAN DEFAULT FALSE, + familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly} +} + +ContextSelection ::= CHOICE { + allContexts NULL, + selectedContexts SET OF TypeAndContextAssertion +} + +TypeAndContextAssertion ::= SEQUENCE { + type AttributeType, + contextAssertions + CHOICE {preference SEQUENCE OF ContextAssertion, + all SET OF ContextAssertion} +} + +FamilyReturn ::= SEQUENCE { + memberSelect + ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2), + compoundEntry(3)}, + familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL +} + +family-information ATTRIBUTE ::= { + WITH SYNTAX FamilyEntries + USAGE directoryOperation + ID id-at-family-information +} + +FamilyEntries ::= SEQUENCE { + family-class OBJECT-CLASS.&id, -- structural object class value + familyEntries SEQUENCE OF FamilyEntry +} + +FamilyEntry ::= SEQUENCE { + rdn RelativeDistinguishedName, + information + SEQUENCE OF CHOICE {attributeType AttributeType, + attribute Attribute}, + family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL +} + +EntryInformation ::= SEQUENCE { + name Name, + fromEntry BOOLEAN DEFAULT TRUE, + information + SET SIZE (1..MAX) OF + CHOICE {attributeType AttributeType, + attribute Attribute} OPTIONAL, + incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems + partialNameResolution + [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems -- +} + +Filter ::= CHOICE { + item [0] FilterItem, + and [1] SET OF Filter, + or [2] SET OF Filter, + not [3] Filter +} + +FilterItem ::= CHOICE { + equality [0] AttributeValueAssertion, + substrings + [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}), + strings + SEQUENCE OF + CHOICE {initial + [0] ATTRIBUTE.&Type + ({SupportedAttributes} + {@substrings.type}), + any + [1] ATTRIBUTE.&Type + ({SupportedAttributes} + {@substrings.type}), + final + [2] ATTRIBUTE.&Type + ({SupportedAttributes} + {@substrings.type}), + control Attribute -- Used to specify interpretation of following items + }}, + greaterOrEqual [2] AttributeValueAssertion, + lessOrEqual [3] AttributeValueAssertion, + present [4] AttributeType, + approximateMatch [5] AttributeValueAssertion, + extensibleMatch [6] MatchingRuleAssertion, + contextPresent [7] AttributeTypeAssertion +} + +MatchingRuleAssertion ::= SEQUENCE { + matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id, + type [2] AttributeType OPTIONAL, + matchValue + [3] MATCHING-RULE.&AssertionType + (CONSTRAINED BY { + -- matchValue must be a value of type specified by the &AssertionType field of + -- one of the MATCHING-RULE information objects identified by matchingRule -- }), + dnAttributes [4] BOOLEAN DEFAULT FALSE +} + +PagedResultsRequest ::= CHOICE { + newRequest + SEQUENCE {pageSize INTEGER, + sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL, + reverse [1] BOOLEAN DEFAULT FALSE, + unmerged [2] BOOLEAN DEFAULT FALSE}, + queryReference OCTET STRING +} + +SortKey ::= SEQUENCE { + type AttributeType, + orderingRule MATCHING-RULE.&id OPTIONAL +} + +SecurityParameters ::= SET { + certification-path [0] CertificationPath OPTIONAL, + name [1] DistinguishedName OPTIONAL, + time [2] Time OPTIONAL, + random [3] BIT STRING OPTIONAL, + target [4] ProtectionRequest OPTIONAL, + response [5] BIT STRING OPTIONAL, + operationCode [6] Code OPTIONAL, + attributeCertificationPath [7] AttributeCertificationPath OPTIONAL, + errorProtection [8] ErrorProtectionRequest OPTIONAL, + errorCode [9] Code OPTIONAL +} + +ProtectionRequest ::= INTEGER { + none(0), signed(1), encrypted(2), signed-encrypted(3)} + +Time ::= CHOICE {utcTime UTCTime, + generalizedTime GeneralizedTime +} + +ErrorProtectionRequest ::= INTEGER { + none(0), signed(1), encrypted(2), signed-encrypted(3)} + +-- Bind and unbind operations +directoryBind OPERATION ::= { + ARGUMENT DirectoryBindArgument + RESULT DirectoryBindResult + ERRORS {directoryBindError} +} + +DirectoryBindArgument ::= SET { + credentials [0] Credentials OPTIONAL, + versions [1] Versions DEFAULT {v1} +} + +Credentials ::= CHOICE { + simple [0] SimpleCredentials, + strong [1] StrongCredentials, + externalProcedure [2] EXTERNAL, + spkm [3] SpkmCredentials +} + +SimpleCredentials ::= SEQUENCE { + name [0] DistinguishedName, + validity + [1] SET {time1 [0] CHOICE {utc UTCTime, + gt GeneralizedTime} OPTIONAL, + time2 [1] CHOICE {utc UTCTime, + gt GeneralizedTime} OPTIONAL, + random1 [2] BIT STRING OPTIONAL, + random2 [3] BIT STRING OPTIONAL}, + password + [2] CHOICE {unprotected OCTET STRING, + protected SIGNATURE{OCTET STRING}} OPTIONAL +} + +StrongCredentials ::= SET { + certification-path [0] CertificationPath OPTIONAL, + bind-token [1] Token, + name [2] DistinguishedName OPTIONAL, + attributeCertificationPath [3] AttributeCertificationPath OPTIONAL +} + +SpkmCredentials ::= CHOICE {req [0] SPKM-REQ, + rep [1] SPKM-REP-TI +} + +Token ::= + SIGNED + {SEQUENCE {algorithm [0] AlgorithmIdentifier, + name [1] DistinguishedName, + time [2] Time, + random [3] BIT STRING, + response [4] BIT STRING OPTIONAL, + bindIntAlgorithm + [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL, + bindIntKeyInfo [6] BindKeyInfo OPTIONAL, + bindConfAlgorithm + [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL, + bindConfKeyInfo [8] BindKeyInfo OPTIONAL}} + +Versions ::= BIT STRING {v1(0), v2(1)} + +DirectoryBindResult ::= DirectoryBindArgument + +directoryBindError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {versions [0] Versions DEFAULT {v1}, + error + CHOICE {serviceError [1] ServiceProblem, + securityError [2] SecurityProblem}}} +} + +BindKeyInfo ::= ENCRYPTED{BIT STRING} + +directoryUnbind OPERATION ::= emptyUnbind + +-- Operations, arguments, and results +read OPERATION ::= { + ARGUMENT ReadArgument + RESULT ReadResult + ERRORS + {attributeError | nameError | serviceError | referral | abandoned | + securityError} + CODE id-opcode-read +} + +ReadArgument ::= + OPTIONALLY-PROTECTED + {SET {object [0] Name, + selection [1] EntryInformationSelection DEFAULT {}, + modifyRightsRequest [2] BOOLEAN DEFAULT FALSE, + COMPONENTS OF CommonArguments}} + +ReadResult ::= + OPTIONALLY-PROTECTED + {SET {entry [0] EntryInformation, + modifyRights [1] ModifyRights OPTIONAL, + COMPONENTS OF CommonResults}} + +ModifyRights ::= + SET OF + SEQUENCE {item + CHOICE {entry [0] NULL, + attribute [1] AttributeType, + value [2] AttributeValueAssertion}, + permission + [3] BIT STRING {add(0), remove(1), rename(2), move(3)} + } + +compare OPERATION ::= { + ARGUMENT CompareArgument + RESULT CompareResult + ERRORS + {attributeError | nameError | serviceError | referral | abandoned | + securityError} + CODE id-opcode-compare +} + +CompareArgument ::= + OPTIONALLY-PROTECTED + {SET {object [0] Name, + purported [1] AttributeValueAssertion, + COMPONENTS OF CommonArguments}} + +CompareResult ::= + OPTIONALLY-PROTECTED + {SET {name Name OPTIONAL, + matched [0] BOOLEAN, + fromEntry [1] BOOLEAN DEFAULT TRUE, + matchedSubtype [2] AttributeType OPTIONAL, + COMPONENTS OF CommonResults}} + +abandon OPERATION ::= { + ARGUMENT AbandonArgument + RESULT AbandonResult + ERRORS {abandonFailed} + CODE id-opcode-abandon +} + +AbandonArgument ::= + OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}} + +AbandonResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId, + COMPONENTS OF CommonResultsSeq + }} +} + +list OPERATION ::= { + ARGUMENT ListArgument + RESULT ListResult + ERRORS {nameError | serviceError | referral | abandoned | securityError} + CODE id-opcode-list +} + +ListArgument ::= + OPTIONALLY-PROTECTED + {SET {object [0] Name, + pagedResults [1] PagedResultsRequest OPTIONAL, + listFamily [2] BOOLEAN DEFAULT FALSE, + COMPONENTS OF CommonArguments}} + +ListResult ::= + OPTIONALLY-PROTECTED + {CHOICE {listInfo + SET {name Name OPTIONAL, + subordinates + [1] SET OF + SEQUENCE {rdn RelativeDistinguishedName, + aliasEntry [0] BOOLEAN DEFAULT FALSE, + fromEntry [1] BOOLEAN DEFAULT TRUE + }, + partialOutcomeQualifier + [2] PartialOutcomeQualifier OPTIONAL, + COMPONENTS OF CommonResults}, + uncorrelatedListInfo [0] SET OF ListResult}} + +PartialOutcomeQualifier ::= SET { + limitProblem [0] LimitProblem OPTIONAL, + unexplored + [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL, + unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE, + unknownErrors + [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL, + queryReference [4] OCTET STRING OPTIONAL, + overspecFilter [5] Filter OPTIONAL, + notification + [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL, + entryCount + CHOICE {bestEstimate [7] INTEGER, + lowEstimate [8] INTEGER} OPTIONAL +} + +LimitProblem ::= INTEGER { + timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2) +} + +search OPERATION ::= { + ARGUMENT SearchArgument + RESULT SearchResult + ERRORS + {attributeError | nameError | serviceError | referral | abandoned | + securityError} + CODE id-opcode-search +} + +SearchArgument ::= + OPTIONALLY-PROTECTED + {SET {baseObject [0] Name, + subset + [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} + DEFAULT baseObject, + filter [2] Filter DEFAULT and:{}, + searchAliases [3] BOOLEAN DEFAULT TRUE, + selection [4] EntryInformationSelection DEFAULT {}, + pagedResults [5] PagedResultsRequest OPTIONAL, + matchedValuesOnly [6] BOOLEAN DEFAULT FALSE, + extendedFilter [7] Filter OPTIONAL, + checkOverspecified [8] BOOLEAN DEFAULT FALSE, + relaxation [9] RelaxationPolicy OPTIONAL, + extendedArea [10] INTEGER OPTIONAL, + hierarchySelections [11] HierarchySelections DEFAULT {self}, + searchControlOptions + [12] SearchControlOptions DEFAULT {searchAliases}, + COMPONENTS OF CommonArguments}} + +HierarchySelections ::= BIT STRING { + self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5), + siblings(6), siblingChildren(7), siblingSubtree(8), all(9)} + +SearchControlOptions ::= BIT STRING { + searchAliases(0), matchedValuesOnly(1), checkOverspecified(2), + performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6), + matchOnResidualName(7), entryCount(8), useSubset(9), + separateFamilyMembers(10), searchFamily(11)} + +SearchResult ::= + OPTIONALLY-PROTECTED + {CHOICE {searchInfo + SET {name Name OPTIONAL, + entries [0] SET OF EntryInformation, + partialOutcomeQualifier + [2] PartialOutcomeQualifier OPTIONAL, + altMatching [3] BOOLEAN DEFAULT FALSE, + COMPONENTS OF CommonResults}, + uncorrelatedSearchInfo [0] SET OF SearchResult}} + +addEntry OPERATION ::= { + ARGUMENT AddEntryArgument + RESULT AddEntryResult + ERRORS + {attributeError | nameError | serviceError | referral | securityError | + updateError} + CODE id-opcode-addEntry +} + +AddEntryArgument ::= + OPTIONALLY-PROTECTED + {SET {object [0] Name, + entry [1] SET OF Attribute, + targetSystem [2] AccessPoint OPTIONAL, + COMPONENTS OF CommonArguments}} + +AddEntryResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}} +} + +removeEntry OPERATION ::= { + ARGUMENT RemoveEntryArgument + RESULT RemoveEntryResult + ERRORS {nameError | serviceError | referral | securityError | updateError} + CODE id-opcode-removeEntry +} + +RemoveEntryArgument ::= + OPTIONALLY-PROTECTED{SET {object [0] Name, + COMPONENTS OF CommonArguments}} + +RemoveEntryResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}} +} + +modifyEntry OPERATION ::= { + ARGUMENT ModifyEntryArgument + RESULT ModifyEntryResult + ERRORS + {attributeError | nameError | serviceError | referral | securityError | + updateError} + CODE id-opcode-modifyEntry +} + +ModifyEntryArgument ::= + OPTIONALLY-PROTECTED + {SET {object [0] Name, + changes [1] SEQUENCE OF EntryModification, + selection [2] EntryInformationSelection OPTIONAL, + COMPONENTS OF CommonArguments}} + +ModifyEntryResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL, + COMPONENTS OF CommonResultsSeq + }} +} + +EntryModification ::= CHOICE { + addAttribute [0] Attribute, + removeAttribute [1] AttributeType, + addValues [2] Attribute, + removeValues [3] Attribute, + alterValues [4] AttributeTypeAndValue, + resetValue [5] AttributeType +} + +modifyDN OPERATION ::= { + ARGUMENT ModifyDNArgument + RESULT ModifyDNResult + ERRORS {nameError | serviceError | referral | securityError | updateError} + CODE id-opcode-modifyDN +} + +ModifyDNArgument ::= + OPTIONALLY-PROTECTED + {SET {object [0] DistinguishedName, + newRDN [1] RelativeDistinguishedName, + deleteOldRDN [2] BOOLEAN DEFAULT FALSE, + newSuperior [3] DistinguishedName OPTIONAL, + COMPONENTS OF CommonArguments}} + +ModifyDNResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName, + COMPONENTS OF CommonResultsSeq + }} +} + +-- Errors and parameters +abandoned ERROR ::= { -- not literally an "error" + PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}} + CODE id-errcode-abandoned +} + +abandonFailed ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {problem [0] AbandonProblem, + operation [1] InvokeId, + COMPONENTS OF CommonResults}} + CODE id-errcode-abandonFailed +} + +AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)} + +attributeError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {object [0] Name, + problems + [1] SET OF + SEQUENCE {problem [0] AttributeProblem, + type [1] AttributeType, + value [2] AttributeValue OPTIONAL}, + COMPONENTS OF CommonResults}} + CODE id-errcode-attributeError +} + +AttributeProblem ::= INTEGER { + noSuchAttributeOrValue(1), invalidAttributeSyntax(2), + undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5), + attributeOrValueAlreadyExists(6), contextViolation(7)} + +nameError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {problem [0] NameProblem, + matched [1] Name, + COMPONENTS OF CommonResults}} + CODE id-errcode-nameError +} + +NameProblem ::= INTEGER { + noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3), + aliasDereferencingProblem(4), contextProblem(5)} + +referral ERROR ::= { -- not literally an "error" + PARAMETER OPTIONALLY-PROTECTED + {SET {candidate [0] ContinuationReference, + COMPONENTS OF CommonResults}} + CODE id-errcode-referral +} + +securityError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {problem [0] SecurityProblem, + spkmInfo [1] SPKM-ERROR, + COMPONENTS OF CommonResults}} + CODE id-errcode-securityError +} + +SecurityProblem ::= INTEGER { + inappropriateAuthentication(1), invalidCredentials(2), + insufficientAccessRights(3), invalidSignature(4), protectionRequired(5), + noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9) +} + +serviceError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {problem [0] ServiceProblem, + COMPONENTS OF CommonResults}} + CODE id-errcode-serviceError +} + +ServiceProblem ::= INTEGER { + busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4), + unableToProceed(5), invalidReference(6), timeLimitExceeded(7), + administrativeLimitExceeded(8), loopDetected(9), + unavailableCriticalExtension(10), outOfScope(11), ditError(12), + invalidQueryReference(13), requestedServiceNotAvailable(14), + relaxationNotSupported(15), unavailableRelaxationLevel(16), + unsupportedMatchingUse(17), unmatchedKeyAttributes(18), + ambiguousKeyAttributes(19)} + +updateError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {problem [0] UpdateProblem, + attributeInfo + [1] SET SIZE (1..MAX) OF + CHOICE {attributeType AttributeType, + attribute Attribute} OPTIONAL, + COMPONENTS OF CommonResults}} + CODE id-errcode-updateError +} + +UpdateProblem ::= INTEGER { + namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3), + notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6), + objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9), + hierarchyRuleViolation(10), familyRuleViolation(11)} + +id-at-family-information OBJECT IDENTIFIER ::= {id-at 64} + +END -- DirectoryAbstractService + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn new file mode 100644 index 0000000000..10d6979f6d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryAccessProtocol.asn @@ -0,0 +1,162 @@ +-- Module DirectoryAccessProtocol (X.519 TC2:08/1997) + +DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 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 + directoryAbstractService, protocolObjectIdentifiers + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE, + Code, OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + ROS{}, Bind{}, Unbind{}, InvokeId + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + APPLICATION-CONTEXT + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + acse, pData + FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} + acse-abstract-syntax + FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t + remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)} + id-ac-directoryAccessAC, id-rosObject-dua, id-rosObject-directory, + id-rosObject-dapDSA, id-contract-dap, id-package-dapConnection, + id-package-read, id-package-search, id-package-modify, + id-as-directoryAccessAS + FROM ProtocolObjectIdentifiers protocolObjectIdentifiers + directoryBind, directoryUnbind, read, compare, abandon, list, search, + addEntry, removeEntry, modifyEntry, modifyDN + FROM DirectoryAbstractService directoryAbstractService; + +-- application contexts +directoryAccessAC APPLICATION-CONTEXT ::= { + CONTRACT dapContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | directoryAccessAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-directoryAccessAC +} + +-- ROS objects +dua ROS-OBJECT-CLASS ::= {INITIATES {dapContract} + ID id-rosObject-dua +} + +directory ROS-OBJECT-CLASS ::= { + RESPONDS {dapContract} + ID id-rosObject-directory +} + +dap-dsa ROS-OBJECT-CLASS ::= { + RESPONDS {dapContract} + ID id-rosObject-dapDSA +} + +-- contracts +dapContract CONTRACT ::= { + CONNECTION dapConnectionPackage + INITIATOR CONSUMER OF {readPackage | searchPackage | modifyPackage} + ID id-contract-dap +} + +-- connection package +dapConnectionPackage CONNECTION-PACKAGE ::= { + BIND directoryBind + UNBIND directoryUnbind + ID id-package-dapConnection +} + +-- read package +readPackage OPERATION-PACKAGE ::= { + CONSUMER INVOKES {read | compare | abandon} + ID id-package-read +} + +-- search package +searchPackage OPERATION-PACKAGE ::= { + CONSUMER INVOKES {list | search} + ID id-package-search +} + +-- modify Package +modifyPackage OPERATION-PACKAGE ::= { + CONSUMER INVOKES {addEntry | removeEntry | modifyEntry | modifyDN} + ID id-package-modify +} + +-- abstract syntaxes +directoryAccessAbstractSyntax ABSTRACT-SYNTAX ::= { + DAP-PDUs + IDENTIFIED BY id-as-directoryAccessAS +} + +DAP-PDUs ::= CHOICE { + basicRos ROS{{DAP-InvokeIDSet}, {DAP-Invokable}, {DAP-Returnable}}, + bind Bind{directoryBind}, + unbind Unbind{directoryUnbind} +} + +DAP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL) + +DAP-Invokable OPERATION ::= + {read | compare | abandon | list | search | addEntry | removeEntry | + modifyEntry | modifyDN} + +DAP-Returnable OPERATION ::= + {read | compare | abandon | list | search | addEntry | removeEntry | + modifyEntry | modifyDN} + +-- remote operation codes +id-opcode-read Code ::= local:1 + +id-opcode-compare Code ::= local:2 + +id-opcode-abandon Code ::= local:3 + +id-opcode-list Code ::= local:4 + +id-opcode-search Code ::= local:5 + +id-opcode-addEntry Code ::= local:6 + +id-opcode-removeEntry Code ::= local:7 + +id-opcode-modifyEntry Code ::= local:8 + +id-opcode-modifyDN Code ::= local:9 + +-- remote error codes +id-errcode-attributeError Code ::= local:1 + +id-errcode-nameError Code ::= local:2 + +id-errcode-serviceError Code ::= local:3 + +id-errcode-referral Code ::= local:4 + +id-errcode-abandoned Code ::= local:5 + +id-errcode-securityError Code ::= local:6 + +id-errcode-abandonFailed Code ::= local:7 + +id-errcode-updateError Code ::= local:8 + +-- remote error code for DSP +id-errcode-dsaReferral Code ::= local:9 + +END -- DirectoryAccessProtocol + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn new file mode 100644 index 0000000000..91c0a865f7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryInformationShadowProtocol.asn @@ -0,0 +1,246 @@ +-- Module DirectoryInformationShadowProtocol (X.519 TC2:08/1997) + +DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1) disp(16) 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 + directoryShadowAbstractService, protocolObjectIdentifiers + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE, + Code, OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + ROS{}, Bind{}, Unbind{}, InvokeId + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + APPLICATION-CONTEXT + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + acse, pData, association-by-RTSE, transfer-by-RTSE + FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} + acse-abstract-syntax + FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t + remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)} + id-ac-shadowSupplierInitiatedAC, id-ac-shadowSupplierInitiatedAsynchronousAC, + id-ac-shadowConsumerInitiatedAC, + id-ac-shadowConsumerInitiatedAsynchronousAC, + id-ac-reliableShadowSupplierInitiatedAC, + id-ac-reliableShadowConsumerInitiatedAC, + id-rosObject-initiatingConsumerDSA, id-rosObject-respondingSupplierDSA, + id-rosObject-initiatingSupplierDSA, id-rosObject-respondingConsumerDSA, + id-contract-shadowConsumer, id-contract-shadowSupplier, + id-package-dispConnection, id-package-shadowConsumer, + id-package-shadowSupplier, id-as-directoryShadowAS, + id-as-directoryReliableShadowAS, id-as-reliableShadowBindingAS + FROM ProtocolObjectIdentifiers protocolObjectIdentifiers + dSAShadowBind, dSAShadowUnbind, requestShadowUpdate, updateShadow, + coordinateShadowUpdate + FROM DirectoryShadowAbstractService directoryShadowAbstractService + RTORQapdu, RTOACapdu, RTORJapdu + FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}; + +RTSE-apdus ::= CHOICE { + rtorq-apdu [16] IMPLICIT RTORQapdu, + rtoac-apdu [17] IMPLICIT RTOACapdu, + rtorj-apdu [18] IMPLICIT RTORJapdu, + rttp-apdu RTTPapdu, + rttr-apdu RTTRapdu, + rtab-apdu [22] IMPLICIT RTABapdu +} + +RTTPapdu ::= -- priority-- INTEGER + +RTTRapdu ::= OCTET STRING + +RTABapdu ::= SET { + abortReason [0] IMPLICIT AbortReason OPTIONAL, + reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL, + -- 8 bits maximum, only if abortReason is invalidParameter + userdataAB + [2] TYPE-IDENTIFIER.&Type + OPTIONAL -- only in normal mode and if abortReason-- + -- is userError +} + +AbortReason ::= INTEGER { + localSystemProblem(0), + invalidParameter(1), -- reflectedParameter supplied + unrecognizedActivity(2), + temporaryProblem(3), + -- the RTSE cannot accept a session for a period of time + protocolError(4), -- RTSE level protocol error + permanentProblem(5), --provider-abort solely in normal mode + userError(6), -- user-abort solely in normal mode + transferCompleted(7) -- activity can't be discarded--} + +-- application contexts +shadowSupplierInitiatedAC APPLICATION-CONTEXT ::= { + CONTRACT shadowSupplierContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | directoryShadowAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAC +} + +shadowSupplierInitiatedAsynchronousAC APPLICATION-CONTEXT ::= { + CONTRACT shadowSupplierContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | directoryShadowAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-shadowSupplierInitiatedAsynchronousAC +} + +shadowConsumerInitiatedAC APPLICATION-CONTEXT ::= { + CONTRACT shadowConsumerContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | directoryShadowAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAC +} + +shadowConsumerInitiatedAsynchronousAC APPLICATION-CONTEXT ::= { + CONTRACT shadowConsumerContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | directoryShadowAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-shadowConsumerInitiatedAsynchronousAC +} + +reliableShadowSupplierInitiatedAC APPLICATION-CONTEXT ::= { + CONTRACT shadowSupplierContract + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | reliableShadowBindingAbstractSyntax | + directoryReliableShadowAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-reliableShadowSupplierInitiatedAC +} + +reliableShadowConsumerInitiatedAC APPLICATION-CONTEXT ::= { + CONTRACT shadowConsumerContract + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | reliableShadowBindingAbstractSyntax | + directoryReliableShadowAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-reliableShadowConsumerInitiatedAC +} + +-- ROS objects +initiating-consumer-dsa ROS-OBJECT-CLASS ::= { + INITIATES {shadowConsumerContract} + ID id-rosObject-initiatingConsumerDSA +} + +responding-supplier-dsa ROS-OBJECT-CLASS ::= { + RESPONDS {shadowConsumerContract} + ID id-rosObject-respondingSupplierDSA +} + +initiating-supplier-dsa ROS-OBJECT-CLASS ::= { + INITIATES {shadowSupplierContract} + ID id-rosObject-initiatingSupplierDSA +} + +responding-consumer-dsa ROS-OBJECT-CLASS ::= { + RESPONDS {shadowSupplierContract} + ID id-rosObject-respondingConsumerDSA +} + +-- contracts +shadowConsumerContract CONTRACT ::= { + CONNECTION dispConnectionPackage + INITIATOR CONSUMER OF {shadowConsumerPackage} + ID id-contract-shadowConsumer +} + +shadowSupplierContract CONTRACT ::= { + CONNECTION dispConnectionPackage + RESPONDER CONSUMER OF {shadowSupplierPackage} + ID id-contract-shadowSupplier +} + +-- connection package +dispConnectionPackage CONNECTION-PACKAGE ::= { + BIND dSAShadowBind + UNBIND dSAShadowUnbind + ID id-package-dispConnection +} + +-- packages +shadowConsumerPackage OPERATION-PACKAGE ::= { + CONSUMER INVOKES {requestShadowUpdate} + SUPPLIER INVOKES {updateShadow} + ID id-package-shadowConsumer +} + +shadowSupplierPackage OPERATION-PACKAGE ::= { + SUPPLIER INVOKES {coordinateShadowUpdate | updateShadow} + ID id-package-shadowSupplier +} + +-- abstract syntaxes +directoryShadowAbstractSyntax ABSTRACT-SYNTAX ::= { + DISP-PDUs + IDENTIFIED BY id-as-directoryShadowAS +} + +directoryReliableShadowAbstractSyntax ABSTRACT-SYNTAX ::= { + Reliable-DISP-PDUs + IDENTIFIED BY id-as-directoryReliableShadowAS +} + +reliableShadowBindingAbstractSyntax ABSTRACT-SYNTAX ::= { + ReliableShadowBinding-PDUs + IDENTIFIED BY id-as-reliableShadowBindingAS +} + +DISP-PDUs ::= CHOICE { + basicROS ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}}, + bind Bind{dSAShadowBind}, + unbind Unbind{dSAShadowUnbind} +} + +Reliable-DISP-PDUs ::= + ROS{{DISP-InvokeIDSet}, {DISP-Invokable}, {DISP-Returnable}} + +ReliableShadowBinding-PDUs ::= CHOICE { + rTS [0] RTSE-apdus, + bind Bind{dSAShadowBind}, + unbind Unbind{dSAShadowUnbind} +} + +DISP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL) + +DISP-Invokable OPERATION ::= + {requestShadowUpdate | updateShadow | coordinateShadowUpdate} + +DISP-Returnable OPERATION ::= + {requestShadowUpdate | updateShadow | coordinateShadowUpdate} + +-- remote operation codes +id-opcode-requestShadowUpdate Code ::= local:1 + +id-opcode-updateShadow Code ::= local:2 + +id-opcode-coordinateShadowUpdate Code ::= local:3 + +-- remote error codes +id-errcode-shadowError Code ::= local:1 + +END -- DirectoryInformationShadowProtocol + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn new file mode 100644 index 0000000000..e3e1f95621 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingManagementProtocol.asn @@ -0,0 +1,117 @@ +-- Module DirectoryOperationalBindingManagementProtocol (X.519 TC2:08/1997) + +DirectoryOperationalBindingManagementProtocol {joint-iso-itu-t ds(5) + module(1) dop(17) 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 + protocolObjectIdentifiers, directoryAbstractService, opBindingManagement + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + directoryBind, directoryUnbind + FROM DirectoryAbstractService directoryAbstractService + ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE, + Code, OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + ROS{}, Bind{}, Unbind{}, InvokeId + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + APPLICATION-CONTEXT + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + acse, pData + FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} + acse-abstract-syntax + FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t + remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)} + id-ac-directoryOperationalBindingManagementAC, id-rosObject-dopDSA, + id-contract-dop, id-package-dopConnection, + id-package-operationalBindingManagement, + id-as-directoryOperationalBindingManagementAS + FROM ProtocolObjectIdentifiers protocolObjectIdentifiers + establishOperationalBinding, modifyOperationalBinding, + terminateOperationalBinding, dSAOperationalBindingManagementBind, + dSAOperationalBindingManagementUnbind + FROM OperationalBindingManagement opBindingManagement; + +-- application contexts +directoryOperationalBindingManagementAC APPLICATION-CONTEXT ::= { + CONTRACT dopContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | + directoryOperationalBindingManagementAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-directoryOperationalBindingManagementAC +} + +-- ROS objects +dop-dsa ROS-OBJECT-CLASS ::= {BOTH {dopContract} + ID id-rosObject-dopDSA +} + +-- contracts +dopContract CONTRACT ::= { + CONNECTION dopConnectionPackage + OPERATIONS OF {dopPackage} + ID id-contract-dop +} + +-- connection package +dopConnectionPackage CONNECTION-PACKAGE ::= { + BIND dSAOperationalBindingManagementBind + UNBIND dSAOperationalBindingManagementUnbind + ID id-package-dopConnection +} + +-- packages +dopPackage OPERATION-PACKAGE ::= { + CONSUMER INVOKES + {establishOperationalBinding | modifyOperationalBinding | + terminateOperationalBinding} + ID id-package-operationalBindingManagement +} + +-- abstract syntaxes +directoryOperationalBindingManagementAbstractSyntax ABSTRACT-SYNTAX ::= +{DOP-PDUs + IDENTIFIED BY id-as-directoryOperationalBindingManagementAS +} + +DOP-PDUs ::= CHOICE { + basicRos ROS{{DOP-InvokeIDSet}, {DOP-Invokable}, {DOP-Returnable}}, + bind Bind{directoryBind}, + unbind Unbind{directoryUnbind} +} + +DOP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL) + +DOP-Invokable OPERATION ::= + {establishOperationalBinding | modifyOperationalBinding | + terminateOperationalBinding} + +DOP-Returnable OPERATION ::= + {establishOperationalBinding | modifyOperationalBinding | + terminateOperationalBinding} + +-- remote operation codes +id-op-establishOperationalBinding Code ::= local:100 + +id-op-modifyOperationalBinding Code ::= local:102 + +id-op-terminateOperationalBinding Code ::= local:101 + +-- remote error codes +id-err-operationalBindingError Code ::= local:100 + +END -- DirectoryOperationalBindingManagementProtocol + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn new file mode 100644 index 0000000000..9df5d2783a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryOperationalBindingTypes.asn @@ -0,0 +1,26 @@ +-- Module DirectoryOperationalBindingTypes (X.519 TC2:08/1997) + +DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1) + directoryOperationalBindingTypes(25) 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-ob + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3}; + +id-op-binding-shadow OBJECT IDENTIFIER ::= {id-ob 1} + +id-op-binding-hierarchical OBJECT IDENTIFIER ::= {id-ob 2} + +id-op-binding-non-specific-hierarchical OBJECT IDENTIFIER ::= {id-ob 3} + +END -- DirectoryOperationalBindingTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn new file mode 100644 index 0000000000..37c6cac261 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryProtectionMappings.asn @@ -0,0 +1,70 @@ +-- Module DirectoryProtectionMappings (X.830:04/1995) + +DirectoryProtectionMappings {joint-iso-itu-t genericULS(20) modules(1) + dirProtectionMappings(4)} DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +-- These protection mappings generate bit-compatible encodings +-- to the parameterized types in the Directory Authentication +-- Framework +-- EXPORTS All +IMPORTS + notation, gulsSecurityTransformations + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + PROTECTION-MAPPING + FROM Notation notation + dirEncryptedTransformation, dirSignedTransformation, + dirSignatureTransformation + FROM GulsSecurityTransformations gulsSecurityTransformations; + +-- ************************************** +-- Directory encrypted Protection Mapping +-- ************************************** +-- This protection mapping enables the notation +-- PROTECTED {BaseType, encrypted} +-- to replace the notation +-- ENCRYPTED {BaseType} +-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to +-- generate an identical bit-encoding. +-- Security Service: confidentiality +encrypted PROTECTION-MAPPING ::= { + SECURITY-TRANSFORMATION {dirEncryptedTransformation} +} + +-- *********************************** +-- Directory signed Protection Mapping +-- *********************************** +-- This protection mapping enables the notation +-- PROTECTED {BaseType, signed} +-- to replace the notation +-- SIGNED {BaseType} +-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8:1994, and to +-- generate an identical bit-encoding. +-- Security Service: data origin authentication, data integrity and +-- (in certain situations) non-repudiation. +signed PROTECTION-MAPPING ::= { + SECURITY-TRANSFORMATION {dirSignedTransformation} +} + +-- ************************************** +-- Directory signature Protection Mapping +-- ************************************** +-- This protection mapping enables the notation +-- PROTECTED {BaseType, signature} +-- to provide a functionally-equivalent replacement of the notation +-- SIGNATURE BaseType +-- as provided by ITU-T Rec. X.509 | ISO/IEC 9594-8. +-- Security Service: data origin authentication, data integrity and +-- (in certain situations) non-repudiation. +signature PROTECTION-MAPPING ::= { + SECURITY-TRANSFORMATION {dirSignatureTransformation} +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + +-- content of stack: +-- diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn new file mode 100644 index 0000000000..acbb692b6f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectoryShadowAbstractService.asn @@ -0,0 +1,324 @@ +-- Module DirectoryShadowAbstractService (X.525:08/1997) +DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1) + directoryShadowAbstractService(15) 4} DEFINITIONS IMPLICIT TAGS ::= +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 + -- from ITU-T Rec. X.501 | ISO/IEC 9594-2 + directoryAbstractService, directoryOperationalBindingTypes, + informationFramework, disp, distributedOperations, + dsaOperationalAttributeTypes, enhancedSecurity, opBindingManagement + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + Attribute, AttributeType, CONTEXT, DistinguishedName, + RelativeDistinguishedName, SubtreeSpecification + FROM InformationFramework {joint-iso-itu-t ds(5) module(1) + informationFramework(1) 3} + OPERATIONAL-BINDING, OperationalBindingID + FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1) + opBindingManagement(18) 3} + DSEType, SupplierAndConsumers + FROM DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1) + dsaOperationalAttributeTypes(22) 3} + OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{} + FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) + 1} + -- from ITU-T Rec. X.511 | ISO/IEC 9594-3 + CommonResultsSeq, ContextSelection, directoryBind, directoryUnbind, + EntryModification, SecurityParameters + FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) + directoryAbstractService(2) 3} + -- from ITU-T Rec. X.518 | ISO/IEC 9594-4 + AccessPoint + FROM DistributedOperations {joint-iso-itu-t ds(5) module(1) + distributedOperations(3) 3} + -- from ITU-T Rec. X.519 | ISO/IEC 9594-5 + id-op-binding-shadow + FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1) + directoryOperationalBindingTypes(25) 3} + id-errcode-shadowError, id-opcode-coordinateShadowUpdate, + id-opcode-requestShadowUpdate, id-opcode-updateShadow, + reliableShadowSupplierInitiatedAC, reliableShadowConsumerInitiatedAC, + shadowConsumerInitiatedAC, shadowSupplierInitiatedAC + FROM DirectoryInformationShadowProtocol {joint-iso-itu-t ds(5) module(1) + disp(16) 3} + -- from ITU-T Rec. X.880 | ISO/IEC 13712-1 + ERROR, OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)}; + +-- bind and unbind operations +dSAShadowBind OPERATION ::= directoryBind + +dSAShadowUnbind OPERATION ::= directoryUnbind + +-- shadow operational binding +shadowOperationalBinding OPERATIONAL-BINDING ::= { + AGREEMENT ShadowingAgreementInfo + APPLICATION CONTEXTS + {{shadowSupplierInitiatedAC + APPLIES TO {All-operations-supplier-initiated}} | + {shadowConsumerInitiatedAC + APPLIES TO {All-operations-consumer-initiated}} | + {reliableShadowSupplierInitiatedAC + APPLIES TO {All-operations-supplier-initiated}} | + {reliableShadowConsumerInitiatedAC + APPLIES TO {All-operations-consumer-initiated}}} + ASYMMETRIC ROLE-A + { -- shadow supplier roleESTABLISHMENT-INITIATOR TRUE + ESTABLISHMENT-PARAMETER NULL + MODIFICATION-INITIATOR TRUE + TERMINATION-INITIATOR TRUE} + ROLE-B + { -- shadow consumer roleESTABLISHMENT-INITIATOR TRUE + ESTABLISHMENT-PARAMETER NULL + MODIFICATION-INITIATOR TRUE + MODIFICATION-PARAMETER ModificationParameter + TERMINATION-INITIATOR TRUE} + ID id-op-binding-shadow +} + +-- types +ModificationParameter ::= SEQUENCE { + secondaryShadows SET OF SupplierAndConsumers +} + +AgreementID ::= OperationalBindingID + +ShadowingAgreementInfo ::= SEQUENCE { + shadowSubject UnitOfReplication, + updateMode UpdateMode DEFAULT supplierInitiated:onChange:TRUE, + master AccessPoint OPTIONAL, + secondaryShadows [2] BOOLEAN DEFAULT FALSE +} + +UnitOfReplication ::= SEQUENCE { + area AreaSpecification, + attributes AttributeSelection, + knowledge Knowledge OPTIONAL, + subordinates BOOLEAN DEFAULT FALSE, + contextSelection ContextSelection OPTIONAL, + supplyContexts + [0] CHOICE {allContexts NULL, + selectedContexts SET SIZE (1..MAX) OF CONTEXT.&id} OPTIONAL +} + +AreaSpecification ::= SEQUENCE { + contextPrefix DistinguishedName, + replicationArea SubtreeSpecification +} + +Knowledge ::= SEQUENCE { + knowledgeType ENUMERATED {master(0), shadow(1), both(2)}, + extendedKnowledge BOOLEAN DEFAULT FALSE +} + +AttributeSelection ::= SET OF ClassAttributeSelection + +ClassAttributeSelection ::= SEQUENCE { + class OBJECT IDENTIFIER OPTIONAL, + classAttributes ClassAttributes DEFAULT allAttributes:NULL +} + +ClassAttributes ::= CHOICE { + allAttributes NULL, + include [0] AttributeTypes, + exclude [1] AttributeTypes +} + +AttributeTypes ::= SET OF AttributeType + +UpdateMode ::= CHOICE { + supplierInitiated [0] SupplierUpdateMode, + consumerInitiated [1] ConsumerUpdateMode +} + +SupplierUpdateMode ::= CHOICE { + onChange BOOLEAN, + scheduled SchedulingParameters +} + +ConsumerUpdateMode ::= SchedulingParameters + +SchedulingParameters ::= SEQUENCE { + periodic PeriodicStrategy OPTIONAL, -- must be present if othertimes is set to FALSE + othertimes BOOLEAN DEFAULT FALSE +} + +PeriodicStrategy ::= SEQUENCE { + beginTime Time OPTIONAL, + windowSize INTEGER, + updateInterval INTEGER +} + +Time ::= GeneralizedTime + +-- as per 34.2 b) and c) of CCITT Rec. X.208 and ISO/IEC 8824 +-- shadow operations, arguments, and results +All-operations-consumer-initiated OPERATION ::= + {requestShadowUpdate | updateShadow} + +All-operations-supplier-initiated OPERATION ::= + {coordinateShadowUpdate | updateShadow} + +coordinateShadowUpdate OPERATION ::= { + ARGUMENT CoordinateShadowUpdateArgument + RESULT CoordinateShadowUpdateResult + ERRORS {shadowError} + CODE id-opcode-coordinateShadowUpdate +} + +CoordinateShadowUpdateArgument ::= + OPTIONALLY-PROTECTED + {[0] SEQUENCE {agreementID AgreementID, + lastUpdate Time OPTIONAL, + updateStrategy + CHOICE {standard + ENUMERATED {noChanges(0), incremental(1), + total(2)}, + other EXTERNAL}, + securityParameters SecurityParameters OPTIONAL}} + +CoordinateShadowUpdateResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED{[0] SEQUENCE {greementID AgreementID, + lastUpdate Time OPTIONAL, + COMPONENTS OF CommonResultsSeq + }} +} + +requestShadowUpdate OPERATION ::= { + ARGUMENT RequestShadowUpdateArgument + RESULT RequestShadowUpdateResult + ERRORS {shadowError} + CODE id-opcode-requestShadowUpdate +} + +RequestShadowUpdateArgument ::= + OPTIONALLY-PROTECTED + {[0] SEQUENCE {agreementID AgreementID, + lastUpdate Time OPTIONAL, + requestedStrategy + CHOICE {standard ENUMERATED {incremental(1), total(2)}, + other EXTERNAL}, + securityParameters SecurityParameters OPTIONAL}} + +RequestShadowUpdateResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID, + lastUpdate Time OPTIONAL, + COMPONENTS OF CommonResultsSeq + }} +} + +updateShadow OPERATION ::= { + ARGUMENT UpdateShadowArgument + RESULT UpdateShadowResult + ERRORS {shadowError} + CODE id-opcode-updateShadow +} + +UpdateShadowArgument ::= + OPTIONALLY-PROTECTED + {[0] SEQUENCE {agreementID AgreementID, + updateTime Time, + updateWindow UpdateWindow OPTIONAL, + updatedInfo RefreshInformation, + securityParameters SecurityParameters OPTIONAL}} + +UpdateShadowResult ::= CHOICE { + null NULL, + information + OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID, + lastUpdate Time OPTIONAL, + COMPONENTS OF CommonResultsSeq + }} +} + +UpdateWindow ::= SEQUENCE {start Time, + stop Time +} + +RefreshInformation ::= CHOICE { + noRefresh NULL, + total [0] TotalRefresh, + incremental [1] IncrementalRefresh, + otherStrategy EXTERNAL +} + +TotalRefresh ::= SEQUENCE { + sDSE SDSEContent OPTIONAL, + subtree SET SIZE (1..MAX) OF Subtree OPTIONAL +} + +SDSEContent ::= SEQUENCE { + sDSEType SDSEType, + subComplete [0] BOOLEAN DEFAULT FALSE, + attComplete [1] BOOLEAN OPTIONAL, + attributes SET OF Attribute, + attValIncomplete SET OF AttributeType DEFAULT {} +} + +SDSEType ::= DSEType + +Subtree ::= SEQUENCE { + rdn RelativeDistinguishedName, + COMPONENTS OF TotalRefresh +} + +IncrementalRefresh ::= SEQUENCE OF IncrementalStepRefresh + +IncrementalStepRefresh ::= SEQUENCE { + sDSEChanges + CHOICE {add [0] SDSEContent, + remove NULL, + modify [1] ContentChange} OPTIONAL, + subordinateUpdates SEQUENCE SIZE (1..MAX) OF SubordinateChanges OPTIONAL +} + +ContentChange ::= SEQUENCE { + rename + CHOICE {newRDN RelativeDistinguishedName, + newDN DistinguishedName} OPTIONAL, + attributeChanges + CHOICE {replace [0] SET SIZE (1..MAX) OF Attribute, + changes [1] SEQUENCE SIZE (1..MAX) OF EntryModification + } OPTIONAL, + sDSEType SDSEType, + subComplete [2] BOOLEAN DEFAULT FALSE, + attComplete [3] BOOLEAN OPTIONAL, + attValIncomplete SET OF AttributeType DEFAULT {} +} + +SubordinateChanges ::= SEQUENCE { + subordinate RelativeDistinguishedName, + changes IncrementalStepRefresh +} + +-- errors and parameters +shadowError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED-SEQ + {SEQUENCE {problem ShadowProblem, + lastUpdate Time OPTIONAL, + updateWindow UpdateWindow OPTIONAL, + COMPONENTS OF CommonResultsSeq}} + CODE id-errcode-shadowError +} + +ShadowProblem ::= INTEGER { + invalidAgreementID(1), inactiveAgreement(2), invalidInformationReceived(3), + unsupportedStrategy(4), missedPrevious(5), fullUpdateRequired(6), + unwillingToPerform(7), unsuitableTiming(8), updateAlreadyReceived(9), + invalidSequencing(10), insufficientResources(11)} + +END -- DirectoryShadowAbstractService + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn new file mode 100644 index 0000000000..cace79d109 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DirectorySystemProtocol.asn @@ -0,0 +1,118 @@ +-- Module DirectorySystemProtocol (X.519 TC2:08/1997) + +DirectorySystemProtocol {joint-iso-itu-t ds(5) module(1) dsp(12) 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 + distributedOperations, protocolObjectIdentifiers + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + ROS-OBJECT-CLASS, CONTRACT, OPERATION-PACKAGE, CONNECTION-PACKAGE, + Code, OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + ROS{}, Bind{}, Unbind{}, InvokeId + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + APPLICATION-CONTEXT + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + acse, pData + FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} + acse-abstract-syntax + FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t + remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)} + id-ac-directorySystemAC, id-rosObject-dspDSA, id-contract-dsp, + id-package-dspConnection, id-package-chainedRead, id-package-chainedSearch, + id-package-chainedModify, id-as-directorySystemAS + FROM ProtocolObjectIdentifiers protocolObjectIdentifiers + dSABind, dSAUnbind, chainedRead, chainedCompare, chainedAbandon, chainedList, + chainedSearch, chainedAddEntry, chainedRemoveEntry, chainedModifyEntry, + chainedModifyDN + FROM DistributedOperations distributedOperations; + +-- application contexts +directorySystemAC APPLICATION-CONTEXT ::= { + CONTRACT dspContract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | directorySystemAbstractSyntax} + APPLICATION CONTEXT NAME id-ac-directorySystemAC +} + +-- ROS objects +dsp-dsa ROS-OBJECT-CLASS ::= {BOTH {dspContract} + ID id-rosObject-dspDSA +} + +-- contracts +dspContract CONTRACT ::= { + CONNECTION dspConnectionPackage + OPERATIONS OF + {chainedReadPackage | chainedSearchPackage | chainedModifyPackage} + ID id-contract-dsp +} + +-- connection package +dspConnectionPackage CONNECTION-PACKAGE ::= { + BIND dSABind + UNBIND dSAUnbind + ID id-package-dspConnection +} + +-- chained read package +chainedReadPackage OPERATION-PACKAGE ::= { + OPERATIONS {chainedRead | chainedCompare | chainedAbandon} + ID id-package-chainedRead +} + +-- chained search package +chainedSearchPackage OPERATION-PACKAGE ::= { + OPERATIONS {chainedList | chainedSearch} + ID id-package-chainedSearch +} + +-- chained modify package +chainedModifyPackage OPERATION-PACKAGE ::= { + OPERATIONS + {chainedAddEntry | chainedRemoveEntry | chainedModifyEntry | + chainedModifyDN} + ID id-package-chainedModify +} + +-- abstract syntaxes +directorySystemAbstractSyntax ABSTRACT-SYNTAX ::= { + DSP-PDUs + IDENTIFIED BY id-as-directorySystemAS +} + +DSP-PDUs ::= CHOICE { + basicRos ROS{{DSP-InvokeIDSet}, {DSP-Invokable}, {DSP-Returnable}}, + bind Bind{dSABind}, + unbind Unbind{dSAUnbind} +} + +DSP-InvokeIDSet ::= InvokeId(ALL EXCEPT absent:NULL) + +DSP-Invokable OPERATION ::= + {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch + | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry | + chainedModifyDN} + +DSP-Returnable OPERATION ::= + {chainedRead | chainedCompare | chainedAbandon | chainedList | chainedSearch + | chainedAddEntry | chainedRemoveEntry | chainedModifyEntry | + chainedModifyDN} + +END -- DirectorySystemProtocol + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn b/lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn new file mode 100644 index 0000000000..72e791f10c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/DistributedOperations.asn @@ -0,0 +1,181 @@ +-- Module DistributedOperations (X.518 TC2:08/1997) + +DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3) + 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 + informationFramework, directoryAbstractService, distributedOperations, + selectedAttributeTypes, basicAccessControl, dap, enhancedSecurity + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + DistinguishedName, Name, RDNSequence, SearchRuleId, MRMapping + FROM InformationFramework informationFramework + PresentationAddress, ProtocolInformation, UniqueIdentifier + FROM SelectedAttributeTypes selectedAttributeTypes + AuthenticationLevel + FROM BasicAccessControl basicAccessControl + OPERATION, ERROR + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + directoryBind, directoryUnbind, read, compare, abandon, list, search, + addEntry, removeEntry, modifyEntry, modifyDN, referral, SecurityParameters, + CommonResults + FROM DirectoryAbstractService directoryAbstractService + OPTIONALLY-PROTECTED{} + FROM EnhancedSecurity enhancedSecurity + id-errcode-dsaReferral + FROM DirectoryAccessProtocol dap; + +-- parameterized type for deriving chained operations +chained{OPERATION:operation} OPERATION ::= { + ARGUMENT OPTIONALLY-PROTECTED + {SET {chainedArgument ChainingArguments, + argument [0] operation.&ArgumentType}} + RESULT OPTIONALLY-PROTECTED + {SET {chainedResult ChainingResults, + result [0] operation.&ResultType}} + ERRORS + {operation.&Errors EXCEPT referral | dsaReferral} + CODE operation.&operationCode +} + +-- bind and unbind operations +dSABind OPERATION ::= directoryBind + +dSAUnbind OPERATION ::= directoryUnbind + +-- chained operations +chainedRead OPERATION ::= chained{read} + +chainedCompare OPERATION ::= chained{compare} + +chainedAbandon OPERATION ::= abandon + +chainedList OPERATION ::= chained{list} + +chainedSearch OPERATION ::= chained{search} + +chainedAddEntry OPERATION ::= chained{addEntry} + +chainedRemoveEntry OPERATION ::= chained{removeEntry} + +chainedModifyEntry OPERATION ::= chained{modifyEntry} + +chainedModifyDN OPERATION ::= chained{modifyDN} + +-- errors and parameters +dsaReferral ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED + {SET {reference [0] ContinuationReference, + contextPrefix [1] DistinguishedName OPTIONAL, + COMPONENTS OF CommonResults}} + CODE id-errcode-dsaReferral +} + +-- common arguments and results +ChainingArguments ::= SET { + originator [0] DistinguishedName OPTIONAL, + targetObject [1] DistinguishedName OPTIONAL, + operationProgress + [2] OperationProgress DEFAULT {nameResolutionPhase notStarted}, + traceInformation [3] TraceInformation, + aliasDereferenced [4] BOOLEAN DEFAULT FALSE, + aliasedRDNs [5] INTEGER OPTIONAL, + -- only present in 1988 systems + returnCrossRefs [6] BOOLEAN DEFAULT FALSE, + referenceType [7] ReferenceType DEFAULT superior, + info [8] DomainInfo OPTIONAL, + timeLimit [9] Time OPTIONAL, + securityParameters [10] SecurityParameters DEFAULT {}, + entryOnly [11] BOOLEAN DEFAULT FALSE, + uniqueIdentifier [12] UniqueIdentifier OPTIONAL, + authenticationLevel [13] AuthenticationLevel OPTIONAL, + exclusions [14] Exclusions OPTIONAL, + excludeShadows [15] BOOLEAN DEFAULT FALSE, + nameResolveOnMaster [16] BOOLEAN DEFAULT FALSE, + operationIdentifier [17] INTEGER OPTIONAL, + searchRuleId [18] SearchRuleId OPTIONAL, + chainedRelaxation [19] MRMapping OPTIONAL +} + +Time ::= CHOICE {utcTime UTCTime, + generalizedTime GeneralizedTime +} + +ChainingResults ::= SET { + info [0] DomainInfo OPTIONAL, + crossReferences [1] SEQUENCE (SIZE (1..MAX)) OF CrossReference OPTIONAL, + securityParameters [2] SecurityParameters DEFAULT {}, + alreadySearched [3] Exclusions OPTIONAL +} + +CrossReference ::= SET { + contextPrefix [0] DistinguishedName, + accessPoint [1] AccessPointInformation, + chainingRequired [2] BOOLEAN DEFAULT FALSE +} + +ReferenceType ::= ENUMERATED { + superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4), + supplier(5), master(6), immediateSuperior(7), self(8)} + +TraceInformation ::= SEQUENCE OF TraceItem + +TraceItem ::= SET { + dsa [0] Name, + targetObject [1] Name OPTIONAL, + operationProgress [2] OperationProgress +} + +OperationProgress ::= SET { + nameResolutionPhase + [0] ENUMERATED {notStarted(1), proceeding(2), completed(3)}, + nextRDNToBeResolved [1] INTEGER OPTIONAL +} + +DomainInfo ::= ABSTRACT-SYNTAX.&Type + +ContinuationReference ::= SET { + targetObject [0] Name, + aliasedRDNs [1] INTEGER OPTIONAL, -- only present in 1988 systems + operationProgress [2] OperationProgress, + rdnsResolved [3] INTEGER OPTIONAL, + referenceType [4] ReferenceType, + accessPoints [5] SET OF AccessPointInformation, + entryOnly [6] BOOLEAN DEFAULT FALSE, + exclusions [7] Exclusions OPTIONAL, + returnToDUA [8] BOOLEAN DEFAULT FALSE, + nameResolveOnMaster [9] BOOLEAN DEFAULT FALSE +} + +AccessPoint ::= SET { + ae-title [0] Name, + address [1] PresentationAddress, + protocolInformation [2] SET OF ProtocolInformation OPTIONAL, + chainingRequired [3] BOOLEAN DEFAULT FALSE +} + +AccessPointInformation ::= SET { + COMPONENTS OF MasterOrShadowAccessPoint, + additionalPoints [5] MasterAndShadowAccessPoints OPTIONAL +} + +MasterOrShadowAccessPoint ::= SET { + COMPONENTS OF AccessPoint, + category [4] ENUMERATED {master(0), shadow(1)} DEFAULT master +} + +MasterAndShadowAccessPoints ::= SET OF MasterOrShadowAccessPoint + +Exclusions ::= SET OF RDNSequence + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn b/lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn new file mode 100644 index 0000000000..d8c15b7afa --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Document-Profile-Descriptor.asn @@ -0,0 +1,464 @@ +-- Module Document-Profile-Descriptor (T.415:03/1993) + +Document-Profile-Descriptor {2 8 1 5 6} DEFINITIONS ::= +BEGIN + +EXPORTS + Document-Profile-Descriptor, Character-Data, Document-Reference, + Date-and-Time, Dates-and-Times, Personal-Name, Originators, + Other-User-Information, Local-File-References, Security-Information, + Document-Description, + External-References , + Sealed-Doc-Bodyparts, ODA-Version; + +IMPORTS + Resource-Name, Object-or-Class-Identifier, Protected-Part-Identifier, + Style-Identifier + FROM Identifiers-and-Expressions -- see 7.8 + + Measure-Pair, Transparency, Colour, Dimension-Pair, One-Of-Four-Angles, + Border, Medium-Type, Comment-String, Content-Background-Colour, + Content-Foreground-Colour + FROM Layout-Descriptors -- see 7.9 + + Protection + FROM Logical-Descriptors -- see 7.10 + + Content-Architecture-Class, Content-Type, Block-Alignment, Fill-Order + FROM Style-Descriptors -- see 7.11 + + Type-Of-Coding + FROM Text-Units -- see 7.13 + + Colour-Characteristics, Colour-Spaces-List, Colour-Expression, Colour-Table + FROM Colour-Attributes -- see 7.14 + + Character-Content-Defaults, Character-Presentation-Feature, + Character-Coding-Attribute + FROM Character-Profile-Attributes {2 8 1 6 4 + } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6 + Raster-Gr-Content-Defaults, Ra-Gr-Presentation-Feature, + Ra-Gr-Coding-Attribute + FROM Raster-Gr-Profile-Attributes {2 8 1 7 4 + } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7 + Geo-Gr-Content-Defaults, Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute + FROM Geo-Gr-Profile-Attributes {2 8 1 8 4 + } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8 + Font-Attribute-Set + FROM ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2 + } -- see ISO/IEC 9541-2 + Document-Presentation-Time, Time-Scaling + FROM Temporal-Relationships {2 8 1 14 0}; + +-- See ITU-T Rec. T.424 | ISO/IEC 8613-14 +Document-Profile-Descriptor ::= SET { + generic-layout-structure [0] IMPLICIT NumericString OPTIONAL, + specific-layout-structure [1] IMPLICIT NumericString OPTIONAL, + generic-logical-structure [4] IMPLICIT NumericString OPTIONAL, + specific-logical-structure [5] IMPLICIT NumericString OPTIONAL, + presentation-styles [6] IMPLICIT NumericString OPTIONAL, + layout-styles [7] IMPLICIT NumericString OPTIONAL, + sealed-profiles [12] IMPLICIT NumericString OPTIONAL, + enciphered-profiles [13] IMPLICIT NumericString OPTIONAL, + preenciphered-bodyparts [14] IMPLICIT NumericString OPTIONAL, + postenciphered-bodyparts [15] IMPLICIT NumericString OPTIONAL, + -- for the generic structures, + -- 'partial-generator-set' is represented by "0", 'complete-generator-set' + -- is represented by "1", 'factor-set' is represented by "2"; + -- for the other cases, the numeric string has the value 'present' + -- represented by "1" + external-document-class [9] Document-Reference OPTIONAL, + resource-document [10] Document-Reference OPTIONAL, + resources + [11] IMPLICIT SET OF + SET {resource-identifier Resource-Name, + object-class-identifier Object-or-Class-Identifier + } OPTIONAL, + document-characteristics [2] IMPLICIT Document-Characteristics, + document-management-attributes + [3] IMPLICIT Document-Management-Attributes OPTIONAL, + document-security-attributes + [16] IMPLICIT Document-Security-Attributes OPTIONAL, + links [17] IMPLICIT NumericString OPTIONAL, + link-classes [18] IMPLICIT NumericString OPTIONAL, + enciphered-links [19] IMPLICIT NumericString OPTIONAL, + temporal-relations [20] IMPLICIT NumericString OPTIONAL +} + +Document-Characteristics ::= SET { + document-application-profile + CHOICE {a [0] IMPLICIT INTEGER {group-4-facsimile(2)}, + b [4] IMPLICIT OBJECT IDENTIFIER} OPTIONAL, + doc-appl-profile-defaults + [10] IMPLICIT Doc-Appl-Profile-Defaults OPTIONAL, + document-architecture-class + [1] IMPLICIT INTEGER {formatted(0), processable(1), + formatted-processable(2)}, + content-architecture-classes [5] IMPLICIT SET OF OBJECT IDENTIFIER, + interchange-format-class [6] IMPLICIT INTEGER {if-a(0), if-b(1)}, + oda-version [8] IMPLICIT ODA-Version, + alternative-feature-sets + [11] IMPLICIT SET OF SET OF OBJECT IDENTIFIER OPTIONAL, + non-basic-doc-characteristics + [2] IMPLICIT Non-Basic-Doc-Characteristics OPTIONAL, + non-basic-struc-characteristics + [3] IMPLICIT Non-Basic-Struc-Characteristics OPTIONAL, + additional-doc-characteristics + [9] IMPLICIT Additional-Doc-Characteristics OPTIONAL +} + +ODA-Version ::= SEQUENCE { + standard-or-recommendation Character-Data, + publication-date Date-and-Time +} + +Doc-Appl-Profile-Defaults ::= SET { + document-architecture-defaults + [0] IMPLICIT Document-Architecture-Defaults OPTIONAL, + character-content-defaults + [1] IMPLICIT Character-Content-Defaults OPTIONAL, + raster-gr-content-defaults + [2] IMPLICIT Raster-Gr-Content-Defaults OPTIONAL, + geo-gr-content-defaults + [3] IMPLICIT Geo-Gr-Content-Defaults OPTIONAL, + -- the following tags are reserved for additional types + -- of content defaults: + -- [4] videotex, for use in conjunction with CCITT Recommendations + -- [5] audio + -- [6] dynamic-graphics + external-content-architecture-defaults + [7] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL +} + +Document-Architecture-Defaults ::= SET { + content-architecture-class + CHOICE {a [0] IMPLICIT Content-Architecture-Class, + b [1] IMPLICIT Content-Type} OPTIONAL, + page-dimensions [2] IMPLICIT Measure-Pair OPTIONAL, + transparency [3] IMPLICIT Transparency OPTIONAL, + colour [4] IMPLICIT Colour OPTIONAL, + colour-of-layout-object [11] Colour-Expression OPTIONAL, + object-colour-table [12] IMPLICIT Colour-Table OPTIONAL, + content-background-colour [13] Content-Background-Colour OPTIONAL, + content-foreground-colour [14] Content-Foreground-Colour OPTIONAL, + content-colour-table [15] IMPLICIT Colour-Table OPTIONAL, + layout-path [5] IMPLICIT One-Of-Four-Angles OPTIONAL, + medium-type [6] IMPLICIT Medium-Type OPTIONAL, + block-alignment [7] IMPLICIT Block-Alignment OPTIONAL, + border [8] IMPLICIT Border OPTIONAL, + page-position [9] IMPLICIT Measure-Pair OPTIONAL, + type-of-coding [10] Type-Of-Coding OPTIONAL +} + +Non-Basic-Doc-Characteristics ::= SET { + profile-character-sets [5] IMPLICIT OCTET STRING OPTIONAL, + comments-character-sets [1] IMPLICIT OCTET STRING OPTIONAL, + alternative-repr-char-sets [6] IMPLICIT OCTET STRING OPTIONAL, + -- each of these octet strings represents a string of escape sequences + page-dimensions [2] IMPLICIT SET OF Dimension-Pair OPTIONAL, + medium-types [8] IMPLICIT SET OF Medium-Type OPTIONAL, + layout-paths + [21] IMPLICIT SET OF One-Of-Four-Angles OPTIONAL, + transparencies [22] IMPLICIT SET OF Transparency OPTIONAL, + protections [23] IMPLICIT SET OF Protection OPTIONAL, + block-alignments + [24] IMPLICIT SET OF Block-Alignment OPTIONAL, + fill-orders [25] IMPLICIT SET OF Fill-Order OPTIONAL, + colours [26] IMPLICIT SET OF Colour OPTIONAL, + colours-of-layout-object + [30] IMPLICIT SET OF Colour-Expression OPTIONAL, + object-colour-tables [31] IMPLICIT SET OF Colour-Table OPTIONAL, + content-background-colours + [32] IMPLICIT SET OF Content-Background-Colour OPTIONAL, + content-foreground-colours + [33] IMPLICIT SET OF Content-Foreground-Colour OPTIONAL, + content-colour-tables [34] IMPLICIT SET OF Colour-Table OPTIONAL, + borders [27] IMPLICIT SET OF Border OPTIONAL, + page-positions [28] IMPLICIT SET OF Measure-Pair OPTIONAL, + types-of-coding [29] IMPLICIT SET OF Type-Of-Coding OPTIONAL, + character-presentation-features + [9] IMPLICIT SET OF Character-Presentation-Feature OPTIONAL, + ra-gr-presentation-features + [4] IMPLICIT SET OF Ra-Gr-Presentation-Feature OPTIONAL, + geo-gr-presentation-features + [12] IMPLICIT SET OF Geo-Gr-Presentation-Feature OPTIONAL, + character-coding-attributes + [16] IMPLICIT SET OF Character-Coding-Attribute OPTIONAL, + ra-gr-coding-attributes + [3] IMPLICIT SET OF Ra-Gr-Coding-Attribute OPTIONAL, + geo-gr-coding-attributes + [17] IMPLICIT SET OF Geo-Gr-Coding-Attribute OPTIONAL, + ext-non-basic-pres-features [10] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL, + ext-non-basic-coding-attributes [11] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL +} + +Non-Basic-Struc-Characteristics ::= SET { + number-of-objects-per-page [0] IMPLICIT INTEGER OPTIONAL +} + +Additional-Doc-Characteristics ::= SET { + unit-scaling [3] IMPLICIT SEQUENCE {a INTEGER, + b INTEGER} OPTIONAL, + fonts-list [2] IMPLICIT Fonts-List OPTIONAL, + colour-characteristics [0] IMPLICIT Colour-Characteristics OPTIONAL, + colour-spaces-list [1] IMPLICIT Colour-Spaces-List OPTIONAL, + assured-reproduction-areas [5] IMPLICIT Assured-Reproduction-Areas OPTIONAL, + time-scaling [6] IMPLICIT Time-Scaling OPTIONAL, + document-presentation-time [7] IMPLICIT Document-Presentation-Time OPTIONAL +} + +Fonts-List ::= + SET OF SET {font-identifier INTEGER, + font-reference Font-Reference} + +Font-Reference ::= SET { + user-visible-name [0] IMPLICIT Comment-String OPTIONAL, + user-readable-comment [1] IMPLICIT Comment-String OPTIONAL, + reference-properties + [2] IMPLICIT SET OF + SET {precedence-number [0] IMPLICIT INTEGER OPTIONAL, + properties [1] IMPLICIT Font-Attribute-Set, + user-readable-comment + [2] IMPLICIT Comment-String OPTIONAL} +} + +Assured-Reproduction-Areas ::= + SET OF + SET {nominal-page-size [0] IMPLICIT Measure-Pair, + assured-reproduction-area + [1] SET {position [0] IMPLICIT Measure-Pair, + dimensions [1] IMPLICIT Measure-Pair}} + +Document-Management-Attributes ::= SET { + document-description [7] IMPLICIT Document-Description OPTIONAL, + dates-and-times [0] IMPLICIT Dates-and-Times OPTIONAL, + originators [1] IMPLICIT Originators OPTIONAL, + other-user-information [2] IMPLICIT Other-User-Information OPTIONAL, + external-references [3] IMPLICIT External-References OPTIONAL, + local-file-references [4] IMPLICIT Local-File-References OPTIONAL, + content-attributes [5] IMPLICIT Content-Attributes OPTIONAL, + security-information [6] IMPLICIT Security-Information OPTIONAL +} + +Document-Description ::= SET { + title [0] IMPLICIT Character-Data OPTIONAL, + subject [1] IMPLICIT Character-Data OPTIONAL, + document-type [2] IMPLICIT Character-Data OPTIONAL, + abstract [3] IMPLICIT Character-Data OPTIONAL, + keywords [4] IMPLICIT SET OF Character-Data OPTIONAL, + document-reference [5] Document-Reference OPTIONAL +} + +Character-Data ::= [APPLICATION 3] IMPLICIT OCTET STRING + +-- string of characters from the sets designated by the attribute +-- "profile character sets", plus space, carriage return and line feed +Document-Reference ::= CHOICE { + unique-reference OBJECT IDENTIFIER, + descriptive-reference Character-Data +} + +Dates-and-Times ::= SET { + document-date-and-time [0] IMPLICIT Date-and-Time OPTIONAL, + creation-date-and-time [1] IMPLICIT Date-and-Time OPTIONAL, + local-filing-date-and-time [2] IMPLICIT SEQUENCE OF Date-and-Time OPTIONAL, + expiry-date-and-time [3] IMPLICIT Date-and-Time OPTIONAL, + start-date-and-time [4] IMPLICIT Date-and-Time OPTIONAL, + purge-date-and-time [5] IMPLICIT Date-and-Time OPTIONAL, + release-date-and-time [6] IMPLICIT Date-and-Time OPTIONAL, + revision-history + [7] IMPLICIT SEQUENCE OF + SET {revision-date-and-time + [0] IMPLICIT Date-and-Time OPTIONAL, + version-identifier + [1] IMPLICIT Character-Data OPTIONAL, + revisers + [2] IMPLICIT SET OF + SET {names + [0] IMPLICIT SET OF + Personal-Name + OPTIONAL, + position + [1] IMPLICIT Character-Data + OPTIONAL, + organization + [2] IMPLICIT Character-Data + OPTIONAL} OPTIONAL, + version-reference + [3] Document-Reference OPTIONAL, + user-comments + [4] IMPLICIT Character-Data OPTIONAL} OPTIONAL +} + +Date-and-Time ::= [APPLICATION 4] IMPLICIT PrintableString + +Originators ::= SET { + organizations [0] IMPLICIT SET OF Character-Data OPTIONAL, + preparers + [1] IMPLICIT SEQUENCE OF + SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL, + organization [1] IMPLICIT Character-Data OPTIONAL + } OPTIONAL, + owners + [2] IMPLICIT SEQUENCE OF + SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL, + organization [1] IMPLICIT Character-Data OPTIONAL + } OPTIONAL, + authors + [3] IMPLICIT SEQUENCE OF + SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL, + organization [1] IMPLICIT Character-Data OPTIONAL + } OPTIONAL +} + +Personal-Name ::= [APPLICATION 6] IMPLICIT SET { + surname [0] IMPLICIT Character-Data, + givenname [1] IMPLICIT Character-Data OPTIONAL, + initials [2] IMPLICIT Character-Data OPTIONAL, + generation-qualifier [3] IMPLICIT Character-Data OPTIONAL +} + +Other-User-Information ::= SET { + copyright + [0] IMPLICIT SET OF + SET {copyright-information + [0] IMPLICIT SET OF Character-Data OPTIONAL, + copyright-dates + [1] IMPLICIT SET OF Date-and-Time OPTIONAL} OPTIONAL, + status [1] IMPLICIT Character-Data OPTIONAL, + user-specific-codes [2] IMPLICIT SET OF Character-Data OPTIONAL, + distribution-list + [3] IMPLICIT SEQUENCE OF + SET {personal-name [0] IMPLICIT Personal-Name OPTIONAL, + organization [1] IMPLICIT Character-Data OPTIONAL + } OPTIONAL, + additional-information [5] TYPE-IDENTIFIER.&Type OPTIONAL +} + +External-References ::= + SET { + references-to-other-documents + [0] IMPLICIT SET OF Document-Reference OPTIONAL, + superseded-documents + [1] IMPLICIT SET OF Document-Reference OPTIONAL +} + +Local-File-References ::= + SET OF + SET {file-name [0] IMPLICIT Character-Data OPTIONAL, + location [1] IMPLICIT Character-Data OPTIONAL, + user-comments [2] IMPLICIT Character-Data OPTIONAL} + +Content-Attributes ::= SET { + document-size [1] IMPLICIT INTEGER OPTIONAL, + number-of-pages [2] IMPLICIT INTEGER OPTIONAL, + languages [4] IMPLICIT SET OF Character-Data OPTIONAL +} + +Security-Information ::= SET { + authorization + CHOICE {person [0] IMPLICIT Personal-Name, + organization [4] IMPLICIT Character-Data} OPTIONAL, + security-classification [1] IMPLICIT Character-Data OPTIONAL, + access-rights [2] IMPLICIT SET OF Character-Data OPTIONAL +} + +Document-Security-Attributes ::= SET { + sealed-info-encoding [7] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + oda-security-label [0] IMPLICIT Oda-Security-Label OPTIONAL, + sealed-doc-profiles [1] IMPLICIT Sealed-Doc-Profiles OPTIONAL, + presealed-doc-bodyparts [2] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL, + postsealed-doc-bodyparts [3] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL, + enciphered-doc-profiles [4] IMPLICIT Protected-Doc-Parts OPTIONAL, + preenciphered-doc-bodyparts [5] IMPLICIT Protected-Doc-Parts OPTIONAL, + postenciphered-doc-bodyparts [6] IMPLICIT Protected-Doc-Parts OPTIONAL, + sealed-links [8] IMPLICIT Sealed-Doc-Bodyparts OPTIONAL +} + +Oda-Security-Label ::= SEQUENCE { + oda-label-text [0] IMPLICIT Character-Data OPTIONAL, + oda-label-data [1] IMPLICIT OCTET STRING OPTIONAL +} + +Seal-Data ::= SEQUENCE { + seal-method [0] IMPLICIT Seal-Method OPTIONAL, + sealed-information [1] IMPLICIT Sealed-Information OPTIONAL, + seal [2] IMPLICIT OCTET STRING +} + +Seal-Method ::= SEQUENCE { + fingerprint-method [0] IMPLICIT Method-Information OPTIONAL, + fingerprint-key-information [1] IMPLICIT Key-Information OPTIONAL, + sealing-method [2] IMPLICIT Method-Information OPTIONAL, + sealing-key-information [3] IMPLICIT Key-Information OPTIONAL +} + +Sealed-Information ::= SEQUENCE { + fingerprint [0] IMPLICIT OCTET STRING OPTIONAL, + time [1] IMPLICIT Date-and-Time OPTIONAL, + sealing-orig-id [2] IMPLICIT Personal-Name OPTIONAL, + location [3] IMPLICIT Location OPTIONAL +} + +Method-Information ::= SEQUENCE { + unique-method-info [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + descriptive-method-info [1] IMPLICIT Character-Data OPTIONAL +} + +Key-Information ::= SEQUENCE { + method-information [0] IMPLICIT Method-Information OPTIONAL, + additional-information [1] IMPLICIT Additional-Information OPTIONAL +} + +Additional-Information ::= SEQUENCE { + descriptive-information [0] IMPLICIT Character-Data OPTIONAL, + octet-string [1] IMPLICIT OCTET STRING OPTIONAL +} + +Location ::= SEQUENCE { + unique-location [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + descriptive-location [1] IMPLICIT Character-Data OPTIONAL +} + +Sealed-Doc-Profiles ::= + SET OF + SEQUENCE {sealed-doc-prof-descriptor-id + [0] IMPLICIT Protected-Part-Identifier, + privileged-recipients + [1] IMPLICIT SET OF Personal-Name OPTIONAL, + doc-prof-seal [2] IMPLICIT Seal-Data} + +Sealed-Doc-Bodyparts ::= + SET OF + SEQUENCE {seal-id [0] IMPLICIT INTEGER, + sealed-constituents [1] IMPLICIT Sealed-Constituents, + privileged-recipients [2] IMPLICIT SET OF Personal-Name OPTIONAL, + doc-bodypart-seal [3] IMPLICIT Seal-Data} + +Sealed-Constituents ::= SEQUENCE { + object-class-identifiers + [0] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL, + presentation-style-identifiers + [1] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL, + layout-style-identifiers + [2] IMPLICIT SEQUENCE OF Style-Identifier OPTIONAL, + object-identifiers + [3] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL +} + +Protected-Doc-Parts ::= + SET OF + SEQUENCE {protected-doc-part-id [0] IMPLICIT Protected-Part-Identifier, + priv-recipients-info [1] IMPLICIT SET OF Priv-Recipients-Info + } + +Priv-Recipients-Info ::= SEQUENCE { + privileged-recipients [0] IMPLICIT SET OF Personal-Name OPTIONAL, + encipherment-method-info [1] IMPLICIT Method-Information OPTIONAL, + encipherment-key-info [2] IMPLICIT Key-Information OPTIONAL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn b/lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn new file mode 100644 index 0000000000..9991a59454 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/EnhancedSecurity.asn @@ -0,0 +1,363 @@ +-- Module EnhancedSecurity (X.501:08/1997) +EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) 1} +DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- EXPORTS All +IMPORTS + -- from ITU-T Rec. X.501 | ISO/IEC 9594-2 + authenticationFramework, basicAccessControl, certificateExtensions, + id-at, id-avc, id-mr, informationFramework, upperBounds + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + Attribute, ATTRIBUTE, AttributeType, Context, CONTEXT, MATCHING-RULE, + Name, objectIdentifierMatch, SupportedAttributes + FROM InformationFramework informationFramework + AttributeTypeAndValue + FROM BasicAccessControl basicAccessControl + -- from ITU-T Rec. X.509 | ISO/IEC 9594-8 + AlgorithmIdentifier, CertificateSerialNumber, ENCRYPTED{}, HASH{}, + SIGNED{} + FROM AuthenticationFramework authenticationFramework + GeneralName, KeyIdentifier + FROM CertificateExtensions certificateExtensions + ub-privacy-mark-length + FROM UpperBounds upperBounds; + +-- from GULS +-- SECURITY-TRANSFORMATION, PROTECTION-MAPPING, PROTECTED +-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) } +--dirSignedTransformation, KEY-INFORMATION +-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1) +-- gulsSecurityTransformations (3) } +-- signed +-- FROM GulsSecurityTransformations { joint-iso-ccitt genericULS (20) modules (1) +-- dirProtectionMappings (4) }; +-- The "signed" Protection Mapping and associated "dirSignedTransformations" imported +-- from the Generic Upper Layers Security specification (ITU-T Rec. X.830 | ISO/IEC 11586-1) +-- results in identical encoding as the same data type used with the SIGNED as defined in +-- ITU-T REC. X.509 | ISO/IEC 9594-8 +-- The three statements below are provided temporarily to allow signed operations to be supported as in edition 3. +OPTIONALLY-PROTECTED{Type} ::= CHOICE {unsigned Type, + signed SIGNED{Type} +} + +OPTIONALLY-PROTECTED-SEQ{Type} ::= CHOICE { + unsigned Type, + signed [0] SIGNED{Type} +} + +-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated. +-- genEncryptedTransform {KEY-INFORMATION: SupportedKIClasses } SECURITY-TRANSFORMATION ::= +-- { +-- IDENTIFIER { enhancedSecurity gen-encrypted(2) } +-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1(1) ber(1) } +-- This default for initial encoding rules may be overridden +-- using a static protected parameter (initEncRules). +-- XFORMED-DATA-TYPE SEQUENCE { +-- initEncRules OBJECT IDENTIFIER DEFAULT { joint-iso-itu-t asn1(1) ber(1) }, +-- encAlgorithm AlgorithmIdentifier OPTIONAL, -- -- Identifies the encryption algorithm, +-- keyInformation SEQUENCE { +-- kiClass KEY-INFORMATION.&kiClass ({SupportedKIClasses}), +-- keyInfo KEY-INFORMATION.&KiType ({SupportedKIClasses} {@kiClass}) +-- } OPTIONAL, +-- Key information may assume various formats, governed by supported members +-- of the KEY-INFORMATION information object class (defined in ITU-T +-- Rec. X.830 | ISO/IEC 11586-1) +-- encData BIT STRING ( CONSTRAINED BY { +-- the encData value must be generated following +-- the procedure specified in 17.3.1-- -- }) +-- } +-- } +-- encrypted PROTECTION-MAPPING ::= { +-- SECURITY-TRANSFORMATION { genEncryptedTransform } } +-- signedAndEncrypt PROTECTION-MAPPING ::= { +-- SECURITY-TRANSFORMATION { signedAndEncryptedTransform } } +-- signedAndEncryptedTransform {KEY-INFORMATION: SupportedKIClasses} +-- SECURITY-TRANSFORMATION ::= { +-- IDENTIFIER { enhancedSecurity dir-encrypt-sign (1) } +-- INITIAL-ENCODING-RULES { joint-iso-itu-t asn1 (1) ber-derived (2) distinguished-encoding (1) } +-- XFORMED-DATA-TYPE +-- PROTECTED +-- { +-- PROTECTED +-- { +-- ABSTRACT-SYNTAX.&Type, +-- signed +-- }, +-- encrypted +-- } +-- } +-- OPTIONALLY-PROTECTED {ToBeProtected, PROTECTION-MAPPING:generalProtection} ::= +-- CHOICE { +-- toBeProtected ToBeProtected, +--no DIRQOP specified for operation +-- signed PROTECTED {ToBeProtected, signed}, +--DIRQOP is Signed +-- protected [APPLICATION 0] +-- PROTECTED { ToBeProtected, generalProtection } } +--DIRQOP is other than Signed +-- defaultDirQop ATTRIBUTE ::= { +-- WITH SYNTAX OBJECT IDENTIFIER +-- EQUALITY MATCHING RULE objectIdentifierMatch +-- USAGE directoryOperation +-- ID id-at-defaultDirQop } +-- DIRQOP ::= CLASS +-- This information object class is used to define the quality of protection +-- required throughout directory operation. +-- The Quality Of Protection can be signed, encrypted, signedAndEncrypt +-- { +-- &dirqop-Id OBJECT IDENTIFIER UNIQUE, +-- &dirBindError-QOP PROTECTION-MAPPING:protectionReqd, +-- &dirErrors-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapReadArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapReadRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapCompareArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapCompareRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapListArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapListRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapSearchArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapSearchRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapAbandonArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapAbandonRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapAddEntryArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapAddEntryRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapRemoveEntryArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapRemoveEntryRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapModifyEntryArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapModifyEntryRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapModifyDNArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dapModifyDNRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dspChainedOp-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispShadowAgreeInfo-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispCoorShadowArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispCoorShadowRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispUpdateShadowArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispUpdateShadowRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispRequestShadowUpdateArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dispRequestShadowUpdateRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dopEstablishOpBindArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dopEstablishOpBindRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dopModifyOpBindArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dopModifyOpBindRes-QOP PROTECTION-MAPPING:protectionReqd, +-- &dopTermOpBindArg-QOP PROTECTION-MAPPING:protectionReqd, +-- &dopTermOpBindRes-QOP PROTECTION-MAPPING:protectionReqd +-- } +-- WITH SYNTAX +-- { +-- DIRQOP-ID &dirqop-Id +-- DIRECTORYBINDERROR-QOP &dirBindError-QOP +-- DIRERRORS-QOP &dirErrors-QOP +-- DAPREADARG-QOP &dapReadArg-QOP +-- DAPREADRES-QOP &dapReadRes-QOP +-- DAPCOMPAREARG-QOP &dapCompareArg-QOP +-- DAPCOMPARERES-QOP &dapCompareRes-QOP +-- DAPLISTARG-QOP &dapListArg-QOP +-- DAPLISTRES-QOP &dapListRes-QOP +-- DAPSEARCHARG-QOP &dapSearchArg-QOP +-- DAPSEARCHRES-QOP &dapSearchRes-QOP +-- DAPABANDONARG-QOP &dapAbandonArg-QOP +-- DAPABANDONRES-QOP &dapAbandonRes-QOP +-- DAPADDENTRYARG-QOP &dapAddEntryArg-QOP +-- DAPADDENTRYRES-QOP &dapAddEntryRes-QOP +-- DAPREMOVEENTRYARG-QOP &dapRemoveEntryArg-QOP +-- DAPREMOVEENTRYRES-QOP &dapRemoveEntryRes-QOP +-- DAPMODIFYENTRYARG-QOP &dapModifyEntryArg-QOP +-- DAPMODIFYENTRYRES-QOP &dapModifyEntryRes-QOP +-- DAPMODIFYDNARG-QOP &dapModifyDNArg-QOP +-- DAPMODIFYDNRES-QOP &dapModifyDNRes-QOP +-- DSPCHAINEDOP-QOP &dspChainedOp-QOP +-- DISPSHADOWAGREEINFO-QOP &dispShadowAgreeInfo-QOP +-- DISPCOORSHADOWARG-QOP &dispCoorShadowArg-QOP +-- DISPCOORSHADOWRES-QOP &dispCoorShadowRes-QOP +-- DISPUPDATESHADOWARG-QOP &dispUpdateShadowArg-QOP +-- DISPUPDATESHADOWRES-QOP &dispUpdateShadowRes-QOP +-- DISPREQUESTSHADOWUPDATEARG-QOP &dispRequestShadowUpdateArg-QOP +-- DISPREQUESTSHADOWUPDATERES-QOP &dispRequestShadowUpdateRes-QOP +-- DOPESTABLISHOPBINDARG-QOP &dopEstablishOpBindArg-QOP +-- DOPESTABLISHOPBINDRES-QOP &dopEstablishOpBindRes-QOP +-- DOPMODIFYOPBINDARG-QOP &dopModifyOpBindArg-QOP +-- DOPMODIFYOPBINDRES-QOP &dopModifyOpBindRes-QOP +-- DOPTERMINATEOPBINDARG-QOP &dopTermOpBindArg-QOP +-- DOPTERMINATEOPBINDRES-QOP &dopTermOpBindRes-QOP +-- } +attributeValueSecurityLabelContext CONTEXT ::= { + WITH SYNTAX + SignedSecurityLabel -- At most one security label context can be assigned to an + -- attribute value + ID id-avc-attributeValueSecurityLabelContext +} + +SignedSecurityLabel ::= + SIGNED + {SEQUENCE {attHash HASH{AttributeTypeAndValue}, + issuer Name OPTIONAL, -- name of labelling authority + keyIdentifier KeyIdentifier OPTIONAL, + securityLabel SecurityLabel}} + +SecurityLabel ::= SET { + security-policy-identifier SecurityPolicyIdentifier OPTIONAL, + security-classification SecurityClassification OPTIONAL, + privacy-mark PrivacyMark OPTIONAL, + security-categories SecurityCategories OPTIONAL +}(ALL EXCEPT ({ --none, at least one component shall be presen--})) + +SecurityPolicyIdentifier ::= OBJECT IDENTIFIER + +SecurityClassification ::= INTEGER { + unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4), + top-secret(5)} + +PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length)) + +SecurityCategories ::= SET SIZE (1..MAX) OF SecurityCategory + +clearance ATTRIBUTE ::= {WITH SYNTAX Clearance + ID id-at-clearance +} + +Clearance ::= SEQUENCE { + policyId OBJECT IDENTIFIER, + classList ClassList DEFAULT {unclassified}, + securityCategories SET SIZE (1..MAX) OF SecurityCategory OPTIONAL +} + +ClassList ::= BIT STRING { + unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4), + topSecret(5)} + +SecurityCategory ::= SEQUENCE { + type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}), + value [1] EXPLICIT SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type}) +} + +SECURITY-CATEGORY ::= TYPE-IDENTIFIER + +SecurityCategoriesTable SECURITY-CATEGORY ::= + {...} + +attributeIntegrityInfo ATTRIBUTE ::= { + WITH SYNTAX AttributeIntegrityInfo + ID id-at-attributeIntegrityInfo +} + +AttributeIntegrityInfo ::= + SIGNED + {SEQUENCE {scope Scope, -- Identifies the attributes protected + signer Signer OPTIONAL, -- Authority or data originators name + attribsHash AttribsHash}} -- Hash value of protected attributes + +Signer ::= CHOICE { + thisEntry [0] EXPLICIT ThisEntry, + thirdParty [1] SpecificallyIdentified +} + +ThisEntry ::= CHOICE {onlyOne NULL, + specific IssuerAndSerialNumber +} + +IssuerAndSerialNumber ::= SEQUENCE { + issuer Name, + serial CertificateSerialNumber +} + +SpecificallyIdentified ::= SEQUENCE { + name GeneralName, + issuer GeneralName OPTIONAL, + serial CertificateSerialNumber OPTIONAL +} +(WITH COMPONENTS { + ..., + issuer PRESENT, + serial PRESENT + } | (WITH COMPONENTS { + ..., + issuer ABSENT, + serial ABSENT + })) + +Scope ::= CHOICE { + wholeEntry [0] NULL, -- Signature protects all attribute values in this entry + selectedTypes [1] SelectedTypes + -- Signature protects all attribute values of the selected attribute types +} + +SelectedTypes ::= SEQUENCE SIZE (1..MAX) OF AttributeType + +AttribsHash ::= HASH{SEQUENCE SIZE (1..MAX) OF Attribute} + +-- Attribute type and values with associated context values for the selected Scope +attributeValueIntegrityInfoContext CONTEXT ::= { + WITH SYNTAX AttributeValueIntegrityInfo + ID id-avc-attributeValueIntegrityInfoContext +} + +AttributeValueIntegrityInfo ::= + SIGNED + {SEQUENCE {signer Signer OPTIONAL, -- Authority or data originators name + aVIHash AVIHash}} -- Hash value of protected attribute + +AVIHash ::= HASH{AttributeTypeValueContexts} + +-- Attribute type and value with associated context values +AttributeTypeValueContexts ::= SEQUENCE { + type ATTRIBUTE.&id({SupportedAttributes}), + value ATTRIBUTE.&Type({SupportedAttributes}{@type}), + contextList SET SIZE (1..MAX) OF Context OPTIONAL +} + +-- The following out-commented ASN.1 specification are know to be erroneous and are therefore deprecated. +-- EncryptedAttributeSyntax {AttributeSyntax} ::= SEQUENCE { +-- keyInfo SEQUENCE OF KeyIdOrProtectedKey, +-- encAlg AlgorithmIdentifier, +-- encValue ENCRYPTED { AttributeSyntax } } +-- KeyIdOrProtectedKey ::= SEQUENCE { +-- keyIdentifier [0] KeyIdentifier OPTIONAL, +-- protectedKeys [1] ProtectedKey OPTIONAL } +-- At least one key identifier or protected key must be present +-- ProtectedKey ::= SEQUENCE { +-- authReaders AuthReaders,-- -- if absent, use attribute in authorized reader entry +-- keyEncAlg AlgorithmIdentifier OPTIONAL, -- -- algorithm to encrypt encAttrKey +-- encAttKey EncAttKey } +-- confidentiality key protected with authorized user's +-- protection mechanism +-- AuthReaders ::= SEQUENCE OF Name +-- EncAttKey ::= PROTECTED {SymmetricKey, keyProtection} +-- SymmetricKey ::= BIT STRING +-- keyProtection PROTECTION-MAPPING ::= { +-- SECURITY-TRANSFORMATION {genEncryption} } +-- confKeyInfo ATTRIBUTE ::= { +-- WITH SYNTAX ConfKeyInfo +-- EQUALITY MATCHING RULE readerAndKeyIDMatch +-- ID id-at-confKeyInfo } +-- ConfKeyInfo ::= SEQUENCE { +-- keyIdentifier KeyIdentifier, +-- protectedKey ProtectedKey } +-- readerAndKeyIDMatch MATCHING-RULE ::= { +-- SYNTAX ReaderAndKeyIDAssertion +-- ID id-mr-readerAndKeyIDMatch } +-- ReaderAndKeyIDAssertion ::= SEQUENCE { +-- keyIdentifier KeyIdentifier, +-- authReaders AuthReaders OPTIONAL } +-- Object identifier assignments +-- attributes +id-at-clearance OBJECT IDENTIFIER ::= + {id-at 55} + +-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56} +id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= + {id-at 57} + +-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60} +-- matching rules +-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43} +-- contexts +id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= + {id-avc 3} + +id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4} + +END -- EnhancedSecurity + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/External-References.asn b/lib/asn1/test/asn1_SUITE_data/x420/External-References.asn new file mode 100644 index 0000000000..9a7d4936a6 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/External-References.asn @@ -0,0 +1,49 @@ +-- Module External-References (T.422:08/1995) + +External-References {2 8 1 12 1} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS External-References-List, Reference-Name; + +IMPORTS + Location-Expression + FROM Location-Expressions {2 8 1 12 0} + -- see 7.4 + DOR + FROM DOR-definition {2 4 0} + -- see ISO/IEC 10031-2 + DistinguishedName + FROM InformationFramework {joint-iso-itu-t ds(5) module(1) + informationFramework(1) 3}; + +-- see ITU-T Rec. X.501 � ISO/IEC 9594-2 +External-References-List ::= + SET OF + SET {reference-name [1] Reference-Name, + external-entity [2] External-Entity, + location-rule [3] Location-Expression OPTIONAL} + +Reference-Name ::= PrintableString + +External-Entity ::= CHOICE { + external-info [0] External-Information-Name, + object-id [1] OBJECT IDENTIFIER, + dor [2] DOR, + distinguished [3] DistinguishedName, + associated-info [4] Associated-Information-Name +} + +External-Information-Name ::= SEQUENCE { + string [0] PrintableString, + object-id [1] OBJECT IDENTIFIER OPTIONAL +} + +Associated-Information-Name ::= SEQUENCE { + string [0] PrintableString, + object-id [1] OBJECT IDENTIFIER OPTIONAL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn b/lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn new file mode 100644 index 0000000000..9b6a426ca2 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/GULSProtectionMappings.asn @@ -0,0 +1,71 @@ +-- Module GULSProtectionMappings (X.830:04/1995) + +GULSProtectionMappings {joint-iso-itu-t genericULS(20) modules(1) + gulsProtectionMappings(5)} DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +-- These protection mappings are more versatile that the +-- preceding protection mappings which were specifically designed +-- to generate identical bit-encodings as the Directory +-- Authentication Framework parameterized types. +-- EXPORTS All +IMPORTS + notation, gulsSecurityTransformations + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + PROTECTION-MAPPING + FROM Notation notation + dirEncryptedTransformation, gulsSignedTransformation{}, + gulsSignatureTransformation, symmetricKeyInformation, + asymmetricKeyInformation + FROM GulsSecurityTransformations gulsSecurityTransformations; + +-- ********************************** +-- confidentiality Protection Mapping +-- ********************************** +-- This protection mapping enables the notation +-- PROTECTED {BaseType, confidentiality} +-- to map to either dirEncryptedTransformation or to no transformation +-- at the choice of the encoding system, dependent upon local security +-- policy and other local environment considerations. +-- Security Service: confidentiality +confidentiality PROTECTION-MAPPING ::= { + SECURITY-TRANSFORMATION {dirEncryptedTransformation} + BYPASS-PERMITTED TRUE +} + +-- ****************************** +-- GULS signed Protection Mapping +-- ****************************** +-- This protection mapping causes the notation +-- PROTECTED {BaseType, signed} +-- to map to the gulsSignedTransformation. +-- Security Service: data origin authentication, data integrity and +-- (in certain situations) non-repudiation. +signed PROTECTION-MAPPING ::= { + SECURITY-TRANSFORMATION + {gulsSignedTransformation + {{symmetricKeyInformation | asymmetricKeyInformation}}} +} + +-- ********************************* +-- GULS signature Protection Mapping +-- ********************************* +-- This protection mapping causes the notation +-- PROTECTED {BaseType, signature} +-- to map to the gulsSignatureTransformation. +-- Security Service: data origin authentication, data integrity and +-- (in certain situations) non-repudiation. +signature PROTECTION-MAPPING ::= { + SECURITY-TRANSFORMATION + {gulsSignatureTransformation + {{symmetricKeyInformation | asymmetricKeyInformation}}} +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + +-- content of stack: +-- diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn b/lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn new file mode 100644 index 0000000000..c59451dcdb --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/GenericProtectingTransferSyntax.asn @@ -0,0 +1,66 @@ +-- Module GenericProtectingTransferSyntax (X.833:04/1995) + +GenericProtectingTransferSyntax {joint-iso-itu-t genericULS(20) modules(1) + genericProtectingTransferSyntax(7)} DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +EXPORTS SyntaxStructure{}; + +IMPORTS + notation + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + SECURITY-TRANSFORMATION, ExternalSAID + FROM Notation notation; + +SyntaxStructure{SECURITY-TRANSFORMATION:ValidSTs} ::= CHOICE { + firstPdvExplicit FirstPdvExplicit{{ValidSTs}}, + -- To be used on the first PDV of a protecting presentation + -- context, or a protected PDV sent outside a presentation + -- context, in the case of a presentation-context-bound or + -- single-item-bound security association. + firstPdvExternal FirstPdvExternal{{ValidSTs}}, + -- To be used on the first PDV of a protecting presentation + -- context, or a protected PDV sent outside a presentation + -- context, in the case of an externally established + -- security association. + subsequentPdv SubsequentPdv{{ValidSTs}} + -- To be used on a subsequent PDV in a protecting + -- presentation context. +} + +FirstPdvExplicit{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE { + transformationId SECURITY-TRANSFORMATION.&sT-Identifier({ValidSTs}), + staticUnprotParm + SECURITY-TRANSFORMATION.&StaticUnprotectedParm + ({ValidSTs}{@transformationId}) OPTIONAL, + dynamicUnprotParm + SECURITY-TRANSFORMATION.&DynamicUnprotectedParm + ({ValidSTs}{@transformationId}) OPTIONAL, + xformedData + SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs}{@transformationId}) +} + +FirstPdvExternal{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE { + externalSAID ExternalSAID, + dynamicUnprotParm + SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL, + -- Actual member of ValidSTs is as implied + -- by externalSAID + xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs}) + -- Actual member of ValidSTs is as implied + -- by externalSAID +} + +SubsequentPdv{SECURITY-TRANSFORMATION:ValidSTs} ::= SEQUENCE { + dynamicUnprotParm + SECURITY-TRANSFORMATION.&DynamicUnprotectedParm({ValidSTs}) OPTIONAL, + xformedData SECURITY-TRANSFORMATION.&XformedDataType({ValidSTs}) + -- Actual member of ValidSTs is implied + -- by presentation context +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn new file mode 100644 index 0000000000..60acbb3b5c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Coding-Attributes.asn @@ -0,0 +1,16 @@ +-- Module Geo-Gr-Coding-Attributes (T.418:03/1993) + +Geo-Gr-Coding-Attributes {2 8 1 8 3} DEFINITIONS ::= +BEGIN + +EXPORTS Geo-Gr-Coding-Attributes; + +Geo-Gr-Coding-Attributes ::= SET { +} + +-- no geometric graphics coding attributes are defined +-- in this Specification +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn new file mode 100644 index 0000000000..84c1ee9851 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Presentation-Attributes.asn @@ -0,0 +1,265 @@ +-- Module Geo-Gr-Presentation-Attributes (T.418:03/1993) + +Geo-Gr-Presentation-Attributes {2 8 1 8 2} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS + Geometric-Graphics-Attributes, Line-Rendition, Marker-Rendition, + Text-Rendition, Filled-Area-Rendition, Edge-Rendition, + Colour-Representations, Transparency-Specification, + Transformation-Specification, Region-Of-Interest-Specification, + Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair, + One-Of-Four-Angles; + +Geometric-Graphics-Attributes ::= SET { + line-rendition [1] Line-Rendition OPTIONAL, + marker-rendition [2] Marker-Rendition OPTIONAL, + text-rendition [3] Text-Rendition OPTIONAL, + filled-area-rendition [4] Filled-Area-Rendition OPTIONAL, + edge-rendition [5] Edge-Rendition OPTIONAL, + colour-representations [6] Colour-Representations OPTIONAL, + transparency-specification [7] Transparency-Specification OPTIONAL, + transformation-specification [8] Transformation-Specification OPTIONAL, + region-of-interest-specification + [9] Region-Of-Interest-Specification OPTIONAL, + picture-orientation [10] Picture-Orientation OPTIONAL, + picture-dimensions [11] Picture-Dimensions OPTIONAL +} + +ASF-Type ::= ENUMERATED {bundled(0), individual(1)} + +Colour ::= CHOICE {indexed [0] INTEGER, + direct [1] RGB +} + +RGB ::= SEQUENCE {red REAL, + green REAL, + blue REAL +} + +SpecificationMode ::= ENUMERATED {absolute(0), scaled(1)} + +Line-Rendition ::= SEQUENCE { + line-width-specification-mode [0] SpecificationMode OPTIONAL, + line-bundle-index [1] INTEGER OPTIONAL, + line-type [2] INTEGER OPTIONAL, + line-width [3] Scaled-or-Absolute OPTIONAL, + line-colour [4] Colour OPTIONAL, + line-aspect-source-flags + [5] SEQUENCE {line-type-asf ASF-Type, + line-width-asf ASF-Type, + line-colour-asf ASF-Type} OPTIONAL, + line-bundle-specifications + [6] SEQUENCE OF + SEQUENCE {line-bundle-index INTEGER, + line-bundle-representation + SEQUENCE {line-type INTEGER, + line-width Scaled-or-Absolute, + line-colour Colour}} OPTIONAL +} + +Scaled-or-Absolute ::= CHOICE { + absolute + [0] CHOICE { -- absolute--vdc-int [0] INTEGER, -- for VDC Type INTEGER-- + vdc-real [1] REAL}, -- for VDC Type REAL + scaled [1] REAL +} -- scaled + +Marker-Rendition ::= SEQUENCE { + marker-size-specification-mode [0] SpecificationMode OPTIONAL, + marker-bundle-index [1] INTEGER OPTIONAL, + marker-type [2] INTEGER OPTIONAL, + marker-size [3] Scaled-or-Absolute OPTIONAL, + marker-colour [4] Colour OPTIONAL, + marker-aspect-source-flags + [5] SEQUENCE {marker-type-asf ASF-Type, + marker-size-asf ASF-Type, + marker-colour-asf ASF-Type} OPTIONAL, + marker-bundle-specifications + [6] SEQUENCE OF + SEQUENCE {marker-bundle-index INTEGER, + marker-bundle-representation + SEQUENCE {marker-type INTEGER, + marker-size Scaled-or-Absolute, + marker-colour Colour}} OPTIONAL +} + +Text-Rendition ::= SEQUENCE { + font-list [0] SEQUENCE OF GeneralString OPTIONAL, + character-set-list + [1] SEQUENCE {character-set-type + ENUMERATED {n94-char-sets(0), n96-char-sets(1), + n94-char-multibyte-sets(2), + n96-char-multibyte-sets(3), comp-code(4)}, + designation-sequence-tail GeneralString} OPTIONAL, + character-coding-announcer + [2] ENUMERATED {basic-7-bit(0), basic-8-bit(1), extended-7-bit(2), + extended-8-bit(3)} OPTIONAL, + text-bundle-index [3] INTEGER OPTIONAL, + text-font-index [4] INTEGER OPTIONAL, + text-precision + [5] ENUMERATED {string(0), character(1), stroke(2)} OPTIONAL, + character-expansion-factor [6] REAL OPTIONAL, + character-spacing [7] REAL OPTIONAL, + text-colour [8] Colour OPTIONAL, + character-height [9] VDC-Value OPTIONAL, + character-orientation [10] SEQUENCE {a VDC-Pair, + b VDC-Pair} OPTIONAL, + text-path + [11] ENUMERATED {right(0), left(1), up(2), down(3)} OPTIONAL, + text-alignment + [12] SEQUENCE {horizontal-alignment + ENUMERATED {normal-horizontal(0), left(1), centre(2), + right(3), continuous-horizontal(4)}, + vertical-alignment + ENUMERATED {normal-vertical(0), top(1), cap(2), + half(3), base(4), bottom(5), + continuous-vertical(6)}, + continuous-horizontal-alignment [0] REAL OPTIONAL, + continuous-vertical-alignment [1] REAL OPTIONAL + } OPTIONAL, + character-set-index [13] INTEGER OPTIONAL, + alternate-character-set-index [14] INTEGER OPTIONAL, + text-aspect-source-flags + [15] SEQUENCE {text-font-asf ASF-Type, + text-precision-asf ASF-Type, + character-expansion-factor-asf ASF-Type, + character-spacing-asf ASF-Type, + text-colour-asf ASF-Type} OPTIONAL, + text-bundle-specifications + [16] SEQUENCE OF + SEQUENCE {text-bundle-index INTEGER, + text-bundle-representation + SEQUENCE {text-font-index INTEGER, + text-precision + ENUMERATED {string(0), character(1), + stroke(2)}, + character-expansion-factor REAL, + character-spacing REAL, + text-colour Colour} + } OPTIONAL +} + +VDC-Value ::= CHOICE {a INTEGER, + b REAL +} + +VDC-Pair ::= SEQUENCE {x VDC-Value, + y VDC-Value +} + +Filled-Area-Rendition ::= SEQUENCE { + fill-bundle-index [1] INTEGER OPTIONAL, + interior-style + [2] ENUMERATED {hollow(0), solid(1), pattern(2), hatch(3), empty(4)} + OPTIONAL, + fill-colour [3] Colour OPTIONAL, + hatch-index [4] INTEGER OPTIONAL, + pattern-index [5] INTEGER OPTIONAL, + fill-reference-point [6] VDC-Pair OPTIONAL, + pattern-size + [7] SEQUENCE {height-x-component VDC-Value, + height-y-component VDC-Value, + width-x-component VDC-Value, + width-y-component VDC-Value} OPTIONAL, + pattern-table-specifications [8] SEQUENCE OF PatternTableElement OPTIONAL, + fill-aspect-source-flags + [9] SEQUENCE {interior-style-asf ASF-Type, + fill-colour-asf ASF-Type, + hatch-index-asf ASF-Type, + pattern-index-asf ASF-Type} OPTIONAL, + fill-bundle-specifications + [10] SEQUENCE {fill-bundle-index INTEGER, + fill-bundle-representation + SEQUENCE {interior-style + ENUMERATED {hollow(0), solid(1), pattern(2), + hatch(3), empty(4)}, + fill-colour Colour, + hatch-index INTEGER, + patttern-index INTEGER}} OPTIONAL +} + +PatternTableElement ::= SEQUENCE { + pattern-table-index INTEGER, + nx INTEGER, + ny INTEGER, + local-colour-precision INTEGER, + colour SEQUENCE OF Colour +} + +Edge-Rendition ::= SEQUENCE { + edge-width-spec-mode [0] SpecificationMode OPTIONAL, + edge-visibility [1] On-or-Off OPTIONAL, + edge-bundle-index [2] INTEGER OPTIONAL, + edge-type [3] INTEGER OPTIONAL, + edge-width [4] Scaled-or-Absolute OPTIONAL, + edge-colour [5] Colour OPTIONAL, + edge-aspect-source-flags + [6] SEQUENCE {edge-type-asf ASF-Type, + edge-width-asf ASF-Type, + edge-colour-asf ASF-Type} OPTIONAL, + edge-bundle-specifications + [7] SEQUENCE OF + SEQUENCE {edge-bundle-index INTEGER, + edge-bundle-representation + SEQUENCE {edge-type INTEGER, + edge-width Scaled-or-Absolute, + edge-colour Colour}} OPTIONAL +} + +On-or-Off ::= ENUMERATED {off(0), on(1)} + +Colour-Representations ::= SEQUENCE { + background-colour [0] RGB OPTIONAL, + colour-table-specification + [1] SEQUENCE OF + SEQUENCE {starting-index INTEGER, + colour-list SEQUENCE OF RGB} OPTIONAL +} + +Transparency-Specification ::= SEQUENCE { + transparency [0] On-or-Off OPTIONAL, + auxiliary-colour [1] Colour OPTIONAL +} + +Transformation-Specification ::= SEQUENCE { + vdc-extent [0] Rectangle OPTIONAL, + clip-rectangle [1] Rectangle OPTIONAL, + clip-indicator [2] On-or-Off OPTIONAL +} + +Rectangle ::= SEQUENCE {first-corner VDC-Pair, + second-corner VDC-Pair +} + +Region-Of-Interest-Specification ::= CHOICE { + automatic [0] NULL, + rectangle [1] SEQUENCE {a VDC-Pair, + b VDC-Pair} +} + +Picture-Orientation ::= One-Of-Four-Angles + +One-Of-Four-Angles ::= ENUMERATED {d0(0), d90(1), d180(2), d270(3)} + +Picture-Dimensions ::= CHOICE { + width-controlled + [0] SEQUENCE {minimum-width INTEGER, + preferred-width INTEGER}, + height-controlled + [1] SEQUENCE {minimum-height INTEGER, + preferred-height INTEGER}, + area-controlled + [2] SEQUENCE {minimum-width INTEGER, + preferred-width INTEGER, + minimum-height INTEGER, + preferred-height INTEGER, + aspect-ratio-flag ENUMERATED {fixed(0), variable(1)} + }, + automatic [3] NULL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn new file mode 100644 index 0000000000..28daa467e1 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Geo-Gr-Profile-Attributes.asn @@ -0,0 +1,44 @@ +-- Module Geo-Gr-Profile-Attributes (T.418:03/1993) + +Geo-Gr-Profile-Attributes {2 8 1 8 4} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS + Geo-Gr-Presentation-Feature, Geo-Gr-Coding-Attribute, Geo-Gr-Content-Defaults; + +IMPORTS + Line-Rendition, Marker-Rendition, Text-Rendition, Filled-Area-Rendition, + Edge-Rendition, Colour-Representations, Transparency-Specification, + Transformation-Specification, Region-Of-Interest-Specification, + Picture-Orientation, Picture-Dimensions, ASF-Type, VDC-Pair, + One-Of-Four-Angles + FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see 10.2 + +Geo-Gr-Presentation-Feature ::= CHOICE { + null NULL, + text-rendition [3] Text-Rendition +} + +Geo-Gr-Coding-Attribute ::= NULL + +-- no non-basic values are defined for the +-- geometric graphics coding attributes in this Specification +Geo-Gr-Content-Defaults ::= SET { + line-rendition [1] Line-Rendition OPTIONAL, + marker-rendition [2] Marker-Rendition OPTIONAL, + text-rendition [3] Text-Rendition OPTIONAL, + filled-area-rendition [4] Filled-Area-Rendition OPTIONAL, + edge-rendition [5] Edge-Rendition OPTIONAL, + colour-representations [6] Colour-Representations OPTIONAL, + transparency-specification [7] Transparency-Specification OPTIONAL, + transformation-specification [8] Transformation-Specification OPTIONAL, + region-of-interest-specification + [9] Region-Of-Interest-Specification OPTIONAL, + picture-orientation [10] Picture-Orientation OPTIONAL, + picture-dimensions [11] Picture-Dimensions OPTIONAL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn new file mode 100644 index 0000000000..336b824174 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityExchanges.asn @@ -0,0 +1,79 @@ +-- Module GulsSecurityExchanges (X.830:04/1995) + +GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1) + gulsSecurityExchanges(2)} DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +-- EXPORTS All +IMPORTS + securityExchanges, notation + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + SECURITY-EXCHANGE, SEC-EXCHG-ITEM, SE-ERROR + FROM Notation notation + Credentials, SecurityProblem + FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) + directoryAbstractService(2) 3}; + +-- ******************************************* +-- Directory Authentication Exchange (One-way) +-- ******************************************* +dirAuthenticationOneWay SECURITY-EXCHANGE ::= { + SE-ITEMS {credentials} + IDENTIFIER global:{securityExchanges dir-authent-one-way(1)} +} + +credentials SEC-EXCHG-ITEM ::= { + ITEM-TYPE DirectoryAbstractService.Credentials + ITEM-ID 1 +} + +-- ******************************************* +-- Directory Authentication Exchange (Two-way) +-- ******************************************* +dirAuthenticationTwoWay SECURITY-EXCHANGE ::= { + SE-ITEMS {initiatorCredentials | responderCredentials} + IDENTIFIER global:{securityExchanges dir-authent-two-way(2)} +} + +initiatorCredentials SEC-EXCHG-ITEM ::= { + ITEM-TYPE DirectoryAbstractService.Credentials + ITEM-ID 1 + ERRORS {authenticationFailure} +} + +responderCredentials SEC-EXCHG-ITEM ::= { + ITEM-TYPE DirectoryAbstractService.Credentials + ITEM-ID 2 +} + +authenticationFailure SE-ERROR ::= { + PARAMETER DirectoryAbstractService.SecurityProblem + ERROR-CODE local:1 +} + +-- *************************** +-- Simple Negotiation Exchange +-- *************************** +simpleNegotiationSE SECURITY-EXCHANGE ::= { + SE-ITEMS {offeredIds | acceptedIds} + IDENTIFIER global:{securityExchanges simple-negotiation-se(3)} +} + +offeredIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI + ITEM-ID 1 +} + +acceptedIds SEC-EXCHG-ITEM ::= {ITEM-TYPE Negotiation-SEI + ITEM-ID 2 +} + +Negotiation-SEI ::= SEQUENCE OF OBJECT IDENTIFIER + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + +-- content of stack: +-- diff --git a/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn new file mode 100644 index 0000000000..db2725c37d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/GulsSecurityTransformations.asn @@ -0,0 +1,212 @@ +-- Module GulsSecurityTransformations (X.830:04/1995) + +GulsSecurityTransformations {joint-iso-itu-t genericULS(20) modules(1) + gulsSecurityTransformations(3)} DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +-- EXPORTS All +IMPORTS + securityTransformations, notation + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + SECURITY-TRANSFORMATION, SecurityIdentity + FROM Notation notation + AlgorithmIdentifier + FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) + authenticationFramework(7) 3}; + +-- *************************************** +-- Notation for specifying key information +-- *************************************** +KEY-INFORMATION ::= + CLASS + -- This information object class definition is for use when + -- specifying key information relating to particular classes + -- of protection mechanisms (e.g. symmetric, asymmetric). + -- It may be useful in defining various security transformations. + { + &kiClass CHOICE {local INTEGER, + -- local objects can only be defined within this + -- ASN.1 module. + global OBJECT IDENTIFIER + -- global objects are defined elsewhere + } UNIQUE, + &KiType +}WITH SYNTAX {KEY-INFO-CLASS &kiClass + KEY-INFO-TYPE &KiType +} + +symmetricKeyInformation KEY-INFORMATION ::= { + KEY-INFO-CLASS local:0 + KEY-INFO-TYPE + SEQUENCE {entityId SecurityIdentity, + keyIdentifier INTEGER} +} + +asymmetricKeyInformation KEY-INFORMATION ::= { + KEY-INFO-CLASS local:1 + KEY-INFO-TYPE + SEQUENCE {issuerCAName SecurityIdentity OPTIONAL, + certSerialNumber INTEGER OPTIONAL, + signerName SecurityIdentity OPTIONAL, + keyIdentifier BIT STRING OPTIONAL} +} + +-- ******************************************* +-- Directory ENCRYPTED Security Transformation +-- ******************************************* +dirEncryptedTransformation SECURITY-TRANSFORMATION ::= { + IDENTIFIER {securityTransformations dir-encrypted(1)} + -- This transformation transforms a string of octets to a + -- new bit string using an encipherment process. + INITIAL-ENCODING-RULES {joint-iso-itu-t asn1(1) ber(1)} + XFORMED-DATA-TYPE BIT STRING +} + +-- **************************************** +-- Directory SIGNED Security Transformation +-- **************************************** +dirSignedTransformation SECURITY-TRANSFORMATION ::= { + IDENTIFIER {securityTransformations dir-signed(2)} + INITIAL-ENCODING-RULES + {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)} + XFORMED-DATA-TYPE + SEQUENCE {toBeSigned + ABSTRACT-SYNTAX.&Type + (CONSTRAINED BY { + + -- this type is constrained to being the to-be-signed type -- }), + algorithmId AlgorithmIdentifier, + -- of the algorithms used to compute the signature + encipheredHash BIT STRING} +} + +-- ******************************************* +-- Directory SIGNATURE Security Transformation +-- ******************************************* +dirSignatureTransformation SECURITY-TRANSFORMATION ::= { + IDENTIFIER {securityTransformations dir-signature(3)} + INITIAL-ENCODING-RULES + {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)} + XFORMED-DATA-TYPE + SEQUENCE {algorithmId AlgorithmIdentifier, + -- of the algorithms used to compute the signature + encipheredHash BIT STRING} +} + +-- *********************************** +-- GULS SIGNED Security Transformation +-- *********************************** +gulsSignedTransformation{KEY-INFORMATION:SupportedKIClasses} + SECURITY-TRANSFORMATION ::= { + IDENTIFIER {securityTransformations guls-signed(4)} + INITIAL-ENCODING-RULES + {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)} + -- This default for initial encoding rules may be overridden + -- using a static protected parameter (initEncRules). + XFORMED-DATA-TYPE + SEQUENCE {intermediateValue + EMBEDDED PDV + (WITH COMPONENTS { + identification (WITH COMPONENTS { + transfer-syntax (CONSTRAINED BY { + -- The transfer syntax to be used is that + -- indicated by the initEncRules value within + -- the intermediate value -- })PRESENT + }), + data-value (CONTAINING IntermediateType{{SupportedKIClasses}}) + + -- The data value encoded is a value of type + -- IntermediateType + }), + appendix + BIT STRING + (CONSTRAINED BY { + -- the appendix value must be generated following + -- the procedure specified in D.4 of DIS 11586-1 -- }) + } +} + +IntermediateType{KEY-INFORMATION:SupportedKIClasses} ::= SEQUENCE { + unprotectedItem ABSTRACT-SYNTAX.&Type-- this type is constrained to being + -- the type of the unprotected item, or + -- BIT STRING if the unprotected item is + -- not derived from an ASN.1 abstract + -- syntax --, + initEncRules + OBJECT IDENTIFIER + DEFAULT {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)}, + signOrSealAlgorithm AlgorithmIdentifier OPTIONAL, + -- Identifies the signing or + -- sealing algorithm, and can convey + -- algorithm parameters + hashAlgorithm AlgorithmIdentifier OPTIONAL, + -- Identifies a hash function, + -- for use if a hash function is required + -- and the signOrSealAlgorithm identifier + -- does not imply a particular hash + -- function. Can also convey algorithm + -- parameters. + keyInformation + SEQUENCE {kiClass KEY-INFORMATION.&kiClass({SupportedKIClasses}), + keyInfo KEY-INFORMATION.&KiType({SupportedKIClasses}{@.kiClass}) + } OPTIONAL + -- Key information may assume various + -- formats, governed by supported members + -- of the KEY-INFORMATION information + -- object class (defined at start of the + -- definitive ASN.1 module) +} + +-- ************************************** +-- GULS SIGNATURE Security Transformation +-- ************************************** +gulsSignatureTransformation{KEY-INFORMATION:SupportedKIClasses} + SECURITY-TRANSFORMATION ::= { + IDENTIFIER {securityTransformations guls-signature(5)} + INITIAL-ENCODING-RULES + {joint-iso-itu-t asn1(1) ber-derived(2) canonical-encoding(0)} + -- This default for initial encoding rules may be overridden + -- using a static protected parameter (initEncRules). + XFORMED-DATA-TYPE + SEQUENCE {initEncRules + OBJECT IDENTIFIER + DEFAULT + {joint-iso-itu-t asn1(1) ber-derived(2) + canonical-encoding(0)}, + signOrSealAlgorithm AlgorithmIdentifier OPTIONAL, + -- Identifies the signing or + -- sealing algorithm, and can convey + -- algorithm parameters + hashAlgorithm AlgorithmIdentifier OPTIONAL, + -- Identifies a hash function, + -- for use if a hash function is required + -- and the signOrSealAlgorithm identifier + -- does not imply a particular hash + -- function. Can also convey algorithm parameters. + keyInformation + SEQUENCE {kiClass + KEY-INFORMATION.&kiClass({SupportedKIClasses}), + keyInfo + KEY-INFORMATION.&KiType + ({SupportedKIClasses}{@.kiClass})} OPTIONAL, + -- Key information may assume various + -- formats, governed by supported members + -- of the KEY-INFORMATION information + -- object class (defined at start of the + -- definitive ASN.1 module) + appendix + BIT STRING + (CONSTRAINED BY { + -- the appendix value must be generated following + -- the procedure specified in D.5 of DIS 11586-1 -- }) + } +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + +-- content of stack: +-- diff --git a/lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn b/lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn new file mode 100644 index 0000000000..4e0084b079 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/HierarchicalOperationalBindings.asn @@ -0,0 +1,123 @@ +-- Module HierarchicalOperationalBindings (X.518 TC2:08/1997) + +HierarchicalOperationalBindings {joint-iso-itu-t ds(5) module(1) + hierarchicalOperationalBindings(20) 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 + informationFramework, distributedOperations, + directoryOperationalBindingTypes, opBindingManagement, dsp + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + Attribute, RelativeDistinguishedName, DistinguishedName + FROM InformationFramework informationFramework + MasterAndShadowAccessPoints + FROM DistributedOperations distributedOperations + directorySystemAC + FROM DirectorySystemProtocol dsp + OPERATIONAL-BINDING + FROM OperationalBindingManagement opBindingManagement + id-op-binding-hierarchical, id-op-binding-non-specific-hierarchical + FROM DirectoryOperationalBindingTypes directoryOperationalBindingTypes; + +-- types +HierarchicalAgreement ::= SEQUENCE { + rdn [0] RelativeDistinguishedName, + immediateSuperior [1] DistinguishedName +} + +NonSpecificHierarchicalAgreement ::= SEQUENCE { + immediateSuperior [1] DistinguishedName +} + +SuperiorToSubordinate ::= SEQUENCE { + contextPrefixInfo [0] DITcontext, + entryInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL, + immediateSuperiorInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL +} + +DITcontext ::= SEQUENCE OF Vertex + +Vertex ::= SEQUENCE { + rdn [0] RelativeDistinguishedName, + admPointInfo [1] SET (SIZE (1..MAX)) OF Attribute OPTIONAL, + subentries [2] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL, + accessPoints [3] MasterAndShadowAccessPoints OPTIONAL +} + +SubentryInfo ::= SEQUENCE { + rdn [0] RelativeDistinguishedName, + info [1] SET OF Attribute +} + +SubordinateToSuperior ::= SEQUENCE { + accessPoints [0] MasterAndShadowAccessPoints OPTIONAL, + alias [1] BOOLEAN DEFAULT FALSE, + entryInfo [2] SET (SIZE (1..MAX)) OF Attribute OPTIONAL, + subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL +} + +SuperiorToSubordinateModification ::= + SuperiorToSubordinate(WITH COMPONENTS { + ..., + entryInfo ABSENT + }) + +NHOBSuperiorToSubordinate ::= + SuperiorToSubordinate(WITH COMPONENTS { + ..., + entryInfo ABSENT + }) + +NHOBSubordinateToSuperior ::= SEQUENCE { + accessPoint [0] MasterAndShadowAccessPoints OPTIONAL, + subentries [3] SET (SIZE (1..MAX)) OF SubentryInfo OPTIONAL +} + +-- operational binding information objects +hierarchicalOperationalBinding OPERATIONAL-BINDING ::= { + AGREEMENT HierarchicalAgreement + -- APPLICATION CONTEXTS {{directorySystemAC}} + APPLICATION CONTEXTS {directorySystemAC} + ASYMMETRIC ROLE-A + { -- superior DSAESTABLISHMENT-INITIATOR TRUE + ESTABLISHMENT-PARAMETER SuperiorToSubordinate + MODIFICATION-INITIATOR TRUE + MODIFICATION-PARAMETER SuperiorToSubordinateModification + TERMINATION-INITIATOR TRUE} + ROLE-B + { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE + ESTABLISHMENT-PARAMETER SubordinateToSuperior + MODIFICATION-INITIATOR TRUE + MODIFICATION-PARAMETER SubordinateToSuperior + TERMINATION-INITIATOR TRUE} + ID id-op-binding-hierarchical +} + +nonSpecificHierarchicalOperationalBinding OPERATIONAL-BINDING ::= { + AGREEMENT NonSpecificHierarchicalAgreement + -- APPLICATION CONTEXTS {{directorySystemAC}} + APPLICATION CONTEXTS {directorySystemAC} + ASYMMETRIC ROLE-A + { -- superior DSAESTABLISHMENT-PARAMETER NHOBSuperiorToSubordinate + MODIFICATION-INITIATOR TRUE + MODIFICATION-PARAMETER NHOBSuperiorToSubordinate + TERMINATION-INITIATOR TRUE} + ROLE-B + { -- subordinate DSAESTABLISHMENT-INITIATOR TRUE + ESTABLISHMENT-PARAMETER NHOBSubordinateToSuperior + MODIFICATION-INITIATOR TRUE + MODIFICATION-PARAMETER NHOBSubordinateToSuperior + TERMINATION-INITIATOR TRUE} + ID id-op-binding-non-specific-hierarchical +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn new file mode 100644 index 0000000000..3fec8ae64a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAbstractService.asn @@ -0,0 +1,148 @@ +-- Module IPMSAbstractService (X.420:06/1999) +IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0) + abstract-service(3) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Information Objects + AutoForwardComment, Heading, InformationObject, IPM, NRN, ON, RN + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-pt-management, id-pt-origination, id-pt-reception + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)} + -- MTS Abstract Service + ABSTRACT-ERROR, ABSTRACT-OPERATION, MessageDeliveryEnvelope, + MessageSubmissionEnvelope, MessageSubmissionIdentifier, + MessageSubmissionTime, ORName, PORT, ProbeSubmissionEnvelope, + ProbeSubmissionIdentifier, ProbeSubmissionTime, + recipient-improperly-specified, ReportDeliveryEnvelope, + SupplementaryInformation + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)}; + +-- Ports +origination PORT ::= { + CONSUMER INVOKES + {originate-probe | originate-ipm | originate-rn | originate-on} + ID id-pt-origination +} + +reception PORT ::= { + SUPPLIER INVOKES + {receive-report | receive-ipm | receive-rn | receive-nrn | receive-on} + ID id-pt-reception +} + +management PORT ::= { + CONSUMER INVOKES + {change-auto-discard | change-auto-acknowledgment | change-auto-forwarding} + ID id-pt-management +} + +-- Origination abstract operations +originate-probe ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] ProbeSubmissionEnvelope, + content [1] IPM} + RESULT + SET {submission-identifier [0] ProbeSubmissionIdentifier, + submission-time [1] ProbeSubmissionTime} + ERRORS {subscription-error | recipient-improperly-specified} +} + +originate-ipm ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageSubmissionEnvelope, + content [1] IPM} + RESULT + SET {submission-identifier [0] MessageSubmissionIdentifier, + submission-time [1] MessageSubmissionTime} + ERRORS {subscription-error | recipient-improperly-specified} +} + +originate-rn ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageSubmissionEnvelope, + content [1] RN} + RESULT + SET {submission-identifier [0] MessageSubmissionIdentifier, + submission-time [1] MessageSubmissionTime} + ERRORS {subscription-error | recipient-improperly-specified} +} + +originate-on ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageSubmissionEnvelope, + content [1] ON} + RESULT + SET {submission-identifier [0] MessageSubmissionIdentifier, + submission-time [1] MessageSubmissionTime} + ERRORS {subscription-error | recipient-improperly-specified} +} + +-- Reception abstract operations +receive-report ABSTRACT-OPERATION ::= { + ARGUMENT + SET {envelope [0] ReportDeliveryEnvelope, + undelivered-object [1] InformationObject OPTIONAL} +} + +receive-ipm ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageDeliveryEnvelope, + content [1] IPM} +} + +receive-rn ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageDeliveryEnvelope, + content [1] RN} +} + +receive-nrn ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageDeliveryEnvelope, + content [1] NRN} +} + +receive-on ABSTRACT-OPERATION ::= { + ARGUMENT SET {envelope [0] MessageDeliveryEnvelope, + content [1] ON} +} + +-- Management abstract operations +change-auto-discard ABSTRACT-OPERATION ::= { + ARGUMENT + SET {auto-discard-expired-IPMs [0] BOOLEAN, + auto-discard-obsolete-IPMs [1] BOOLEAN} +} + +change-auto-acknowledgment ABSTRACT-OPERATION ::= { + ARGUMENT + SET {auto-acknowledge-IPMs [0] BOOLEAN, + auto-acknowledge-suppl-receipt-info + [1] SupplementaryInformation OPTIONAL} + ERRORS {subscription-error} +} + +change-auto-forwarding ABSTRACT-OPERATION ::= { + ARGUMENT + SET {auto-forward-IPMs [0] BOOLEAN, + auto-forward-recipients [1] SEQUENCE OF ORName OPTIONAL, + auto-forward-heading [2] Heading OPTIONAL, + auto-forward-comment [3] AutoForwardComment OPTIONAL} + ERRORS {subscription-error | recipient-improperly-specified} +} + +-- Abstract errors +subscription-error ABSTRACT-ERROR ::= { + PARAMETER SET {problem [0] SubscriptionProblem} +} + +SubscriptionProblem ::= ENUMERATED { + ipms-eos-not-subscribed(0), mts-eos-not-subscribed(1)} + +END -- of IPMSAbstractService + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn new file mode 100644 index 0000000000..8c0c8138e2 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSAutoActionTypes.asn @@ -0,0 +1,234 @@ +-- Module IPMSAutoActionTypes (X.420:06/1999) +IPMSAutoActionTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0) auto-actions(13) + version-1999(1)} DEFINITIONS EXPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Information Objects + AdviceNotifications, AutoForwardComment, BodyPart, Heading, IA5TextBodyPart, + IPMSExtension, SupplReceiptInfoField + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Upper Bounds + ub-ipm-identifier-suffix + --== + FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) + upper-bounds(10) version-1999(1)} + -- IPMS Object Identifiers + id-aa-ipm-auto-acknowledgement, id-aa-ipm-auto-advise, + id-aa-ipm-auto-correlate, id-aa-ipm-auto-discard, + id-aae-auto-discard-error, id-aae-auto-forwarding-loop, + id-aae-duplicate-ipn + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)} + -- Auto-action information object class + AUTO-ACTION, + AUTO-ACTION-ERROR, + -- MS Abstract Service data-types and abstract-errors + Filter, EntryInformationSelection, ms-extension-error, MSSubmissionOptions, + service-error + --== + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- MS object identifier + id-act-ipm-auto-forward + --== + FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0) + object-identifiers(0) version-1999(1)} + -- MTS Abstract Service data-types and abstract-errors + ContentIdentifier, DeferredDeliveryTime, element-of-service-not-subscribed, + ExplicitConversion, ExtensionField{}, inconsistent-request, + MessageSubmissionEnvelope, originator-invalid, OriginatorName, + OriginatorReportRequest, PerMessageIndicators, + PerMessageSubmissionExtensions, PerRecipientMessageSubmissionExtensions, + Priority, recipient-improperly-specified, RecipientName, remote-bind-error, + security-error, submission-control-violated, unsupported-critical-function + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- MTS upper bounds + ub-recipients + --== + FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) + upper-bounds(3) version-1999(1)}; + +-- IPM auto-actions information object set +IPMAutoActions AUTO-ACTION ::= + {ipm-auto-forward, ... -- 1994 extension additions --, + ipm-auto-acknowledgement | ipm-auto-correlate | ipm-auto-discard | + ipm-auto-advise} + +-- Auto-actions +ipm-auto-forward AUTO-ACTION ::= { + REGISTRATION PARAMETER IS + CHOICE {ipm-auto-forward-registration-parameter + IPMAutoForwardRegistrationParameter-- used in 1994 Application Contexts only -- , + auto-forward-registration-parameter-88 + AutoForwardRegistrationParameter88 + } -- used in 1988 Application Contexts only + ERRORS + {auto-forwarding-loop | element-of-service-not-subscribed | + inconsistent-request | ms-extension-error | originator-invalid | + recipient-improperly-specified | remote-bind-error | security-error | + service-error | submission-control-violated | + unsupported-critical-function, ...} + IDENTIFIED BY id-act-ipm-auto-forward +} + +-- Auto-forward 1994 +IPMAutoForwardRegistrationParameter ::= SEQUENCE { + filter [0] Filter OPTIONAL, + forwarding-envelope [1] MessageSubmissionEnvelope, + forwarding-heading [2] Heading, + forwarding-cover-note [3] BodyPart OPTIONAL, + submission-options [4] MSSubmissionOptions OPTIONAL, + nrn-comment [5] AutoForwardComment OPTIONAL, + ipm-auto-forward-options [6] IPMAutoForwardOptions DEFAULT {} +} + +IPMAutoForwardOptions ::= BIT STRING { + forward-all-object-types(0), -- forward-all-object-types 'one', forward IPMs only 'zero' + include-returned-content(1), -- include-returned-content 'one', exclude 'zero' + include-returned-ipm(2), -- include-returned-ipm 'one', exclude 'zero' + forwarded-content-prohibited(3), -- forwarded-content-prohibited 'one', allowed'zero' + preserve-retrieval-status(4), -- preserve-retrieval-status 'one', change 'zero' + delete-delivered-object(5) +} -- delete-delivered-object 'one', no deletion 'zero' + +-- Auto-forward 1988 +AutoForwardRegistrationParameter88 ::= SET { + filter [0] Filter OPTIONAL, + auto-forward-arguments [1] AutoForwardArguments, + delete-after-auto-forwarding [2] BOOLEAN DEFAULT FALSE, + forwarding-information [3] EncodedForwardingInformation +} + +AutoForwardArguments ::= SET { + COMPONENTS OF PerMessageAutoForwardFields, + per-recipient-fields + [1] IMPLICIT SEQUENCE SIZE (1..ub-recipients) OF + PerRecipientAutoForwardFields +} + +PerMessageAutoForwardFields ::= SET { + originator-name OriginatorName, + content-identifier ContentIdentifier OPTIONAL, + priority Priority OPTIONAL, + per-message-indicators PerMessageIndicators OPTIONAL, + deferred-delivery-time [0] IMPLICIT DeferredDeliveryTime OPTIONAL, + extensions + [2] IMPLICIT SET OF ExtensionField{{PerMessageSubmissionExtensions}} + DEFAULT {} +} + +PerRecipientAutoForwardFields ::= SET { + recipient-name RecipientName, + originator-report-request [0] IMPLICIT OriginatorReportRequest, + explicit-conversion [1] IMPLICIT ExplicitConversion OPTIONAL, + extensions + [2] IMPLICIT SET OF + ExtensionField{{PerRecipientMessageSubmissionExtensions}} + DEFAULT {} +} + +EncodedForwardingInformation ::= + OCTET STRING -- contains ForwardingInformation1988 + +ForwardingInformation1988 ::= SET { + auto-forwarding-comment [0] IMPLICIT AutoForwardComment OPTIONAL, + ia5-cover-note [1] IMPLICIT IA5TextBodyPart OPTIONAL, + this-ipm-prefix + [2] IMPLICIT PrintableString(SIZE (1..ub-ipm-identifier-suffix)) OPTIONAL +} + +-- +ipm-auto-acknowledgement AUTO-ACTION ::= { + REGISTRATION PARAMETER IS IPMAutoAcknowledgementRegistrationParameter + ERRORS + {originator-invalid | submission-control-violated | + element-of-service-not-subscribed | recipient-improperly-specified | + remote-bind-error | inconsistent-request | security-error | + unsupported-critical-function | duplicate-ipn} + IDENTIFIED BY id-aa-ipm-auto-acknowledgement +} + +IPMAutoAcknowledgementRegistrationParameter ::= SET { + auto-acknowledge-suppl-receipt-info [0] SupplReceiptInfoField OPTIONAL, + submission-options [1] MSSubmissionOptions OPTIONAL +} + +-- +ipm-auto-correlate AUTO-ACTION ::= {IDENTIFIED BY id-aa-ipm-auto-correlate +} + +-- +ipm-auto-discard AUTO-ACTION ::= { + REGISTRATION PARAMETER IS IPMAutoDiscardRegistrationParameter + ERRORS + {submission-control-violated | ipm-auto-discard-error | originator-invalid + | recipient-improperly-specified | inconsistent-request | security-error + | unsupported-critical-function | remote-bind-error | + element-of-service-not-subscribed} + IDENTIFIED BY id-aa-ipm-auto-discard +} + +IPMAutoDiscardRegistrationParameter ::= SET { + filter [0] Filter OPTIONAL, + submission-options [1] MSSubmissionOptions OPTIONAL, + auto-discard-expired-ipms [2] BOOLEAN, + auto-discard-obsoleted-ipms [3] BOOLEAN, + restrict-obsoleting-to-originator [4] BOOLEAN +} + +-- +ipm-auto-advise AUTO-ACTION ::= { + REGISTRATION PARAMETER IS IPMAutoAdviseRegistrationParameter + ERRORS + {inconsistent-request | element-of-service-not-subscribed | + originator-invalid | recipient-improperly-specified | remote-bind-error | + security-error | submission-control-violated | + unsupported-critical-function} + IDENTIFIED BY id-aa-ipm-auto-advise +} + +IPMAutoAdviseRegistrationParameter ::= SET { + enabled [0] BOOLEAN DEFAULT TRUE, + filter [1] Filter OPTIONAL, + advice-notifications + [2] SET OF IPMSExtension{{AdviceNotifications}}, + suppress-subsequent-notifications [3] BOOLEAN DEFAULT TRUE, + use-ipm-if-an-not-supported [4] BOOLEAN DEFAULT FALSE, + submission-options [5] MSSubmissionOptions OPTIONAL +} + +-- IPM auto-action-error-table information object set +IPMAutoActionErrorTable AUTO-ACTION-ERROR ::= + {... -- 1994 extension additions --, auto-forwarding-loop | duplicate-ipn | + element-of-service-not-subscribed | inconsistent-request | + ipm-auto-discard-error | ms-extension-error | originator-invalid | + recipient-improperly-specified | remote-bind-error | security-error | + service-error | submission-control-violated | unsupported-critical-function} + +-- Auto-action-error-types +auto-forwarding-loop AUTO-ACTION-ERROR ::= { + CODE global:id-aae-auto-forwarding-loop +} + +duplicate-ipn AUTO-ACTION-ERROR ::= {CODE global:id-aae-duplicate-ipn +} + +ipm-auto-discard-error AUTO-ACTION-ERROR ::= { + PARAMETER SET {problem [0] AutoDiscardProblem} + CODE global:id-aae-auto-discard-error +} + +AutoDiscardProblem ::= INTEGER {not-obsoleted-by-originator(0)} + +END -- of IPMSAutoActionTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn new file mode 100644 index 0000000000..9805a6189d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes.asn @@ -0,0 +1,102 @@ +-- Module IPMSExtendedBodyPartTypes (X.420:06/1999) +IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0) + extended-body-part-types(7) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Information Objects + BilaterallyDefinedBodyPart, EncryptedData, EncryptedParameters, + EXTENDED-BODY-PART-TYPE, G3FacsimileData, G3FacsimileParameters, + G4Class1BodyPart, IA5TextData, IA5TextParameters, MessageData, + MessageParameters, MixedModeBodyPart, NationallyDefinedBodyPart, + TeletexData, TeletexParameters, VideotexData, VideotexParameters + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-ep-encrypted, id-ep-g3-facsimile, id-ep-ia5-text, id-ep-message, + id-ep-teletex, id-ep-videotex, id-et-bilaterally-defined, id-et-encrypted, + id-et-g3-facsimile, id-et-g4-class1, id-et-ia5-text, id-et-message, + id-et-mixed-mode, id-et-nationally-defined, id-et-teletex, id-et-videotex + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- Extended IA5 Text body part +ia5-text-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {IA5TextParameters + IDENTIFIED BY id-ep-ia5-text}, + DATA {IA5TextData + IDENTIFIED BY id-et-ia5-text} +} + +-- Extended G3 Facsimile body part +g3-facsimile-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {G3FacsimileParameters + IDENTIFIED BY id-ep-g3-facsimile}, + DATA {G3FacsimileData + IDENTIFIED BY id-et-g3-facsimile} +} + +-- Extended G4 Class 1 body part +g4-class1-body-part EXTENDED-BODY-PART-TYPE ::= { + DATA {G4Class1BodyPart + IDENTIFIED BY id-et-g4-class1} +} + +-- Extended Teletex body part +teletex-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {TeletexParameters + IDENTIFIED BY id-ep-teletex}, + DATA {TeletexData + IDENTIFIED BY id-et-teletex} +} + +-- Extended Videotex body part +videotex-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {VideotexParameters + IDENTIFIED BY id-ep-videotex}, + DATA {VideotexData + IDENTIFIED BY id-et-videotex} +} + +-- Extended Encrypted body part +encrypted-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {EncryptedParameters + IDENTIFIED BY id-ep-encrypted}, + DATA {EncryptedData + IDENTIFIED BY id-et-encrypted} +} + +-- Extended Message body part +message-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {MessageParameters + IDENTIFIED BY id-ep-message}, + DATA {MessageData + IDENTIFIED BY id-et-message} +} + +-- Extended Mixed-mode body part +mixed-mode-body-part EXTENDED-BODY-PART-TYPE ::= { + DATA {MixedModeBodyPart + IDENTIFIED BY id-et-mixed-mode} +} + +-- Extended Bilaterally Defined body part +bilaterally-defined-body-part EXTENDED-BODY-PART-TYPE ::= { + DATA {BilaterallyDefinedBodyPart + IDENTIFIED BY id-et-bilaterally-defined} +} + +-- Extended Nationally Defined body part +nationally-defined-body-part EXTENDED-BODY-PART-TYPE ::= { + DATA {NationallyDefinedBodyPart + IDENTIFIED BY id-et-nationally-defined} +} + +END -- of IPMSExtendedBodyPartTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn new file mode 100644 index 0000000000..b39e03c3b6 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedBodyPartTypes2.asn @@ -0,0 +1,37 @@ +-- Module IPMSExtendedBodyPartTypes2 (X.420:06/1999) +IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) modules(0) + extended-body-part-types-2(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Information Objects + EXTENDED-BODY-PART-TYPE + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-ep-general-text, id-et-general-text + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- General Text body part +general-text-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {GeneralTextParameters + IDENTIFIED BY id-ep-general-text}, + DATA {GeneralTextData + IDENTIFIED BY id-et-general-text} +} + +GeneralTextParameters ::= SET OF CharacterSetRegistration + +GeneralTextData ::= GeneralString + +CharacterSetRegistration ::= INTEGER(1..32767) + +END -- of IPMSExtendedBodyPartTypes2 + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn new file mode 100644 index 0000000000..171f4b4223 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSExtendedVoiceBodyPartType.asn @@ -0,0 +1,39 @@ +-- Module IPMSExtendedVoiceBodyPartType (X.420:06/1999) +IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) + extended-voice-body-part-type(11)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Information Objects + EXTENDED-BODY-PART-TYPE + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-ep-voice, id-et-voice + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- Extended Voice body part +voice-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {VoiceParameters + IDENTIFIED BY id-ep-voice}, + DATA {VoiceData + IDENTIFIED BY id-et-voice} +} + +VoiceParameters ::= SEQUENCE { + voice-message-duration [0] INTEGER OPTIONAL, -- In seconds + voice-encoding-type [1] OBJECT IDENTIFIER, + supplementary-information [2] IA5String OPTIONAL +} + +VoiceData ::= OCTET STRING + +END -- of IPMSExtendedVoiceBodyPartType + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn new file mode 100644 index 0000000000..59de6d1b04 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFileTransferBodyPartType.asn @@ -0,0 +1,253 @@ +-- Module IPMSFileTransferBodyPartType (X.420:06/1999) +IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) + file-transfer-body-part-type(9)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- FTAM Attribute Types + Attribute-Extensions, Concurrency-Access, Date-and-Time-Attribute, + Legal-Qualification-Attribute, Object-Availability-Attribute, + Object-Size-Attribute, Pathname, Permitted-Actions-Attribute, + Private-Use-Attribute + --== + FROM ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} + -- ACSE definitions of AP-title and AE-qualifier + AE-qualifier, AP-title + --== + FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) + version1(1)} + -- IPMS Information Objects + EXTENDED-BODY-PART-TYPE, ExtensionsField + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-ep-file-transfer, id-et-file-transfer + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)} + -- MTS Abstract Service + ORName + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)}; + +-- File Transfer body part +file-transfer-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {FileTransferParameters + IDENTIFIED BY id-ep-file-transfer}, + DATA {FileTransferData + IDENTIFIED BY id-et-file-transfer} +} + +FileTransferParameters ::= SEQUENCE { + related-stored-file [0] RelatedStoredFile OPTIONAL, + contents-type + [1] ContentsTypeParameter + DEFAULT + document-type: + {document-type-name + {iso standard 8571 document-type(5) unstructured-binary(3)}}, + environment [2] EnvironmentParameter OPTIONAL, + compression [3] CompressionParameter OPTIONAL, + file-attributes [4] FileAttributes OPTIONAL, + extensions [5] ExtensionsField OPTIONAL +} + +FileTransferData ::= SEQUENCE OF EXTERNAL + +-- This conveys a sequence of data values representing file contents; +-- The rules for generating this sequence are implied by the value of the contents-type parameter. +RelatedStoredFile ::= + SET OF + SEQUENCE {file-identifier FileIdentifier, + relationship + Relationship DEFAULT explicit-relationship:unspecified + } + +FileIdentifier ::= CHOICE { + pathname-and-version [0] PathnameandVersion, + cross-reference [1] CrossReference +} + +PathnameandVersion ::= SEQUENCE { + pathname [0] Pathname-Attribute, + file-version [1] GraphicString OPTIONAL +} + +CrossReference ::= SEQUENCE { + application-cross-reference [0] OCTET STRING, + message-reference [1] MessageReference OPTIONAL, + body-part-reference [2] INTEGER OPTIONAL +} + +MessageReference ::= SET { + user [0] ORName OPTIONAL, + -- Defined in 8.5.5 of ITU-T Rec. X.411 | ISO/IEC 10021-4 + user-relative-identifier [1] PrintableString +} + +Relationship ::= CHOICE { + explicit-relationship [0] ExplicitRelationship, + descriptive-relationship [1] GraphicString +} + +ExplicitRelationship ::= INTEGER { + unspecified(0), new-file(1), replacement(2), extension(3)} + +ContentsTypeParameter ::= Contents-Type-Attribute + +Contents-Type-Attribute ::= CHOICE { + document-type + [0] SEQUENCE {document-type-name Document-Type-Name, + parameter [0] DOCUMENT-PARAMETER.&Type OPTIONAL + }, + -- The actual types to be used for values of the parameter field + -- are defined in the named document type. + constraint-set-and-abstract-syntax + [1] SEQUENCE {constraint-set-name Constraint-Set-Name, + abstract-syntax-name Abstract-Syntax-Name} +} + +Document-Type-Name ::= OBJECT IDENTIFIER + +DOCUMENT-PARAMETER ::= CLASS {&Type +} + +Constraint-Set-Name ::= OBJECT IDENTIFIER + +Abstract-Syntax-Name ::= OBJECT IDENTIFIER + +EnvironmentParameter ::= SEQUENCE { + application-reference [0] GeneralIdentifier OPTIONAL, + machine [1] GeneralIdentifier OPTIONAL, + operating-system [2] OBJECT IDENTIFIER OPTIONAL, + user-visible-string [3] SEQUENCE OF GraphicString OPTIONAL +} + +GeneralIdentifier ::= CHOICE { + registered-identifier [0] OBJECT IDENTIFIER, + descriptive-identifier [1] SEQUENCE OF GraphicString +} + +CompressionParameter ::= SEQUENCE { + compression-algorithm-id + [0] COMPRESSION-ALGORITHM.&id({CompressionAlgorithmTable}), + compression-algorithm-param + [1] COMPRESSION-ALGORITHM.&Type + ({CompressionAlgorithmTable}{@compression-algorithm-id}) +} + +COMPRESSION-ALGORITHM ::= TYPE-IDENTIFIER + +CompressionAlgorithmTable COMPRESSION-ALGORITHM ::= + {...} + +FileAttributes ::= SEQUENCE { + pathname Pathname-Attribute OPTIONAL, + permitted-actions + [1] Permitted-Actions-Attribute OPTIONAL, + storage-account [3] Account-Attribute OPTIONAL, + date-and-time-of-creation + [4] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-modification + [5] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-read-access + [6] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-attribute-modification + [7] Date-and-Time-Attribute OPTIONAL, + identity-of-creator + [8] User-Identity-Attribute OPTIONAL, + identity-of-last-modifier + [9] User-Identity-Attribute OPTIONAL, + identity-of-last-reader + [10] User-Identity-Attribute OPTIONAL, + identity-of-last-attribute-modifier + [11] User-Identity-Attribute OPTIONAL, + object-availability + [12] Object-Availability-Attribute OPTIONAL, + object-size + [13] Object-Size-Attribute OPTIONAL, + future-object-size + [14] Object-Size-Attribute OPTIONAL, + access-control + [15] Access-Control-Attribute OPTIONAL, + legal-qualifications + [16] Legal-Qualification-Attribute OPTIONAL, + private-use + [17] Private-Use-Attribute OPTIONAL, + attribute-extensions + [22] Attribute-Extensions OPTIONAL +} + +Pathname-Attribute ::= CHOICE { + incomplete-pathname [0] Pathname, + complete-pathname [23] Pathname +} + +Account-Attribute ::= CHOICE { + no-value-available [0] NULL, + -- Indicates partial support of this attribute + actual-values Account +} + +Account ::= GraphicString + +User-Identity-Attribute ::= CHOICE { + no-value-available [0] NULL, + -- Indicates partial support of this attribute. + actual-values User-Identity +} + +User-Identity ::= GraphicString + +Access-Control-Attribute ::= CHOICE { + no-value-available [0] NULL, + -- Indicates partial support of this attribute. + actual-values [1] SET OF Access-Control-Element +} + +-- The semantics of this attribute are described in ISO 8571-2 +Access-Control-Element ::= SEQUENCE { + action-list [0] Access-Request, + concurrency-access [1] Concurrency-Access OPTIONAL, + identity [2] User-Identity OPTIONAL, + passwords [3] Access-Passwords OPTIONAL, + location [4] Application-Entity-Title OPTIONAL +} + +Access-Request ::= BIT STRING { + read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5), + change-attribute(6), delete-object(7)} + +Access-Passwords ::= SEQUENCE { + read-password [0] Password, + insert-password [1] Password, + replace-password [2] Password, + extend-password [3] Password, + erase-password [4] Password, + read-attribute-password [5] Password, + change-attribute-password [6] Password, + delete-password [7] Password, + pass-passwords [8] Pass-Passwords, + link-password [9] Password +} + +Password ::= CHOICE { + graphic-string GraphicString, + octet-string OCTET STRING +} + +Pass-Passwords ::= SEQUENCE OF Password + +Application-Entity-Title ::= SEQUENCE { + ap-title AP-title, + ae-qualifier AE-qualifier +} + +END -- of IPMSFileTransferBodyPartType + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn new file mode 100644 index 0000000000..57faac6587 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedContentBodyPartType.asn @@ -0,0 +1,53 @@ +-- Module IPMSForwardedContentBodyPartType (X.420:06/1999)
+IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ forwarded-content-body-part-type(15)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports everything.
+IMPORTS
+ -- MTS Abstract Service
+ Content, ExtendedContentType, MessageDeliveryIdentifier, MessageDeliveryTime,
+ MessageSubmissionEnvelope, OriginatingMTACertificate,
+ OtherMessageDeliveryFields, ProofOfSubmission
+ --==
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ -- IPMS Information Objects
+ EXTENDED-BODY-PART-TYPE
+ --==
+ FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ information-objects(2) version-1999(1)}
+ -- IPMS Object Identifiers
+ id-ep-content, id-et-content
+ --==
+ FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0)
+ object-identifiers(0) version-1999(1)};
+
+-- Forwarded Content body part
+content-body-part{ExtendedContentType:content-type} EXTENDED-BODY-PART-TYPE ::=
+ {
+ PARAMETERS
+ {ForwardedContentParameters
+ IDENTIFIED BY {id-ep-content content-type}},
+ DATA {Content
+ IDENTIFIED BY {id-et-content content-type}}
+}
+
+ForwardedContentParameters ::= SET {
+ delivery-time [0] MessageDeliveryTime OPTIONAL,
+ delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL,
+ mts-identifier [2] MessageDeliveryIdentifier OPTIONAL,
+ submission-proof [3] SubmissionProof OPTIONAL
+}
+
+SubmissionProof ::= SET {
+ proof-of-submission [0] ProofOfSubmission,
+ originating-MTA-certificate [1] OriginatingMTACertificate,
+ message-submission-envelope MessageSubmissionEnvelope
+}
+
+END -- of IPMSForwardedContentBodyPartType
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn new file mode 100644 index 0000000000..4e46c7679b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSForwardedReportBodyPartType.asn @@ -0,0 +1,41 @@ +-- Module IPMSForwardedReportBodyPartType (X.420:06/1999) +IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) + forwarded-report-body-part-type(12)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- MTS Abstract Service + ReportDeliveryArgument + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- IPMS Information Objects + EXTENDED-BODY-PART-TYPE, IPN, MessageParameters + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-ep-notification, id-et-report, id-et-notification + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- Report body part +report-body-part EXTENDED-BODY-PART-TYPE ::= { + DATA {ReportDeliveryArgument + IDENTIFIED BY id-et-report} +} + +-- Notification body part +notification-body-part EXTENDED-BODY-PART-TYPE ::= { + PARAMETERS {MessageParameters + IDENTIFIED BY id-ep-notification}, + DATA {IPN IDENTIFIED BY id-et-notification} +} + +END -- of IPMSForwardedReportBodyPartType + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn new file mode 100644 index 0000000000..09ef4de282 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSFunctionalObjects.asn @@ -0,0 +1,47 @@ +-- Module IPMSFunctionalObjects (X.420:06/1999) +IPMSFunctionalObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + functional-objects(1) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Abstract Service + management, origination, reception + --== + FROM IPMSAbstractService {joint-iso-itu-t mhs(6) ipms(1) modules(0) + abstract-service(3) version-1994(0)} + -- IPMS Object Identifiers + id-ot-ipms, id-ot-ipms-user + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)} + -- MTS Abstract Service + MHS-OBJECT + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- Remote Operations + CONTRACT + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)}; + +-- Primary object types +ipms-user MHS-OBJECT ::= { + INITIATES {ipms-access-contract} + ID id-ot-ipms-user +} + +ipms-access-contract CONTRACT ::= { + INITIATOR CONSUMER OF {origination | reception | management} +} + +ipms MHS-OBJECT ::= {RESPONDS {ipms-access-contract} + ID id-ot-ipms +} + +END -- of IPMSFunctionalObjects + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn new file mode 100644 index 0000000000..752e8d05e1 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSHeadingExtensions.asn @@ -0,0 +1,246 @@ +-- Module IPMSHeadingExtensions (X.420:06/1999) +IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + heading-extensions(6) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Information Objects + IPMS-EXTENSION, ORDescriptor, RecipientSpecifier, ThisIPMField, BodyPart + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- MTS Abstract Service + ExtendedCertificates, SecurityLabel, UniversalOrBMPString{} + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- Directory Authentication Framework + AlgorithmIdentifier, SIGNATURE{}, SIGNED{} + --== + FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) + authenticationFramework(7) 3} + -- Directory Certificate Extensions + CertificateAssertion + --== + FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1) + certificateExtensions(26) 0} + -- IPMS upper bounds + ub-alpha-code-length, ub-circulation-list-members, ub-distribution-codes, + ub-extended-subject-length, ub-information-categories, + ub-information-category-length, ub-manual-handling-instruction-length, + ub-manual-handling-instructions, ub-originators-reference-length, + ub-precedence + --== + FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) + upper-bounds(10) version-1999(1)} + -- IPMS Object Identifiers + id-hex-authorization-time, id-hex-auto-submitted, + id-hex-body-part-signatures, id-hex-circulation-list-recipients, + id-hex-distribution-codes, id-hex-extended-subject, id-hex-incomplete-copy, + id-hex-information-category, id-hex-ipm-security-label, id-hex-languages, + id-hex-manual-handling-instructions, id-hex-originators-reference, + id-hex-precedence-policy-id, id-rex-circulation-list-indicator, + id-rex-precedence + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- Incomplete Copy +incomplete-copy IPMS-EXTENSION ::= { + VALUE IncompleteCopy, + IDENTIFIED BY id-hex-incomplete-copy +} + +IncompleteCopy ::= NULL + +-- Languages +languages IPMS-EXTENSION ::= { + VALUE SET OF Language, + IDENTIFIED BY id-hex-languages +} + +Language ::= PrintableString(SIZE (2 | 5)) + +-- Auto-submitted +auto-submitted IPMS-EXTENSION ::= { + VALUE AutoSubmitted, + IDENTIFIED BY id-hex-auto-submitted +} + +AutoSubmitted ::= ENUMERATED { + not-auto-submitted(0), auto-generated(1), auto-replied(2)} + +body-part-signatures IPMS-EXTENSION ::= { + VALUE BodyPartSignatures, + IDENTIFIED BY id-hex-body-part-signatures +} + +BodyPartSignatures ::= + SET OF + SET {body-part-number BodyPartNumber, + body-part-signature BodyPartSignature, + originator-certificate-selector [1] CertificateAssertion OPTIONAL, + originator-certificates [0] ExtendedCertificates OPTIONAL, + ...} + +BodyPartNumber ::= INTEGER(1..MAX) + +BodyPartSignature ::= + SIGNATURE + {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier, + body-part BodyPart, + body-part-security-label SecurityLabel OPTIONAL + }} + +ipm-security-label IPMS-EXTENSION ::= { + VALUE IPMSecurityLabel, + IDENTIFIED BY id-hex-ipm-security-label +} + +IPMSecurityLabel ::= SEQUENCE { + content-security-label [0] SecurityLabel, + heading-security-label [1] SecurityLabel OPTIONAL, + body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL +} + +BodyPartSecurityLabel ::= CHOICE { + body-part-unlabelled [0] NULL, + body-part-security-label [1] SecurityLabel +} + +-- Authorization Time +authorization-time IPMS-EXTENSION ::= { + VALUE AuthorizationTime, + IDENTIFIED BY id-hex-authorization-time +} + +AuthorizationTime ::= GeneralizedTime + +-- Circulation List +circulation-list-recipients IPMS-EXTENSION ::= { + VALUE CirculationList, + IDENTIFIED BY id-hex-circulation-list-recipients +} + +CirculationList ::= + SEQUENCE (SIZE (2..ub-circulation-list-members)) OF CirculationMember + +CirculationMember ::= SET { + circulation-recipient + RecipientSpecifier + (WITH COMPONENTS { + ..., + recipient (WITH COMPONENTS { + ..., + formal-name PRESENT + }) + }), + checked Checkmark OPTIONAL +} + +Checkmark ::= CHOICE { + simple NULL, + timestamped CirculationTime, + signed CirculationSignature +} + +CirculationTime ::= GeneralizedTime + +CirculationSignature ::= + SIGNED + {SEQUENCE {algorithm-identifier CirculationSignatureAlgorithmIdentifier, + this-IPM ThisIPMField, + timestamp CirculationTime}} + +CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier + +-- Circulation List Indicator +circulation-list-indicator IPMS-EXTENSION ::= { + VALUE NULL, + IDENTIFIED BY id-rex-circulation-list-indicator +} + +-- Distribution Codes +distribution-codes IPMS-EXTENSION ::= { + VALUE DistributionCodes, + IDENTIFIED BY id-hex-distribution-codes +} + +DistributionCodes ::= + SEQUENCE (SIZE (1..ub-distribution-codes)) OF DistributionCode + +DistributionCode ::= SEQUENCE { + oid-code OBJECT IDENTIFIER OPTIONAL, + alphanumeric-code AlphaCode OPTIONAL, + or-descriptor [0] ORDescriptor OPTIONAL +} + +AlphaCode ::= UniversalOrBMPString{ub-alpha-code-length} + +-- Extended Subject +extended-subject IPMS-EXTENSION ::= { + VALUE ExtendedSubject, + IDENTIFIED BY id-hex-extended-subject +} + +ExtendedSubject ::= UniversalOrBMPString{ub-extended-subject-length} + +-- Information category +information-category IPMS-EXTENSION ::= { + VALUE InformationCategories, + IDENTIFIED BY id-hex-information-category +} + +InformationCategories ::= + SEQUENCE (SIZE (1..ub-information-categories)) OF InformationCategory + +InformationCategory ::= SEQUENCE { + reference [0] OBJECT IDENTIFIER OPTIONAL, + description [1] DescriptionString OPTIONAL +} + +DescriptionString ::= UniversalOrBMPString{ub-information-category-length} + +-- Manual handling Instructions +manual-handling-instructions IPMS-EXTENSION ::= { + VALUE ManualHandlingInstructions, + IDENTIFIED BY id-hex-manual-handling-instructions +} + +ManualHandlingInstructions ::= + SEQUENCE (SIZE (1..ub-manual-handling-instructions)) OF + ManualHandlingInstruction + +ManualHandlingInstruction ::= + UniversalOrBMPString{ub-manual-handling-instruction-length} + +-- Originator's Reference +originators-reference IPMS-EXTENSION ::= { + VALUE OriginatorsReference, + IDENTIFIED BY id-hex-originators-reference +} + +OriginatorsReference ::= UniversalOrBMPString{ub-originators-reference-length} + +-- Precedence Policy Identifier +precedence-policy-identifier IPMS-EXTENSION ::= { + VALUE PrecedencePolicyIdentifier, + IDENTIFIED BY id-hex-precedence-policy-id +} + +PrecedencePolicyIdentifier ::= OBJECT IDENTIFIER + +-- Precedence +precedence IPMS-EXTENSION ::= { + VALUE Precedence, + IDENTIFIED BY id-rex-precedence +} + +Precedence ::= INTEGER(0..ub-precedence) + +END -- of IPMSHeadingExtensions + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn new file mode 100644 index 0000000000..3fb0463ee7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSInformationObjects.asn @@ -0,0 +1,626 @@ +-- Module IPMSInformationObjects (X.420:06/1999) +IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Extended Body Parts + bilaterally-defined-body-part, encrypted-body-part, g3-facsimile-body-part, + g4-class1-body-part, ia5-text-body-part, message-body-part, + mixed-mode-body-part, nationally-defined-body-part, teletex-body-part, + videotex-body-part + --== + FROM IPMSExtendedBodyPartTypes {joint-iso-itu-t mhs(6) ipms(1) modules(0) + extended-body-part-types(7) version-1994(0)} + general-text-body-part + --== + FROM IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) + modules(0) extended-body-part-types-2(1)} + file-transfer-body-part + --== + FROM IPMSFileTransferBodyPartType {joint-iso-itu-t mhs(6) ipms(1) + modules(0) file-transfer-body-part-type(9)} + voice-body-part + --== + FROM IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) + modules(0) extended-voice-body-part-type(11)} + notification-body-part, report-body-part + --== + FROM IPMSForwardedReportBodyPartType {joint-iso-itu-t mhs(6) ipms(1) + modules(0) forwarded-report-body-part-type(12)} + content-body-part{} + --== + FROM IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) + modules(0) forwarded-content-body-part-type(15)} + pkcs7-body-part + --== + FROM PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) + pkcs7-body-part-type(16)} + -- IPMS Heading Extensions + authorization-time, auto-submitted, body-part-signatures, + circulation-list-indicator, circulation-list-recipients, + distribution-codes, extended-subject, incomplete-copy, + information-category, ipm-security-label, languages, + manual-handling-instructions, originators-reference, precedence, + precedence-policy-identifier + --== + FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + heading-extensions(6) version-1999(1)} + -- IPMS Security Extensions + body-part-encryption-token, BodyPartTokens, forwarded-content-token, + ForwardedContentToken, ipn-security-response, recipient-security-request + --== + FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + ipm-security-extensions(14) version-1999(1)} + -- IPMS Upper bounds + ub-auto-forward-comment, ub-free-form-name, ub-local-ipm-identifier, + ub-subject-field, ub-telephone-number + --== + FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) + upper-bounds(10) version-1999(1)} + -- ODIF + Interchange-Data-Element + --== + FROM Interchange-Data-Elements {2 8 1 5 5} + -- MTS Abstract Service + EncodedInformationTypes, ExtendedCertificates, EXTENSION, + G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName, + OtherMessageDeliveryFields, SupplementaryInformation, + TeletexNonBasicParameters + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- MS Abstract Service + MS-EXTENSION, SequenceNumber + --== + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- Directory Authentication Framework + AlgorithmIdentifier, ENCRYPTED{} + --== + FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) + authenticationFramework(7) 3} + -- IPMS Object Identifiers + id-mst-assembly-capability, id-mst-assembly-instructions, + id-mst-invalid-assembly-instructions, id-mst-invalid-ipn, + id-mst-originator-body-part-encryption-token, + id-mst-originator-forwarded-content-token, + id-mst-suspend-auto-acknowledgement, id-mst-prevent-nrn-generation, + id-on-absence-advice, id-on-change-of-address-advice + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +Time ::= UTCTime + +-- Information object +InformationObject ::= CHOICE {ipm [0] IPM, + ipn [1] IPN +} + +-- IPM +IPM ::= SEQUENCE {heading Heading, + body Body +} + +-- MTS Extensions +IPMPerRecipientEnvelopeExtensions EXTENSION ::= + {blind-copy-recipients | body-part-encryption-token | + forwarded-content-token, ...} + +-- IPMS Extensions +IPMSExtension{IPMS-EXTENSION:ChosenFrom} ::= SEQUENCE { + type IPMS-EXTENSION.&id({ChosenFrom}), + value IPMS-EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL +} + +IPMS-EXTENSION ::= CLASS {&id OBJECT IDENTIFIER UNIQUE, + &Type DEFAULT NULL +}WITH SYNTAX {[VALUE &Type,] + IDENTIFIED BY &id +} + +PrivateIPMSExtensions IPMS-EXTENSION ::= + {...} + +-- Heading +Heading ::= SET { + this-IPM ThisIPMField, + originator [0] OriginatorField OPTIONAL, + authorizing-users [1] AuthorizingUsersField OPTIONAL, + primary-recipients [2] PrimaryRecipientsField DEFAULT {}, + copy-recipients [3] CopyRecipientsField DEFAULT {}, + blind-copy-recipients [4] BlindCopyRecipientsField OPTIONAL, + replied-to-IPM [5] RepliedToIPMField OPTIONAL, + obsoleted-IPMs [6] ObsoletedIPMsField DEFAULT {}, + related-IPMs [7] RelatedIPMsField DEFAULT {}, + subject [8] EXPLICIT SubjectField OPTIONAL, + expiry-time [9] ExpiryTimeField OPTIONAL, + reply-time [10] ReplyTimeField OPTIONAL, + reply-recipients [11] ReplyRecipientsField OPTIONAL, + importance [12] ImportanceField DEFAULT normal, + sensitivity [13] SensitivityField OPTIONAL, + auto-forwarded [14] AutoForwardedField DEFAULT FALSE, + extensions [15] ExtensionsField DEFAULT {} +} + +-- Heading component types +IPMIdentifier ::= [APPLICATION 11] SET { + user ORName OPTIONAL, + user-relative-identifier LocalIPMIdentifier +} + +LocalIPMIdentifier ::= PrintableString(SIZE (0..ub-local-ipm-identifier)) + +RecipientSpecifier ::= SET { + recipient [0] ORDescriptor, + notification-requests [1] NotificationRequests DEFAULT {}, + reply-requested [2] BOOLEAN DEFAULT FALSE, + recipient-extensions [3] RecipientExtensionsField OPTIONAL +} + +ORDescriptor ::= SET { + formal-name ORName OPTIONAL, + free-form-name [0] FreeFormName OPTIONAL, + telephone-number [1] TelephoneNumber OPTIONAL +} + +FreeFormName ::= TeletexString(SIZE (0..ub-free-form-name)) + +TelephoneNumber ::= PrintableString(SIZE (0..ub-telephone-number)) + +NotificationRequests ::= BIT STRING { + rn(0), nrn(1), ipm-return(2), an-supported(3), suppress-an(4)} + +RecipientExtensionsField ::= SET OF IPMSExtension{{RecipientExtensions}} + +RecipientExtensions IPMS-EXTENSION ::= + {circulation-list-indicator | precedence | recipient-security-request | + PrivateIPMSExtensions, ...} + +-- This IPM heading field +ThisIPMField ::= IPMIdentifier + +-- Originator heading field +OriginatorField ::= ORDescriptor + +-- Authorizing Users heading field +AuthorizingUsersField ::= SEQUENCE OF AuthorizingUsersSubfield + +AuthorizingUsersSubfield ::= ORDescriptor + +-- Primary Recipients heading field +PrimaryRecipientsField ::= SEQUENCE OF PrimaryRecipientsSubfield + +PrimaryRecipientsSubfield ::= RecipientSpecifier + +-- Copy Recipients heading field +CopyRecipientsField ::= SEQUENCE OF CopyRecipientsSubfield + +CopyRecipientsSubfield ::= RecipientSpecifier + +-- Blind Copy Recipients heading field +BlindCopyRecipientsField ::= SEQUENCE OF BlindCopyRecipientsSubfield + +BlindCopyRecipientsSubfield ::= RecipientSpecifier + +-- Blind Copy Recipients envelope field +blind-copy-recipients EXTENSION ::= { + BlindCopyRecipientsField, + IDENTIFIED BY standard-extension:41 +} + +-- Replied-to IPM heading field +RepliedToIPMField ::= IPMIdentifier + +-- Obsoleted IPMs heading field +ObsoletedIPMsField ::= SEQUENCE OF ObsoletedIPMsSubfield + +ObsoletedIPMsSubfield ::= IPMIdentifier + +-- Related IPMs heading field +RelatedIPMsField ::= SEQUENCE OF RelatedIPMsSubfield + +RelatedIPMsSubfield ::= IPMIdentifier + +-- Subject heading field +SubjectField ::= TeletexString(SIZE (0..ub-subject-field)) + +-- Expiry Time heading field +ExpiryTimeField ::= Time + +-- Reply Time heading field +ReplyTimeField ::= Time + +-- Reply Recipients heading field +ReplyRecipientsField ::= SEQUENCE OF ReplyRecipientsSubfield + +ReplyRecipientsSubfield ::= + ORDescriptor(WITH COMPONENTS { + ..., + formal-name PRESENT + }) + +-- Importance heading field +ImportanceField ::= ENUMERATED {low(0), normal(1), high(2)} + +-- Sensitivity heading field +SensitivityField ::= ENUMERATED { + personal(1), private(2), company-confidential(3)} + +-- Auto-forwarded heading field +AutoForwardedField ::= BOOLEAN + +-- Extensions heading field +ExtensionsField ::= SET OF IPMSExtension{{HeadingExtensions}} + +HeadingExtensions IPMS-EXTENSION ::= + {authorization-time | auto-submitted | body-part-signatures | + circulation-list-recipients | distribution-codes | extended-subject | + incomplete-copy | information-category | ipm-security-label | languages | + manual-handling-instructions | originators-reference | + precedence-policy-identifier | PrivateIPMSExtensions, ...} + +-- Body +Body ::= SEQUENCE OF BodyPart + +BodyPart ::= CHOICE { + basic + CHOICE {ia5-text [0] IA5TextBodyPart, + g3-facsimile [3] G3FacsimileBodyPart, + g4-class1 [4] G4Class1BodyPart, + teletex [5] TeletexBodyPart, + videotex [6] VideotexBodyPart, + encrypted [8] EncryptedBodyPart, + message [9] MessageBodyPart, + mixed-mode [11] MixedModeBodyPart, + bilaterally-defined [14] BilaterallyDefinedBodyPart, + nationally-defined [7] NationallyDefinedBodyPart}, + extended [15] ExtendedBodyPart{{IPMBodyPartTable}} +} + +-- Extended body part +ExtendedBodyPart{EXTENDED-BODY-PART-TYPE:IPMBodyPartTable} ::= SEQUENCE { + parameters [0] INSTANCE OF TYPE-IDENTIFIER OPTIONAL, + data INSTANCE OF TYPE-IDENTIFIER +} +(CONSTRAINED BY { -- must correspond to the ¶meters field and &data field of a member of -- + IPMBodyPartTable}) + +IPMBodyPartTable EXTENDED-BODY-PART-TYPE ::= + {StandardBodyParts | ApplicationSpecificBodyParts} + +StandardBodyParts EXTENDED-BODY-PART-TYPE ::= + {ia5-text-body-part | g3-facsimile-body-part | g4-class1-body-part | + teletex-body-part | videotex-body-part | encrypted-body-part | + message-body-part | mixed-mode-body-part | bilaterally-defined-body-part | + nationally-defined-body-part | general-text-body-part | + file-transfer-body-part | voice-body-part | report-body-part | + notification-body-part | + content-body-part{{1 2 3 -- RELATIVE-OID to be provided --}} | + pkcs7-body-part, ...} + +ApplicationSpecificBodyParts EXTENDED-BODY-PART-TYPE ::= + {--any body part defined in other Specifications, or for proprietary or private use + ...} + +EXTENDED-BODY-PART-TYPE ::= CLASS { + ¶meters TYPE-IDENTIFIER OPTIONAL, + &data TYPE-IDENTIFIER +}WITH SYNTAX {[PARAMETERS ¶meters,] + DATA &data +} + +-- IA5 Text body part +IA5TextBodyPart ::= SEQUENCE { + parameters IA5TextParameters, + data IA5TextData +} + +IA5TextParameters ::= SET {repertoire [0] Repertoire DEFAULT ia5 +} + +IA5TextData ::= IA5String + +Repertoire ::= ENUMERATED {ita2(2), ia5(5)} + +-- G3 Facsimile body part +G3FacsimileBodyPart ::= SEQUENCE { + parameters G3FacsimileParameters, + data G3FacsimileData +} + +G3FacsimileParameters ::= SET { + number-of-pages [0] INTEGER OPTIONAL, + non-basic-parameters [1] G3FacsimileNonBasicParameters OPTIONAL +} + +G3FacsimileData ::= SEQUENCE OF BIT STRING + +-- G4 Class 1 and Mixed-mode body parts +G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element + +MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element + +-- Teletex body part +TeletexBodyPart ::= SEQUENCE { + parameters TeletexParameters, + data TeletexData +} + +TeletexParameters ::= SET { + number-of-pages [0] INTEGER OPTIONAL, + telex-compatible [1] BOOLEAN DEFAULT FALSE, + non-basic-parameters [2] TeletexNonBasicParameters OPTIONAL +} + +TeletexData ::= SEQUENCE OF TeletexString + +-- Videotex body part +VideotexBodyPart ::= SEQUENCE { + parameters VideotexParameters, + data VideotexData +} + +VideotexParameters ::= SET {syntax [0] VideotexSyntax OPTIONAL +} + +VideotexSyntax ::= INTEGER { + ids(0), data-syntax1(1), data-syntax2(2), data-syntax3(3)} + +VideotexData ::= VideotexString + +-- Encrypted body part +EncryptedBodyPart ::= SEQUENCE { + parameters EncryptedParameters, + data EncryptedData +} + +EncryptedParameters ::= SET { + algorithm-identifier AlgorithmIdentifier, + originator-certificates ExtendedCertificates OPTIONAL, + ... +} + +EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart}) + +-- Message body part +MessageBodyPart ::= SEQUENCE { + parameters MessageParameters, + data MessageData +} + +MessageParameters ::= SET { + delivery-time [0] MessageDeliveryTime OPTIONAL, + delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL +} + +MessageData ::= IPM + +-- Bilaterally Defined body part +BilaterallyDefinedBodyPart ::= OCTET STRING + +-- Nationally Defined body part +NATIONAL-BODY-PARTS ::= CLASS {&Type +} + +NationallyDefinedBodyPart ::= NATIONAL-BODY-PARTS.&Type + +-- Provided for Historic reasons. Use is strongly deprecated. +-- IPN +IPN ::= SET { + -- common-fields --COMPONENTS OF CommonFields, + choice + [0] CHOICE {non-receipt-fields [0] NonReceiptFields, + receipt-fields [1] ReceiptFields, + other-notification-type-fields + [2] OtherNotificationTypeFields} +} + +RN ::= + IPN + (WITH COMPONENTS { + ..., + choice (WITH COMPONENTS { + receipt-fields PRESENT + }) + }) + +NRN ::= + IPN + (WITH COMPONENTS { + ..., + choice (WITH COMPONENTS { + non-receipt-fields PRESENT + }) + }) + +ON ::= + IPN + (WITH COMPONENTS { + ..., + choice (WITH COMPONENTS { + other-notification-type-fields PRESENT + }) + }) + +CommonFields ::= SET { + subject-ipm SubjectIPMField, + ipn-originator [1] IPNOriginatorField OPTIONAL, + ipm-intended-recipient [2] IPMIntendedRecipientField OPTIONAL, + conversion-eits ConversionEITsField OPTIONAL, + notification-extensions [3] NotificationExtensionsField OPTIONAL +} + +NonReceiptFields ::= SET { + non-receipt-reason [0] NonReceiptReasonField, + discard-reason [1] DiscardReasonField OPTIONAL, + auto-forward-comment [2] AutoForwardCommentField OPTIONAL, + returned-ipm [3] ReturnedIPMField OPTIONAL, + nrn-extensions [4] NRNExtensionsField OPTIONAL +} + +ReceiptFields ::= SET { + receipt-time [0] ReceiptTimeField, + acknowledgment-mode [1] AcknowledgmentModeField DEFAULT manual, + suppl-receipt-info [2] SupplReceiptInfoField OPTIONAL, + rn-extensions [3] RNExtensionsField OPTIONAL +} + +-- Common fields +SubjectIPMField ::= IPMIdentifier + +IPNOriginatorField ::= ORDescriptor + +IPMIntendedRecipientField ::= ORDescriptor + +ConversionEITsField ::= EncodedInformationTypes + +NotificationExtensionsField ::= SET OF IPMSExtension{{NotificationExtensions}} + +NotificationExtensions IPMS-EXTENSION ::= + {ipn-security-response | PrivateIPMSExtensions, ...} + +-- Non-receipt fields +NonReceiptReasonField ::= ENUMERATED { + ipm-discarded(0), ipm-auto-forwarded(1), ... + } + +-- ITU-T version: +DiscardReasonField ::= ENUMERATED { + ipm-expired(0), ipm-obsoleted(1), user-subscription-terminated(2), + not-used(3)} + +-- ISO/IEC version: +--DiscardReasonField ::= ENUMERATED { +-- ipm-expired (0), +-- ipm-obsoleted (1), +-- user-subscription-terminated (2), +-- The following value may not be supported by implementations of earlier versions of this Specification +-- ipm-deleted (3), +-- ... } +AutoForwardCommentField ::= + AutoForwardComment + +AutoForwardComment ::= PrintableString(SIZE (0..ub-auto-forward-comment)) + +ReturnedIPMField ::= IPM + +NRNExtensionsField ::= SET OF IPMSExtension{{NRNExtensions}} + +NRNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...} + +-- Receipt fields +ReceiptTimeField ::= Time + +AcknowledgmentModeField ::= ENUMERATED {manual(0), automatic(1)} + +SupplReceiptInfoField ::= SupplementaryInformation + +RNExtensionsField ::= SET OF IPMSExtension{{RNExtensions}} + +RNExtensions IPMS-EXTENSION ::= {PrivateIPMSExtensions, ...} + +-- Other Notification Type fields +OtherNotificationTypeFields ::= SET OF IPMSExtension{{OtherNotifications}} + +OtherNotifications IPMS-EXTENSION ::= + {AdviceNotifications | PrivateIPMSExtensions, ...} + +AdviceNotifications IPMS-EXTENSION ::= + {absence-advice | change-of-address-advice, ...} + +-- Advice Notification fields +absence-advice IPMS-EXTENSION ::= { + VALUE AbsenceAdvice, + IDENTIFIED BY id-on-absence-advice +} + +AbsenceAdvice ::= SEQUENCE { + advice BodyPart OPTIONAL, + next-available Time OPTIONAL +} + +-- at least one component shall be present +change-of-address-advice IPMS-EXTENSION ::= { + VALUE ChangeOfAddressAdvice, + IDENTIFIED BY id-on-change-of-address-advice +} + +ChangeOfAddressAdvice ::= SEQUENCE { + new-address + [0] ORDescriptor(WITH COMPONENTS { + ..., + formal-name PRESENT + }), + effective-from [1] Time OPTIONAL +} + +-- Message Store Realization +prevent-nrn-generation MS-EXTENSION ::= { + NULL + IDENTIFIED BY id-mst-prevent-nrn-generation +} + +suspend-auto-acknowledgement MS-EXTENSION ::= { + NULL + IDENTIFIED BY id-mst-suspend-auto-acknowledgement +} + +assembly-capability MS-EXTENSION ::= { + NULL + IDENTIFIED BY id-mst-assembly-capability +} + +IPMSubmissionOptions MS-EXTENSION ::= + {ipm-assembly-instructions | originator-body-part-encryption-token | + originator-forwarded-content-token, ...} -- For future extension additions + +ipm-assembly-instructions MS-EXTENSION ::= { + IPMAssemblyInstructions + IDENTIFIED BY id-mst-assembly-instructions +} + +IPMAssemblyInstructions ::= SET {assembly-instructions [0] BodyPartReferences +} + +BodyPartReferences ::= SEQUENCE OF BodyPartReference + +BodyPartReference ::= CHOICE { + stored-entry [0] SequenceNumber, + stored-content [1] SequenceNumber, + submitted-body-part [2] INTEGER(1..MAX), + stored-body-part + [3] SEQUENCE {message-entry SequenceNumber, + body-part-number INTEGER(1..MAX)} +} + +originator-body-part-encryption-token MS-EXTENSION ::= { + BodyPartTokens + IDENTIFIED BY id-mst-originator-body-part-encryption-token +} + +originator-forwarded-content-token MS-EXTENSION ::= { + ForwardedContentToken + IDENTIFIED BY id-mst-originator-forwarded-content-token +} + +IPMSubmissionErrors MS-EXTENSION ::= + {invalid-assembly-instructions | invalid-ipn, ... + } -- For future extension additions + +invalid-assembly-instructions MS-EXTENSION ::= { + BodyPartReferences + IDENTIFIED BY id-mst-invalid-assembly-instructions +} + +invalid-ipn MS-EXTENSION ::= {NULL + IDENTIFIED BY id-mst-invalid-ipn +} + +END -- of IPMSInformationObjects + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn new file mode 100644 index 0000000000..719bca4987 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSMessageStoreAttributes.asn @@ -0,0 +1,1120 @@ +-- Module IPMSMessageStoreAttributes (X.420:06/1999) +IPMSMessageStoreAttributes {joint-iso-itu-t mhs(6) ipms(1) modules(0) + message-store-attributes(8) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS + -- IPMS Heading Extensions + AuthorizationTime, AutoSubmitted, BodyPartNumber, BodyPartSecurityLabel, + BodyPartSignatures, CirculationMember, DistributionCode, ExtendedSubject, + IncompleteCopy, InformationCategory, IPMSecurityLabel, Language, + ManualHandlingInstruction, OriginatorsReference, Precedence, + PrecedencePolicyIdentifier + --== + FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + heading-extensions(6) version-1999(1)} + -- IPMS Security Extensions + BodyPartTokens, ForwardedContentToken + --== + FROM IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + ipm-security-extensions(14) version-1999(1)} + -- IPMS Information Objects + AcknowledgmentModeField, AuthorizingUsersSubfield, AutoForwardCommentField, + AutoForwardedField, BilaterallyDefinedBodyPart, + BlindCopyRecipientsSubfield, Body, ConversionEITsField, + CopyRecipientsSubfield, DiscardReasonField, EncryptedBodyPart, + EncryptedData, EncryptedParameters, ExpiryTimeField, + EXTENDED-BODY-PART-TYPE, G3FacsimileBodyPart, G3FacsimileData, + G3FacsimileParameters, G4Class1BodyPart, Heading, IA5TextBodyPart, + IA5TextData, IA5TextParameters, ImportanceField, IPMIdentifier, + IPMIntendedRecipientField, IPMSExtension{}, IPNOriginatorField, + MessageBodyPart, MessageData, MessageParameters, MixedModeBodyPart, + NationallyDefinedBodyPart, NonReceiptReasonField, NotificationExtensions, + NRNExtensions, ObsoletedIPMsSubfield, ORDescriptor, OriginatorField, + OtherNotifications, PrimaryRecipientsSubfield, ReceiptTimeField, + RecipientSpecifier, RelatedIPMsSubfield, RepliedToIPMField, + ReplyRecipientsSubfield, ReplyTimeField, ReturnedIPMField, RNExtensions, + SensitivityField, SubjectField, SubjectIPMField, SupplReceiptInfoField, + TeletexBodyPart, TeletexData, TeletexParameters, ThisIPMField, + VideotexBodyPart, VideotexData, VideotexParameters + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-bat-bilaterally-defined-body-parts, id-bat-body, + id-bat-encrypted-body-parts, id-bat-encrypted-data, + id-bat-encrypted-parameters, id-bat-extended-body-part-types, + id-bat-g3-facsimile-body-parts, id-bat-g3-facsimile-data, + id-bat-g3-facsimile-parameters, id-bat-g4-class1-body-parts, + id-bat-ia5-text-body-parts, id-bat-ia5-text-data, + id-bat-ia5-text-parameters, id-bat-message-body-parts, id-bat-message-data, + id-bat-message-parameters, id-bat-mixed-mode-body-parts, + id-bat-nationally-defined-body-parts, id-bat-teletex-body-parts, + id-bat-teletex-data, id-bat-teletex-parameters, id-bat-videotex-body-parts, + id-bat-videotex-data, id-bat-videotex-parameters, + id-cat-correlated-delivered-ipns, id-cat-correlated-delivered-replies, + id-cat-delivered-ipn-summary, id-cat-delivered-replies-summary, + id-cat-forwarded-ipms, id-cat-forwarding-ipms, id-cat-ipm-recipients, + id-cat-obsoleted-ipms, id-cat-obsoleting-ipms, id-cat-related-ipms, + id-cat-relating-ipms, id-cat-replied-to-ipm, id-cat-recipient-category, + id-cat-replying-ipms, id-cat-revised-reply-time, id-cat-subject-ipm, + id-cat-submitted-ipn-status, id-cat-submitted-ipns, + id-cat-submitted-reply-status, id-hat-authorization-time, + id-hat-authorizing-users, id-hat-auto-forwarded, id-hat-auto-submitted, + id-hat-blind-copy-recipients, id-hat-body-part-encryption-token, + id-hat-body-part-security-label, + id-hat-body-part-signature-verification-status, + id-hat-body-part-signatures, id-hat-circulation-list-recipients, + id-hat-copy-recipients, id-hat-distribution-codes, id-hat-expiry-time, + id-hat-extended-subject, id-hat-forwarded-content-token, + id-hat-forwarding-token, id-hat-heading, id-hat-importance, + id-hat-incomplete-copy, id-hat-information-category, + id-hat-ipm-security-label, id-hat-languages, + id-hat-manual-handling-instructions, id-hat-nrn-requestors, + id-hat-obsoleted-IPMs, id-hat-originator, id-hat-originators-reference, + id-hat-precedence, id-hat-precedence-policy-id, id-hat-primary-recipients, + id-hat-related-IPMs, id-hat-replied-to-IPM, id-hat-reply-recipients, + id-hat-reply-requestors, id-hat-reply-time, id-hat-rn-requestors, + id-hat-sensitivity, id-hat-subject, id-hat-this-ipm, id-mr-ipm-identifier, + id-mr-ipm-location, id-mr-or-descriptor, id-mr-or-descriptor-elements, + id-mr-or-descriptor-single-element, id-mr-or-descriptor-substring-elements, + id-mr-circulation-member, id-mr-circulation-member-checkmark, + id-mr-circulation-member-elements, id-mr-circulation-member-single-element, + id-mr-circulation-member-substring-elements, id-mr-distribution-code, + id-mr-information-category, id-mr-recipient-specifier, + id-mr-recipient-specifier-elements, + id-mr-recipient-specifier-single-element, + id-mr-recipient-specifier-substring-elements, id-nat-acknowledgment-mode, + id-nat-auto-forward-comment, id-nat-conversion-eits, id-nat-discard-reason, + id-nat-ipm-intended-recipient, id-nat-ipn-originator, + id-nat-non-receipt-reason, id-nat-notification-extensions, + id-nat-nrn-extensions, id-nat-other-notification-type-fields, + id-nat-receipt-time, id-nat-returned-ipm, id-nat-rn-extensions, + id-nat-subject-ipm, id-nat-suppl-receipt-info, id-sat-body-parts-summary, + id-sat-ipm-auto-discarded, id-sat-ipm-entry-type, id-sat-ipm-synopsis + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)} + -- MS Abstract Service + X413ATTRIBUTE, MS-EIT, SequenceNumber + --== + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- MS General Attribute Types + SignatureStatus + --== + FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-attribute-types(2) version-1999(1)} + -- MS matching-rules + MSString{}, mSStringMatch, mSSubstringsMatch + --== + FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-matching-rules(5) version-1999(1)} + -- MTS Abstract Service + EncodedInformationTypes, MessageToken + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- Directory Information Framework + objectIdentifierMatch, MATCHING-RULE + --== + FROM InformationFramework {joint-iso-itu-t ds(5) module(1) + informationFramework(1) 3} + -- Directory Abstract Service + booleanMatch, generalizedTimeMatch, generalizedTimeOrderingMatch, + integerMatch, integerOrderingMatch, uTCTimeMatch, uTCTimeOrderingMatch + --== + FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1) + selectedAttributeTypes(5) 3} + ub-msstring-match + FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4) + version-1994(0)}; + +-- IPMS attribute table information object set +IPMSAttributeTable X413ATTRIBUTE ::= + {acknowledgment-mode | authorizing-users | auto-forward-comment | + auto-forwarded | auto-submitted | bilaterally-defined-body-parts | + blind-copy-recipients | body | conversion-eits | copy-recipients | + discard-reason | encrypted-body-parts | encrypted-data | + encrypted-parameters | expiry-time | extended-body-part-types | + g3-facsimile-body-parts | g3-facsimile-data | g3-facsimile-parameters | + g4-class1-body-parts | heading | ia5-text-body-parts | ia5-text-data | + ia5-text-parameters | importance | incomplete-copy | ipm-entry-type | + ipm-intended-recipient | ipm-synopsis | ipn-originator | languages | + message-body-parts | message-data | message-parameters | + mixed-mode-body-parts | nationally-defined-body-parts | non-receipt-reason | + nrn-requestors | obsoleted-IPMs | originator | primary-recipients | + receipt-time | related-IPMs | replied-to-IPM | reply-recipients | + reply-requestors | reply-time | returned-ipm | rn-requestors | sensitivity | + subject | subject-ipm | suppl-receipt-info | teletex-body-parts | + teletex-data | teletex-parameters | this-ipm | videotex-body-parts | + videotex-data | videotex-parameters, ... -- 1994 extension additions --, + ac-correlated-delivered-ipns | ac-correlated-delivered-replies | + ac-delivered-ipn-summary | ac-delivered-replies-summary | ac-forwarded-ipms + | ac-forwarding-ipms | ac-ipm-recipients | ac-obsoleted-ipms | + ac-obsoleting-ipms | ac-related-ipms | ac-relating-ipms | ac-replied-to-ipm + | ac-replying-ipms | ac-subject-ipm | ac-submitted-ipn-status | + ac-submitted-ipns | ac-submitted-reply-status | authorization-time | + body-part-encryption-token | body-part-security-label | + body-part-signature-verification-status | body-part-signatures | + body-parts-summary | circulation-list-recipients | distribution-codes | + extended-subject | forwarded-content-token | forwarding-token | + information-category | ipm-auto-discarded | ipm-security-label | + manual-handling-instructions | notification-extensions | nrn-extensions | + originators-reference | other-notification-type-fields | precedence | + precedence-policy-identifier | recipient-category | revised-reply-time | + rn-extensions} + +-- SUMMARY ATTRIBUTES +-- IPM entry type +ipm-entry-type X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMEntryType, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-sat-ipm-entry-type +} + +IPMEntryType ::= ENUMERATED {ipm(0), rn(1), nrn(2), on(3)} + +-- IPM synopsis +ipm-synopsis X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMSynopsis, + NUMERATION single-valued, + ID id-sat-ipm-synopsis +} + +IPMSynopsis ::= SEQUENCE OF BodyPartSynopsis + +BodyPartSynopsis ::= CHOICE { + message [0] MessageBodyPartSynopsis, + non-message [1] NonMessageBodyPartSynopsis +} + +MessageBodyPartSynopsis ::= SEQUENCE { + number [0] SequenceNumber, + synopsis [1] IPMSynopsis +} + +NonMessageBodyPartSynopsis ::= SEQUENCE { + type [0] OBJECT IDENTIFIER, + parameters [1] INSTANCE OF TYPE-IDENTIFIER OPTIONAL, + size [2] INTEGER, + processed [3] BOOLEAN DEFAULT FALSE +} + +-- Body part summary +body-parts-summary X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BodyPartDescriptor, + NUMERATION multi-valued, + ID id-sat-body-parts-summary +} + +BodyPartDescriptor ::= SEQUENCE { + data [0] OBJECT IDENTIFIER, + parameters [1] OBJECT IDENTIFIER OPTIONAL, + this-child-entry [2] SequenceNumber OPTIONAL, + position [3] INTEGER, + size [4] INTEGER, + processed [5] BOOLEAN DEFAULT FALSE +} + +-- IPM auto discarded +ipm-auto-discarded X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BOOLEAN, + EQUALITY MATCHING-RULE booleanMatch, + NUMERATION single-valued, + ID id-sat-ipm-auto-discarded +} + +-- Body part signature verification status +body-part-signature-verification-status X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BodyPartSignatureVerification, + NUMERATION single-valued, + ID id-hat-body-part-signature-verification-status +} + +BodyPartSignatureVerification ::= + SET OF + SET {body-part-sequence-number [0] BodyPartNumber, + body-part-signature [1] SignatureStatus} + +-- HEADING ATTRIBUTES +-- Heading +heading X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Heading, + NUMERATION single-valued, + ID id-hat-heading +} + +-- Heading analyses +rn-requestors X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORDescriptor, + EQUALITY MATCHING-RULE oRDescriptorMatch, + NUMERATION multi-valued, + ID id-hat-rn-requestors +} + +nrn-requestors X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORDescriptor, + EQUALITY MATCHING-RULE oRDescriptorMatch, + NUMERATION multi-valued, + ID id-hat-nrn-requestors +} + +reply-requestors X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORDescriptor, + EQUALITY MATCHING-RULE oRDescriptorMatch, + NUMERATION multi-valued, + ID id-hat-reply-requestors +} + +-- Heading fields +this-ipm X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ThisIPMField, + EQUALITY MATCHING-RULE iPMIdentifierMatch, + NUMERATION single-valued, + ID id-hat-this-ipm +} + +originator X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OriginatorField, + EQUALITY MATCHING-RULE oRDescriptorMatch, + OTHER MATCHING-RULES + {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch | + oRDescriptorSubstringElementsMatch, ...}, + NUMERATION single-valued, + ID id-hat-originator +} + +replied-to-IPM X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX RepliedToIPMField, + EQUALITY MATCHING-RULE iPMIdentifierMatch, + NUMERATION single-valued, + ID id-hat-replied-to-IPM +} + +subject X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SubjectField, + EQUALITY MATCHING-RULE mSStringMatch, + SUBSTRINGS MATCHING-RULE mSSubstringsMatch, + NUMERATION single-valued, + ID id-hat-subject +} + +expiry-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ExpiryTimeField, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-hat-expiry-time +} + +reply-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReplyTimeField, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-hat-reply-time +} + +importance X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ImportanceField, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE + integerOrderingMatch, -- not defined for 1988 Application Contexts + + NUMERATION single-valued, + ID id-hat-importance +} + +sensitivity X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SensitivityField, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE + integerOrderingMatch, -- not defined for 1988 Application Contexts + + NUMERATION single-valued, + ID id-hat-sensitivity +} + +auto-forwarded X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AutoForwardedField, + EQUALITY MATCHING-RULE booleanMatch, + NUMERATION single-valued, + ID id-hat-auto-forwarded +} + +-- Heading sub-fields +authorizing-users X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AuthorizingUsersSubfield, + EQUALITY MATCHING-RULE oRDescriptorMatch, + OTHER MATCHING-RULES + {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch | + oRDescriptorSubstringElementsMatch, ...}, + NUMERATION multi-valued, + ID id-hat-authorizing-users +} + +primary-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PrimaryRecipientsSubfield, + EQUALITY MATCHING-RULE recipientSpecifierMatch, + OTHER MATCHING-RULES + {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch + | recipientSpecifierSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-hat-primary-recipients +} + +copy-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX CopyRecipientsSubfield, + EQUALITY MATCHING-RULE recipientSpecifierMatch, + OTHER MATCHING-RULES + {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch + | recipientSpecifierSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-hat-copy-recipients +} + +blind-copy-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BlindCopyRecipientsSubfield, + EQUALITY MATCHING-RULE recipientSpecifierMatch, + OTHER MATCHING-RULES + {recipientSpecifierElementsMatch | recipientSpecifierSubstringElementsMatch + | recipientSpecifierSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-hat-blind-copy-recipients +} + +obsoleted-IPMs X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ObsoletedIPMsSubfield, + EQUALITY MATCHING-RULE iPMIdentifierMatch, + NUMERATION multi-valued, + ID id-hat-obsoleted-IPMs +} + +related-IPMs X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX RelatedIPMsSubfield, + EQUALITY MATCHING-RULE iPMIdentifierMatch, + NUMERATION multi-valued, + ID id-hat-related-IPMs +} + +reply-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReplyRecipientsSubfield, + EQUALITY MATCHING-RULE oRDescriptorMatch, + OTHER MATCHING-RULES + {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch | + oRDescriptorSubstringElementsMatch, ...}, + NUMERATION multi-valued, + ID id-hat-reply-recipients +} + +-- Heading extensions +incomplete-copy X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IncompleteCopy, + NUMERATION + single-valued, -- An equality match is specified for 1988 + + + -- Application Contexts + ID id-hat-incomplete-copy +} + +languages X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Language, + EQUALITY MATCHING-RULE mSStringMatch, + SUBSTRINGS MATCHING-RULE + mSSubstringsMatch, -- Not defined for 1988 Application Contexts + + NUMERATION multi-valued, + ID id-hat-languages +} + +auto-submitted X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AutoSubmitted, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-hat-auto-submitted +} + +body-part-signatures X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BodyPartSignatures, + NUMERATION single-valued, + ID id-hat-body-part-signatures +} + +ipm-security-label X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMSecurityLabel, + NUMERATION single-valued, + ID id-hat-ipm-security-label +} + +body-part-security-label X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BodyPartSecurityLabel, + NUMERATION multi-valued, + ID id-hat-body-part-security-label +} + +authorization-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AuthorizationTime, + EQUALITY MATCHING-RULE generalizedTimeMatch, + ORDERING MATCHING-RULE generalizedTimeOrderingMatch, + NUMERATION single-valued, + ID id-hat-authorization-time +} + +circulation-list-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX CirculationMember, + EQUALITY MATCHING-RULE circulationMemberMatch, + OTHER MATCHING-RULES + {circulationMemberElementsMatch | circulationMemberSubstringElementsMatch | + circulationMemberSingleElementMatch | circulationMemberCheckmarkMatch, + ...}, + NUMERATION multi-valued, + ID id-hat-circulation-list-recipients +} + +distribution-codes X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DistributionCode, + EQUALITY MATCHING-RULE distributionCodeMatch, + NUMERATION multi-valued, + ID id-hat-distribution-codes +} + +extended-subject X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ExtendedSubject, + EQUALITY MATCHING-RULE mSStringMatch, + SUBSTRINGS MATCHING-RULE mSSubstringsMatch, + NUMERATION single-valued, + ID id-hat-extended-subject +} + +information-category X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX InformationCategory, + EQUALITY MATCHING-RULE informationCategoryMatch, + NUMERATION multi-valued, + ID id-hat-information-category +} + +manual-handling-instructions X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ManualHandlingInstruction, + EQUALITY MATCHING-RULE mSStringMatch, + NUMERATION multi-valued, + ID id-hat-manual-handling-instructions +} + +originators-reference X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OriginatorsReference, + EQUALITY MATCHING-RULE mSStringMatch, + NUMERATION single-valued, + ID id-hat-originators-reference +} + +precedence-policy-identifier X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PrecedencePolicyIdentifier, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION single-valued, + ID id-hat-precedence-policy-id +} + +-- Recipient extensions +precedence X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Precedence, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-hat-precedence +} + +-- Envelope extensions +body-part-encryption-token X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BodyPartTokens, + NUMERATION single-valued, + ID id-hat-body-part-encryption-token +} + +forwarded-content-token X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ForwardedContentToken, + NUMERATION single-valued, + ID id-hat-forwarded-content-token +} + +forwarding-token X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageToken, + NUMERATION single-valued, + ID id-hat-forwarding-token +} + +-- BODY ATTRIBUTES +-- Body +body X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Body, + NUMERATION single-valued, + ID id-bat-body +} + +-- Extended body part types +extended-body-part-types X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION multi-valued, + ID id-bat-extended-body-part-types +} + +-- Extended body parts +-- (These attributes cannot be enumerated. See 19.6.3.3.) +-- (They may be derived using the following parameterized object assignments:) +extended-body-part-data-attribute{EXTENDED-BODY-PART-TYPE:ebpt} X413ATTRIBUTE + ::= { + WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.&data.&Type, + NUMERATION multi-valued, + ID ebpt.&data.&id +} + +extended-body-part-parameters-attribute{EXTENDED-BODY-PART-TYPE:ebpt} + X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX [0] EXPLICIT ebpt.¶meters.&Type, + NUMERATION multi-valued, + ID ebpt.¶meters.&id +} + +-- Basic body parts +ia5-text-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IA5TextBodyPart, + NUMERATION multi-valued, + ID id-bat-ia5-text-body-parts +} + +g3-facsimile-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX G3FacsimileBodyPart, + NUMERATION multi-valued, + ID id-bat-g3-facsimile-body-parts +} + +g4-class1-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX G4Class1BodyPart, + NUMERATION multi-valued, + ID id-bat-g4-class1-body-parts +} + +teletex-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX TeletexBodyPart, + NUMERATION multi-valued, + ID id-bat-teletex-body-parts +} + +videotex-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX VideotexBodyPart, + NUMERATION multi-valued, + ID id-bat-videotex-body-parts +} + +encrypted-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX EncryptedBodyPart, + NUMERATION multi-valued, + ID id-bat-encrypted-body-parts +} + +message-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + NUMERATION multi-valued, + ID id-bat-message-body-parts +} + +mixed-mode-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MixedModeBodyPart, + NUMERATION multi-valued, + ID id-bat-mixed-mode-body-parts +} + +bilaterally-defined-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BilaterallyDefinedBodyPart, + NUMERATION multi-valued, + ID id-bat-bilaterally-defined-body-parts +} + +nationally-defined-body-parts X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX NationallyDefinedBodyPart, + NUMERATION multi-valued, + ID id-bat-nationally-defined-body-parts +} + +-- Basic body part parameters components +ia5-text-parameters X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IA5TextParameters, + NUMERATION multi-valued, + ID id-bat-ia5-text-parameters +} + +g3-facsimile-parameters X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX G3FacsimileParameters, + NUMERATION multi-valued, + ID id-bat-g3-facsimile-parameters +} + +teletex-parameters X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX TeletexParameters, + NUMERATION multi-valued, + ID id-bat-teletex-parameters +} + +videotex-parameters X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX VideotexParameters, + NUMERATION multi-valued, + ID id-bat-videotex-parameters +} + +encrypted-parameters X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX EncryptedParameters, + NUMERATION multi-valued, + ID id-bat-encrypted-parameters +} + +message-parameters X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageParameters, + NUMERATION multi-valued, + ID id-bat-message-parameters +} + +-- Basic body part data components +ia5-text-data X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IA5TextData, + NUMERATION multi-valued, + ID id-bat-ia5-text-data +} + +g3-facsimile-data X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX G3FacsimileData, + NUMERATION multi-valued, + ID id-bat-g3-facsimile-data +} + +teletex-data X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX TeletexData, + NUMERATION multi-valued, + ID id-bat-teletex-data +} + +videotex-data X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX VideotexData, + NUMERATION multi-valued, + ID id-bat-videotex-data +} + +encrypted-data X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX EncryptedData, + NUMERATION multi-valued, + ID id-bat-encrypted-data +} + +message-data X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageData, + NUMERATION multi-valued, + ID id-bat-message-data +} + +-- NOTIFICATION ATTRIBUTES +-- Common fields +subject-ipm X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SubjectIPMField, + EQUALITY MATCHING-RULE iPMIdentifierMatch, + NUMERATION single-valued, + ID id-nat-subject-ipm +} + +ipn-originator X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPNOriginatorField, + EQUALITY MATCHING-RULE oRDescriptorMatch, + OTHER MATCHING-RULES + {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch | + oRDescriptorSubstringElementsMatch, ...}, + NUMERATION single-valued, + ID id-nat-ipn-originator +} + +ipm-intended-recipient X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMIntendedRecipientField, + EQUALITY MATCHING-RULE oRDescriptorMatch, + OTHER MATCHING-RULES + {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch | + oRDescriptorSubstringElementsMatch, ...}, + NUMERATION single-valued, + ID id-nat-ipm-intended-recipient +} + +conversion-eits X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MS-EIT, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION multi-valued, + ID id-nat-conversion-eits +} + +notification-extensions X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMSExtension {{NotificationExtensions}}, + NUMERATION multi-valued, + ID id-nat-notification-extensions +} + +-- Non-receipt fields +non-receipt-reason X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX NonReceiptReasonField, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-nat-non-receipt-reason +} + +discard-reason X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DiscardReasonField, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-nat-discard-reason +} + +auto-forward-comment X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AutoForwardCommentField, + EQUALITY MATCHING-RULE mSStringMatch, + SUBSTRINGS MATCHING-RULE mSSubstringsMatch, + NUMERATION single-valued, + ID id-nat-auto-forward-comment +} + +returned-ipm X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReturnedIPMField, + NUMERATION single-valued, + ID id-nat-returned-ipm +} + +nrn-extensions X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMSExtension {{NRNExtensions}}, + NUMERATION multi-valued, + ID id-nat-nrn-extensions +} + +-- Receipt fields +receipt-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReceiptTimeField, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-nat-receipt-time +} + +acknowledgment-mode X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AcknowledgmentModeField, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-nat-acknowledgment-mode +} + +suppl-receipt-info X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SupplReceiptInfoField, + EQUALITY MATCHING-RULE mSStringMatch, + SUBSTRINGS MATCHING-RULE mSSubstringsMatch, + NUMERATION single-valued, + ID id-nat-suppl-receipt-info +} + +rn-extensions X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMSExtension {{RNExtensions}}, + NUMERATION multi-valued, + ID id-nat-rn-extensions +} + +-- Other notification type fields +other-notification-type-fields X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMSExtension {{OtherNotifications}}, + NUMERATION multi-valued, + ID id-nat-other-notification-type-fields +} + +-- CORRELATION ATTRIBUTES +-- Common attributes +ac-forwarding-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-forwarding-ipms +} + +ac-forwarded-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-forwarded-ipms +} + +ac-obsoleting-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-obsoleting-ipms +} + +ac-obsoleted-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMLocation, + OTHER MATCHING-RULES {iPMLocationMatch, ...}, + NUMERATION multi-valued, + ID id-cat-obsoleted-ipms +} + +IPMLocation ::= CHOICE {stored SET OF SequenceNumber, + absent NULL, + ... +} + +ac-relating-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-relating-ipms +} + +ac-related-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX IPMLocation, + OTHER MATCHING-RULES {iPMLocationMatch, ...}, + NUMERATION multi-valued, + ID id-cat-related-ipms +} + +ac-replied-to-ipm X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-replied-to-ipm +} + +ac-replying-ipms X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-replying-ipms +} + +ac-subject-ipm X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-subject-ipm +} + +-- Submitted message correlation +ac-ipm-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORDescriptor, + EQUALITY MATCHING-RULE oRDescriptorMatch, + OTHER MATCHING-RULES + {oRDescriptorElementsMatch | oRDescriptorSingleElementMatch | + oRDescriptorSubstringElementsMatch, ...}, + NUMERATION multi-valued, + ID id-cat-ipm-recipients +} + +ac-delivered-replies-summary X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DeliveredReplyStatus, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-delivered-replies-summary +} + +DeliveredReplyStatus ::= INTEGER { + no-reply-requested(0) -- reply not requested --, + reply-outstanding(1) -- reply requested --, reply-received(2)} + +ac-correlated-delivered-replies X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredReplies, + NUMERATION multi-valued, + ID id-cat-correlated-delivered-replies +} + +CorrelatedDeliveredReplies ::= CHOICE { + no-reply-received [0] NULL, + received-replies [1] SEQUENCE OF SequenceNumber +} + +ac-delivered-ipn-summary X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DeliveredIPNStatus, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-delivered-ipn-summary +} + +DeliveredIPNStatus ::= INTEGER { + no-ipn-requested(0), an-requested(3), nrn-requested(5), rn-requested(10), + an-received(13), ipm-auto-forwarded(15), ipm-discarded(20), rn-received(25) +} + +ac-correlated-delivered-ipns X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX CorrelatedDeliveredIPNs, + NUMERATION multi-valued, + ID id-cat-correlated-delivered-ipns +} + +CorrelatedDeliveredIPNs ::= CHOICE { + no-ipn-received [0] NULL, + ipns-received [1] SEQUENCE OF SequenceNumber +} + +-- Delivered message correlation +ac-submitted-reply-status X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SubmittedReplyStatus, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-cat-submitted-reply-status +} + +SubmittedReplyStatus ::= INTEGER { + no-reply-requested(0), no-reply-intended(1), reply-pending(2), reply-sent(3) +} + +ac-submitted-ipn-status X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SubmittedIPNStatus, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-cat-submitted-ipn-status +} + +SubmittedIPNStatus ::= INTEGER { + no-ipn-requested(0), nrn-requested(5), nrn-with-ipm-return-requested(10), + rn-requested(15), rn-with-ipm-return-requested(20), ipm-auto-forwarded(25), + ipm-discarded(30), rn-sent(35)} + +ac-submitted-ipns X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-cat-submitted-ipns +} + +recipient-category X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX RecipientCategory, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-cat-recipient-category +} + +RecipientCategory ::= INTEGER { + primary-recipient(0), copy-recipient(1), blind-copy-recipient(2), + category-unknown(3), circulation-list(4)} + +revised-reply-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReplyTimeField, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-cat-revised-reply-time +} + +-- MATCHING-RULES +IPMMatchingRuleTable MATCHING-RULE ::= + {iPMIdentifierMatch | oRDescriptorMatch | recipientSpecifierMatch, + ... -- 1994 extension additions --, circulationMemberCheckmarkMatch | + circulationMemberElementsMatch | circulationMemberMatch | + circulationMemberSingleElementMatch | + circulationMemberSubstringElementsMatch | distributionCodeMatch | + informationCategoryMatch | iPMLocationMatch | oRDescriptorElementsMatch | + oRDescriptorSingleElementMatch | oRDescriptorSubstringElementsMatch | + recipientSpecifierElementsMatch | recipientSpecifierSingleElementMatch | + recipientSpecifierSubstringElementsMatch} + +iPMIdentifierMatch MATCHING-RULE ::= { + SYNTAX IPMIdentifier + ID id-mr-ipm-identifier +} + +iPMLocationMatch MATCHING-RULE ::= { + SYNTAX SequenceNumber + ID id-mr-ipm-location +} + +oRDescriptorMatch MATCHING-RULE ::= { + SYNTAX ORDescriptor + ID id-mr-or-descriptor +} + +oRDescriptorElementsMatch MATCHING-RULE ::= { + SYNTAX ORDescriptor + ID id-mr-or-descriptor-elements +} + +oRDescriptorSubstringElementsMatch MATCHING-RULE ::= { + SYNTAX ORDescriptor + ID id-mr-or-descriptor-substring-elements +} + +oRDescriptorSingleElementMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-or-descriptor-single-element +} + +recipientSpecifierMatch MATCHING-RULE ::= { + SYNTAX RecipientSpecifier + ID id-mr-recipient-specifier +} + +recipientSpecifierElementsMatch MATCHING-RULE ::= { + SYNTAX RecipientSpecifier + ID id-mr-recipient-specifier-elements +} + +recipientSpecifierSubstringElementsMatch MATCHING-RULE ::= { + SYNTAX RecipientSpecifier + ID id-mr-recipient-specifier-substring-elements +} + +recipientSpecifierSingleElementMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-recipient-specifier-single-element +} + +circulationMemberMatch MATCHING-RULE ::= { + SYNTAX CirculationMember + ID id-mr-circulation-member +} + +circulationMemberElementsMatch MATCHING-RULE ::= { + SYNTAX CirculationMember + ID id-mr-circulation-member-elements +} + +circulationMemberSubstringElementsMatch MATCHING-RULE ::= { + SYNTAX CirculationMember + ID id-mr-circulation-member-substring-elements +} + +circulationMemberSingleElementMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-circulation-member-single-element +} + +circulationMemberCheckmarkMatch MATCHING-RULE ::= { + SYNTAX CirculationMember + ID id-mr-circulation-member-checkmark +} + +distributionCodeMatch MATCHING-RULE ::= { + SYNTAX DistributionCode + ID id-mr-distribution-code +} + +informationCategoryMatch MATCHING-RULE ::= { + SYNTAX InformationCategory + ID id-mr-information-category +} + +END -- of IPMSMessageStoreAttributes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn new file mode 100644 index 0000000000..6e5c01ab40 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers.asn @@ -0,0 +1,507 @@ +-- Module IPMSObjectIdentifiers (X.420:06/1999) +IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS -- nothing -- ; + +ID ::= OBJECT IDENTIFIER + +-- Interpersonal Messaging (not definitive) +id-ipms ID ::= + {joint-iso-itu-t mhs(6) ipms(1)} -- not definitive + +-- Categories +id-mod ID ::= {id-ipms 0} -- modules; not definitive + +id-ot ID ::= {id-ipms 1} -- object types + +id-pt ID ::= {id-ipms 2} -- port types + +id-et ID ::= {id-ipms 4} -- extended body part types + +id-hex ID ::= {id-ipms 5} -- heading extensions + +id-sat ID ::= {id-ipms 6} -- summary attributes + +id-hat ID ::= {id-ipms 7} -- heading attributes + +id-bat ID ::= {id-ipms 8} -- body attributes + +id-nat ID ::= {id-ipms 9} -- notification attributes + +id-mct ID ::= {id-ipms 10} -- message content types + +id-ep ID ::= {id-ipms 11} -- extended body part parameters + +id-eit ID ::= {id-ipms 12} -- encoded information types + +id-cat ID ::= {id-ipms 13} -- correlation attributes + +id-mr ID ::= {id-ipms 14} -- matching-rules + +id-aa ID ::= {id-ipms 15} -- auto-actions + +id-aae ID ::= {id-ipms 16} -- auto-action errors + +id-mst ID ::= {id-ipms 17} -- message store types + +id-sec ID ::= {id-ipms 18} -- ipm security extensions + +id-on ID ::= {id-ipms 19} -- other notification type extensions + +id-rex ID ::= {id-ipms 20} -- recipient extensions + +-- Modules +id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive + +id-mod-functional-objects ID ::= {id-mod 1} -- not definitive + +id-mod-information-objects ID ::= {id-mod 2} -- not definitive + +id-mod-abstract-service ID ::= {id-mod 3} -- not definitive + +id-mod-heading-extensions ID ::= {id-mod 6} -- not definitive + +id-mod-extended-body-part-types ID ::= {id-mod 7} -- not definitive + +id-mod-message-store-attributes ID ::= {id-mod 8} -- not definitive + +id-mod-file-transfer-body-part-type ID ::= {id-mod 9} -- not definitive + +id-mod-upper-bounds ID ::= {id-mod 10} -- not definitive + +id-mod-extended-voice-body-part-type ID ::= {id-mod 11} -- not definitive + +id-mod-forwarded-report-body-part-type ID ::= {id-mod 12} -- not definitive + +id-mod-auto-actions ID ::= {id-mod 13} -- not definitive + +id-mod-ipm-security-extensions ID ::= {id-mod 14} -- not definitive + +id-mod-forwarded-content-body-part-type ID ::= {id-mod 15} -- not definitive + +id-mod-pkcs7-body-part-type ID ::= {id-mod 16} -- not definitive + +-- Object types +id-ot-ipms-user ID ::= {id-ot 1} + +id-ot-ipms ID ::= {id-ot 2} + +-- Port types +id-pt-origination ID ::= {id-pt 0} + +id-pt-reception ID ::= {id-pt 1} + +id-pt-management ID ::= {id-pt 2} + +-- Extended body part types +id-et-ia5-text ID ::= {id-et 0} + +id-et-g3-facsimile ID ::= {id-et 2} + +id-et-g4-class1 ID ::= {id-et 3} + +id-et-teletex ID ::= {id-et 4} + +id-et-videotex ID ::= {id-et 5} + +id-et-encrypted ID ::= {id-et 6} + +id-et-message ID ::= {id-et 7} + +id-et-mixed-mode ID ::= {id-et 8} + +id-et-bilaterally-defined ID ::= {id-et 9} + +id-et-nationally-defined ID ::= {id-et 10} + +id-et-general-text ID ::= {id-et 11} + +id-et-file-transfer ID ::= {id-et 12} + +-- Value {id-et 13} is no longer defined +id-et-report ID ::= {id-et 14} + +id-et-notification ID ::= {id-et 15} + +id-et-voice ID ::= {id-et 16} + +id-et-content ID ::= + {id-et 17} -- This value is not used directly, only as a prefix + +id-et-pkcs7 ID ::= {id-et 18} + +-- Heading extensions +id-hex-incomplete-copy ID ::= {id-hex 0} + +id-hex-languages ID ::= {id-hex 1} + +id-hex-auto-submitted ID ::= {id-hex 2} + +id-hex-body-part-signatures ID ::= {id-hex 3} + +id-hex-ipm-security-label ID ::= {id-hex 4} + +id-hex-authorization-time ID ::= {id-hex 5} + +id-hex-circulation-list-recipients ID ::= {id-hex 6} + +id-hex-distribution-codes ID ::= {id-hex 7} + +id-hex-extended-subject ID ::= {id-hex 8} + +id-hex-information-category ID ::= {id-hex 9} + +id-hex-manual-handling-instructions ID ::= {id-hex 10} + +id-hex-originators-reference ID ::= {id-hex 11} + +id-hex-precedence-policy-id ID ::= {id-hex 12} + +-- Summary attributes +id-sat-ipm-entry-type ID ::= {id-sat 0} + +id-sat-ipm-synopsis ID ::= {id-sat 1} + +id-sat-body-parts-summary ID ::= {id-sat 2} + +id-sat-ipm-auto-discarded ID ::= {id-sat 3} + +-- Heading attributes +id-hat-heading ID ::= {id-hat 0} + +id-hat-this-ipm ID ::= {id-hat 1} + +id-hat-originator ID ::= {id-hat 2} + +id-hat-replied-to-IPM ID ::= {id-hat 3} + +id-hat-subject ID ::= {id-hat 4} + +id-hat-expiry-time ID ::= {id-hat 5} + +id-hat-reply-time ID ::= {id-hat 6} + +id-hat-importance ID ::= {id-hat 7} + +id-hat-sensitivity ID ::= {id-hat 8} + +id-hat-auto-forwarded ID ::= {id-hat 9} + +id-hat-authorizing-users ID ::= {id-hat 10} + +id-hat-primary-recipients ID ::= {id-hat 11} + +id-hat-copy-recipients ID ::= {id-hat 12} + +id-hat-blind-copy-recipients ID ::= {id-hat 13} + +id-hat-obsoleted-IPMs ID ::= {id-hat 14} + +id-hat-related-IPMs ID ::= {id-hat 15} + +id-hat-reply-recipients ID ::= {id-hat 16} + +id-hat-incomplete-copy ID ::= {id-hat 17} + +id-hat-languages ID ::= {id-hat 18} + +id-hat-rn-requestors ID ::= {id-hat 19} + +id-hat-nrn-requestors ID ::= {id-hat 20} + +id-hat-reply-requestors ID ::= {id-hat 21} + +id-hat-auto-submitted ID ::= {id-hat 22} + +id-hat-body-part-signatures ID ::= {id-hat 23} + +id-hat-ipm-security-label ID ::= {id-hat 24} + +id-hat-body-part-security-label ID ::= {id-hat 25} + +id-hat-body-part-encryption-token ID ::= {id-hat 26} + +id-hat-authorization-time ID ::= {id-hat 27} + +id-hat-circulation-list-recipients ID ::= {id-hat 28} + +id-hat-distribution-codes ID ::= {id-hat 29} + +id-hat-extended-subject ID ::= {id-hat 30} + +id-hat-information-category ID ::= {id-hat 31} + +id-hat-manual-handling-instructions ID ::= {id-hat 32} + +id-hat-originators-reference ID ::= {id-hat 33} + +id-hat-precedence-policy-id ID ::= {id-hat 34} + +id-hat-forwarded-content-token ID ::= {id-hat 35} + +id-hat-forwarding-token ID ::= {id-hat 36} + +id-hat-precedence ID ::= {id-hat 37} + +id-hat-body-part-signature-verification-status ID ::= {id-hat 38} + +-- Body attributes +id-bat-body ID ::= {id-bat 0} + +id-bat-ia5-text-body-parts ID ::= {id-bat 1} + +id-bat-g3-facsimile-body-parts ID ::= {id-bat 3} + +id-bat-g4-class1-body-parts ID ::= {id-bat 4} + +id-bat-teletex-body-parts ID ::= {id-bat 5} + +id-bat-videotex-body-parts ID ::= {id-bat 6} + +id-bat-encrypted-body-parts ID ::= {id-bat 7} + +id-bat-message-body-parts ID ::= {id-bat 8} + +id-bat-mixed-mode-body-parts ID ::= {id-bat 9} + +id-bat-bilaterally-defined-body-parts ID ::= {id-bat 10} + +id-bat-nationally-defined-body-parts ID ::= {id-bat 11} + +id-bat-extended-body-part-types ID ::= {id-bat 12} + +id-bat-ia5-text-parameters ID ::= {id-bat 13} + +id-bat-g3-facsimile-parameters ID ::= {id-bat 15} + +id-bat-teletex-parameters ID ::= {id-bat 16} + +id-bat-videotex-parameters ID ::= {id-bat 17} + +id-bat-encrypted-parameters ID ::= {id-bat 18} + +id-bat-message-parameters ID ::= {id-bat 19} + +id-bat-ia5-text-data ID ::= {id-bat 20} + +id-bat-g3-facsimile-data ID ::= {id-bat 22} + +id-bat-teletex-data ID ::= {id-bat 23} + +id-bat-videotex-data ID ::= {id-bat 24} + +id-bat-encrypted-data ID ::= {id-bat 25} + +id-bat-message-data ID ::= {id-bat 26} + +-- Notification attributes +id-nat-subject-ipm ID ::= {id-nat 0} + +id-nat-ipn-originator ID ::= {id-nat 1} + +id-nat-ipm-intended-recipient ID ::= {id-nat 2} + +id-nat-conversion-eits ID ::= {id-nat 3} + +id-nat-non-receipt-reason ID ::= {id-nat 4} + +id-nat-discard-reason ID ::= {id-nat 5} + +id-nat-auto-forward-comment ID ::= {id-nat 6} + +id-nat-returned-ipm ID ::= {id-nat 7} + +id-nat-receipt-time ID ::= {id-nat 8} + +id-nat-acknowledgment-mode ID ::= {id-nat 9} + +id-nat-suppl-receipt-info ID ::= {id-nat 10} + +id-nat-notification-extensions ID ::= {id-nat 11} + +id-nat-nrn-extensions ID ::= {id-nat 12} + +id-nat-rn-extensions ID ::= {id-nat 13} + +id-nat-other-notification-type-fields ID ::= {id-nat 14} + +-- Correlation attributes +id-cat-correlated-delivered-ipns ID ::= {id-cat 0} + +id-cat-correlated-delivered-replies ID ::= {id-cat 1} + +id-cat-delivered-ipn-summary ID ::= {id-cat 2} + +id-cat-delivered-replies-summary ID ::= {id-cat 3} + +id-cat-forwarded-ipms ID ::= {id-cat 4} + +id-cat-forwarding-ipms ID ::= {id-cat 5} + +id-cat-ipm-recipients ID ::= {id-cat 6} + +id-cat-obsoleted-ipms ID ::= {id-cat 7} + +id-cat-obsoleting-ipms ID ::= {id-cat 8} + +id-cat-related-ipms ID ::= {id-cat 9} + +id-cat-relating-ipms ID ::= {id-cat 10} + +id-cat-replied-to-ipm ID ::= {id-cat 11} + +id-cat-replying-ipms ID ::= {id-cat 12} + +id-cat-revised-reply-time ID ::= {id-cat 13} + +id-cat-submitted-ipn-status ID ::= {id-cat 14} + +id-cat-submitted-ipns ID ::= {id-cat 15} + +id-cat-submitted-reply-status ID ::= {id-cat 16} + +id-cat-subject-ipm ID ::= {id-cat 17} + +id-cat-recipient-category ID ::= {id-cat 18} + +-- Message content types (for use by MS and Directory) +id-mct-p2-1984 ID ::= + {id-mct 0} -- P2 1984 + +id-mct-p2-1988 ID ::= {id-mct 1} -- P2 1988 + +-- Extended body part parameters +id-ep-ia5-text ID ::= {id-ep 0} + +id-ep-g3-facsimile ID ::= {id-ep 2} + +id-ep-teletex ID ::= {id-ep 4} + +id-ep-videotex ID ::= {id-ep 5} + +id-ep-encrypted ID ::= {id-ep 6} + +id-ep-message ID ::= {id-ep 7} + +id-ep-general-text ID ::= {id-ep 11} + +id-ep-file-transfer ID ::= {id-ep 12} + +-- Value {id-ep 13} is no longer defined +id-ep-notification ID ::= {id-ep 15} + +id-ep-voice ID ::= {id-ep 16} + +id-ep-content ID ::= + {id-ep 17} -- This value is not used directly, only as a prefix + +-- Encoded Information Types +id-eit-file-transfer ID ::= {id-eit 0} + +id-eit-voice ID ::= {id-eit 1} + +-- Voice Encoded Information Types +id-voice-11khz-sample ID ::= + {id-eit-voice 0} + +id-voice-22khz-sample ID ::= {id-eit-voice 1} + +id-voice-cd-quality ID ::= {id-eit-voice 2} + +id-voice-g711-mu-law ID ::= {id-eit-voice 3} + +id-voice-g726-32k-adpcm ID ::= {id-eit-voice 4} + +id-voice-g728-16k-ld-celp ID ::= {id-eit-voice 5} + +-- Matching-rules +id-mr-ipm-identifier ID ::= {id-mr 0} + +id-mr-or-descriptor ID ::= {id-mr 1} + +id-mr-or-descriptor-elements ID ::= {id-mr 2} + +id-mr-or-descriptor-substring-elements ID ::= {id-mr 3} + +id-mr-recipient-specifier ID ::= {id-mr 4} + +id-mr-recipient-specifier-elements ID ::= {id-mr 5} + +id-mr-recipient-specifier-substring-elements ID ::= {id-mr 6} + +id-mr-ipm-location ID ::= {id-mr 7} + +id-mr-or-descriptor-single-element ID ::= {id-mr 8} + +id-mr-recipient-specifier-single-element ID ::= {id-mr 9} + +id-mr-circulation-member ID ::= {id-mr 10} + +id-mr-circulation-member-elements ID ::= {id-mr 11} + +id-mr-circulation-member-substring-elements ID ::= {id-mr 12} + +id-mr-circulation-member-single-element ID ::= {id-mr 13} + +id-mr-circulation-member-checkmark ID ::= {id-mr 14} + +id-mr-distribution-code ID ::= {id-mr 15} + +id-mr-information-category ID ::= {id-mr 16} + +-- Auto-actions +id-aa-ipm-auto-acknowledgement ID ::= {id-aa 0} + +id-aa-ipm-auto-correlate ID ::= {id-aa 1} + +id-aa-ipm-auto-discard ID ::= {id-aa 2} + +id-aa-ipm-auto-advise ID ::= {id-aa 3} + +-- Auto-action-errors +id-aae-auto-discard-error ID ::= {id-aae 0} + +id-aae-auto-forwarding-loop ID ::= {id-aae 1} + +id-aae-duplicate-ipn ID ::= {id-aae 2} + +-- Message Store types +id-mst-invalid-assembly-instructions ID ::= {id-mst 0} + +id-mst-invalid-ipn ID ::= {id-mst 1} + +id-mst-assembly-instructions ID ::= {id-mst 2} + +id-mst-suspend-auto-acknowledgement ID ::= {id-mst 3} + +id-mst-prevent-nrn-generation ID ::= {id-mst 4} + +id-mst-originator-body-part-encryption-token ID ::= {id-mst 5} + +id-mst-originator-forwarded-content-token ID ::= {id-mst 6} + +id-mst-assembly-capability ID ::= {id-mst 7} + +-- Security extensions +id-sec-ipm-security-request ID ::= {id-sec 0} + +id-sec-security-common-fields ID ::= {id-sec 1} + +-- Other notification types +id-on-absence-advice ID ::= {id-on 0} + +id-on-change-of-address-advice ID ::= {id-on 1} + +-- Recipient extensions +id-rex-circulation-list-indicator ID ::= {id-rex 0} + +id-rex-precedence ID ::= {id-rex 1} + +END -- of IPMSObjectIdentifiers + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn new file mode 100644 index 0000000000..2b46b27b3e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSObjectIdentifiers2.asn @@ -0,0 +1,33 @@ +-- Module IPMSObjectIdentifiers2 (X.420:06/1999) +IPMSObjectIdentifiers2 {iso standard mhs(10021) ipms(7) modules(0) + object-identifiers(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS -- nothing -- ; + +ID ::= OBJECT IDENTIFIER + +-- Interpersonal Messaging (ISO/IEC extensions) +id-iso-ipms ID ::= + {iso standard mhs(10021) ipms(7)} + +-- Categories +id-iso-mod ID ::= {id-iso-ipms 0} -- modules; not definitive + +id-iso-cs ID ::= {id-iso-ipms 1} -- character sets + +-- Modules +id-mod-object-identifiers-2 ID ::= {id-iso-mod 0} -- not definitive + +id-mod-extended-body-part-types-2 ID ::= {id-iso-mod 1} -- not definitive + +-- Registration Authority for General Text Character Set EITs +id-cs-eit-authority ID ::= + {id-iso-cs 0} + +END -- of IPMSObjectIdentifiers2 + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn new file mode 100644 index 0000000000..8c692ccb31 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSSecurityExtensions.asn @@ -0,0 +1,143 @@ +-- Module IPMSSecurityExtensions (X.420:06/1999) +IPMSSecurityExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + ipm-security-extensions(14) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + -- MTS Abstract Service + Certificates, Content, ContentIntegrityCheck, ExtendedCertificates, + EXTENSION, MessageOriginAuthenticationCheck, MessageToken, EncryptionKey + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- IPMS Information Objects + IPMS-EXTENSION + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Heading Extensions + BodyPartNumber + --== + FROM IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) + heading-extensions(6) version-1999(1)} + -- Directory Authentication Framework + AlgorithmIdentifier, ENCRYPTED{} + --== + FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) + authenticationFramework(7) 3} + -- Directory Certificate Extensions + CertificateAssertion + --== + FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1) + certificateExtensions(26) 0} + -- IPMS Object Identifiers + id-sec-ipm-security-request, id-sec-security-common-fields + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- Recipient Security Request +recipient-security-request IPMS-EXTENSION ::= { + VALUE RecipientSecurityRequest, + IDENTIFIED BY id-sec-ipm-security-request +} + +RecipientSecurityRequest ::= BIT STRING { + content-non-repudiation(0), content-proof(1), ipn-non-repudiation(2), + ipn-proof(3)} + +-- IPN Security Response +ipn-security-response IPMS-EXTENSION ::= { + VALUE IpnSecurityResponse, + IDENTIFIED BY id-sec-security-common-fields +} + +IpnSecurityResponse ::= SET { + content-or-arguments + CHOICE {original-content OriginalContent, + original-security-arguments + SET {original-content-integrity-check + [0] OriginalContentIntegrityCheck OPTIONAL, + original-message-origin-authentication-check + [1] OriginalMessageOriginAuthenticationCheck OPTIONAL, + original-message-token + [2] OriginalMessageToken OPTIONAL}}, + security-diagnostic-code SecurityDiagnosticCode OPTIONAL +} + +-- MTS security fields +OriginalContent ::= Content + +OriginalContentIntegrityCheck ::= ContentIntegrityCheck + +OriginalMessageOriginAuthenticationCheck ::= MessageOriginAuthenticationCheck + +OriginalMessageToken ::= MessageToken + +-- Security Diagnostic Codes +SecurityDiagnosticCode ::= INTEGER { + integrity-failure-on-subject-message(0), + integrity-failure-on-forwarded-message(1), + moac-failure-on-subject-message(2), unsupported-security-policy(3), + unsupported-algorithm-identifier(4), decryption-failed(5), token-error(6), + unable-to-sign-notification(7), unable-to-sign-message-receipt(8), + authentication-failure-on-subject-message(9), + security-context-failure-message(10), message-sequence-failure(11), + message-security-labelling-failure(12), repudiation-failure-of-message(13), + failure-of-proof-of-message(14), signature-key-unobtainable(15), + decryption-key-unobtainable(16), key-failure(17), + unsupported-request-for-security-service(18), + inconsistent-request-for-security-service(19), + ipn-non-repudiation-provided-instead-of-content-proof(20), + token-decryption-failed(21), double-enveloping-message-restoring-failure(22), + unauthorised-dl-member(23), reception-security-failure(24), + unsuitable-alternate-recipient(25), security-services-refusal(26), + unauthorised-recipient(27), unknown-certification-authority-name(28), + unknown-dl-name(29), unknown-originator-name(30), unknown-recipient-name(31), + security-policy-violation(32)} + +-- Security Envelope Extensions +body-part-encryption-token EXTENSION ::= { + BodyPartTokens, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:43 +} + +BodyPartTokens ::= + SET OF + SET {body-part-number BodyPartNumber, + body-part-choice + CHOICE {encryption-token EncryptionToken, + message-or-content-body-part [0] BodyPartTokens} + } + +EncryptionToken ::= SET { + encryption-algorithm-identifier AlgorithmIdentifier, + encrypted-key ENCRYPTED{EncryptionKey}, + recipient-certificate-selector [0] CertificateAssertion OPTIONAL, + recipient-certificate [1] Certificates OPTIONAL, + originator-certificate-selector [2] CertificateAssertion OPTIONAL, + originator-certificates [3] ExtendedCertificates OPTIONAL, + ... +} + +forwarded-content-token EXTENSION ::= { + ForwardedContentToken, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:44 +} + +ForwardedContentToken ::= + SET OF + SET {body-part-number BodyPartNumber, + body-part-choice + CHOICE {forwarding-token MessageToken, + message-or-content-body-part ForwardedContentToken + }} + +END -- of IPMSSecurityExtensions + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn new file mode 100644 index 0000000000..27324f614f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/IPMSUpperBounds.asn @@ -0,0 +1,46 @@ +-- Module IPMSUpperBounds (X.420:06/1999) +IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) upper-bounds(10) + version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS -- nothing -- ; + +-- Upper bounds +ub-alpha-code-length INTEGER ::= 16 + +ub-auto-forward-comment INTEGER ::= 256 + +ub-circulation-list-members INTEGER ::= 256 + +ub-distribution-codes INTEGER ::= 16 + +ub-extended-subject-length INTEGER ::= 256 + +ub-free-form-name INTEGER ::= 64 + +ub-information-categories INTEGER ::= 16 + +ub-information-category-length INTEGER ::= 64 + +ub-ipm-identifier-suffix INTEGER ::= 2 + +ub-local-ipm-identifier INTEGER ::= 64 + +ub-manual-handling-instruction-length INTEGER ::= 128 + +ub-manual-handling-instructions INTEGER ::= 16 + +ub-originators-reference-length INTEGER ::= 64 + +ub-precedence INTEGER ::= 127 + +ub-subject-field INTEGER ::= 128 + +ub-telephone-number INTEGER ::= 32 + +END -- of IPMSUpperBounds + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn b/lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn new file mode 100644 index 0000000000..b7efd7417e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn @@ -0,0 +1,459 @@ +-- Module ISO-STANDARD-9541-FONT-ATTRIBUTE-SET (ISO:1991) +-- +-- Copyright � ISO/IEC 1991. This version of +-- this ASN.1 module is part of ISO|IEC 9541-2:1991; +-- see the ISO|IEC text itself for full legal notices. +-- +ISO-STANDARD-9541-FONT-ATTRIBUTE-SET {1 0 9541 2 2} DEFINITIONS ::= +BEGIN + +EXPORTS Font-Attribute-Set; + +IMPORTS Structured-Name + FROM ISO9541-SN {1 0 9541 2 3}; + +Font-Attribute-Set ::= SEQUENCE { + name-prefixes [0] IMPLICIT SET OF Name-Prefix OPTIONAL, + iso-standard-9541-fontname [1] IMPLICIT Global-Name OPTIONAL, + iso-standard-9541-fontdescription [2] IMPLICIT Font-Description OPTIONAL, + iso-standard-9541-wrmodes [3] IMPLICIT Writing-Modes OPTIONAL, + non-iso-properties [5] IMPLICIT Property-List OPTIONAL +} + +Font-Description ::= SET { + iso-standard-9541-dataversion [0] IMPLICIT Data-Version OPTIONAL, + iso-standard-9541-Standardversion [1] IMPLICIT Cardinal OPTIONAL, + iso-standard-9541-datasource [2] IMPLICIT Global-Name OPTIONAL, + iso-standard-9541-datacopyright [3] Message OPTIONAL, + iso-standard-9541-dsnsource [4] IMPLICIT Global-Name OPTIONAL, + iso-standard-9541-dsncopyright [5] Message OPTIONAL, + iso-standard-9541-relunits [6] IMPLICIT Cardinal DEFAULT 1, + iso-standard-9541-typeface [7] Message OPTIONAL, + iso-standard-9541-fontfamily [8] Match-String OPTIONAL, + iso-standard-9541-posture [9] IMPLICIT Posture-Code OPTIONAL, + iso-standard-9541-postureangle [10] IMPLICIT Angle OPTIONAL, + iso-standard-9541-weight [11] IMPLICIT Weight-Code OPTIONAL, + iso-standard-9541-propwidth [12] IMPLICIT Width-Code OPTIONAL, + iso-standard-9541-glyphcomp [13] IMPLICIT Glyph-Complement OPTIONAL, + iso-standard-9541-nomwrmode [14] IMPLICIT Global-Name OPTIONAL, + iso-standard-9541-dsnsize [15] IMPLICIT Rational OPTIONAL, + iso-standard-9541-minsize [16] IMPLICIT Rational OPTIONAL, + iso-standard-9541-maxsize [17] IMPLICIT Rational OPTIONAL, + iso-standard-9541-capheight [18] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-lcheight [19] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-dsngroup [20] IMPLICIT Design-Group OPTIONAL, + iso-standard-9541-structure [21] IMPLICIT Structure-Code OPTIONAL, + iso-standard-9541-minfeatsz [22] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-nomcapstemwidth [23] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-nomlcstemwidth [24] IMPLICIT Rel-Rational OPTIONAL, + non-iso-properties [25] IMPLICIT Property-List OPTIONAL +} + +Name-Prefix ::= SEQUENCE { + --see NOTE 3 at the end of 6.1 + index [0] IMPLICIT Code, + prefix [1] IMPLICIT Structured-Name +} + +Data-Version ::= SEQUENCE { + major [0] IMPLICIT Cardinal OPTIONAL, + minor [1] IMPLICIT Cardinal OPTIONAL, + timestamp [2] IMPLICIT UTCTime OPTIONAL +} + +Posture-Code ::= INTEGER { + not-applicable(0), upright(1), oblique-forward(2), oblique-backward(3), + italic-forward(4), italic-backward(5), other(6)} + +Weight-Code ::= INTEGER { + not-applicable(0), ultra-light(1), extra-light(2), light(3), semi-light(4), + medium(5), semi-bold(6), bold(7), extra-bold(8), ultra-bold(9)} + +Width-Code ::= INTEGER { + not-applicable(0), ultra-condensed(1), extra-condensed(2), condensed(3), + semi-condensed(4), medium(5), semi-expanded(6), expanded(7), + extra-expanded(8), ultra-expanded(9)} + +Glyph-Complement ::= SEQUENCE { + -- at least one included glyph list or at least one + -- included glyph collection list is mandatory + iso-standard-9541-numglyphs [0] IMPLICIT Cardinal OPTIONAL, + iso-standard-9541-incglyphcols [1] IMPLICIT SET OF Global-Name OPTIONAL, + -- at least one is required + iso-standard-9541-excglyphcols [2] IMPLICIT SET OF Global-Name OPTIONAL, + -- at least one is required + iso-standard-9541-incglyphs [3] IMPLICIT SET OF Global-Name OPTIONAL, + -- at least one is required + iso-standard-9541-excglyphs [4] IMPLICIT SET OF Global-Name OPTIONAL, + -- at least one is required + non-iso-properties [5] IMPLICIT Property-List OPTIONAL +} + +Design-Group ::= SEQUENCE { + -- see 9541-1 Annex-A for code values + group-code [0] IMPLICIT Code, + subgroup-code [1] IMPLICIT Code, + specific-group-code [2] IMPLICIT Code +} + +Structure-Code ::= INTEGER {not-applicable(0), solid(1), outline(2)} + +Writing-Modes ::= SET { + iso-standard-9541-wrmode [0] IMPLICIT SET OF Writing-Mode OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Writing-Mode ::= SEQUENCE { + iso-standard-9541-wrmodename [0] IMPLICIT Global-Name, + wrmode-properties [1] IMPLICIT Modal-Properties +} + +Modal-Properties ::= SET { + iso-standard-9541-nomescdir [0] IMPLICIT Angle OPTIONAL, + iso-standard-9541-escclass [1] IMPLICIT Esc-Class-Code OPTIONAL, + iso-standard-9541-avgescx [2] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-avgescy [3] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-avglcescx [4] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-avglcescy [5] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-avgcapescx [6] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-avgcapescy [7] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-tabescx [8] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-tabescy [9] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-maxfontext [10] IMPLICIT Max-Extents OPTIONAL, + iso-standard-9541-sectors [11] IMPLICIT Sectors OPTIONAL, + iso-standard-9541-escadjs [12] IMPLICIT SET OF Adjusts OPTIONAL, + iso-standard-9541-minescadjsze [13] IMPLICIT Rational OPTIONAL, + iso-standard-9541-maxescadjsze [14] IMPLICIT Rational OPTIONAL, + iso-standard-9541-scores [15] IMPLICIT Scores OPTIONAL, + iso-standard-9541-vscripts [16] IMPLICIT Variant-Scripts OPTIONAL, + iso-standard-9541-minlinesp [17] IMPLICIT Alignment-Spacing OPTIONAL, + iso-standard-9541-minanascale [18] IMPLICIT Rational OPTIONAL, + iso-standard-9541-maxanascale [19] IMPLICIT Rational OPTIONAL, + iso-standard-9541-nomalign [20] IMPLICIT Global-Name OPTIONAL, + iso-standard-9541-alignmodes [21] IMPLICIT Alignment-Modes OPTIONAL, + iso-standard-9541-copyfits [22] IMPLICIT Copyfits OPTIONAL, + iso-standard-9541-dsnwordadd [23] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-dsnwordampl [24] IMPLICIT Rational OPTIONAL, + iso-standard-9541-minwordadd [25] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-minwordampl [26] IMPLICIT Rational OPTIONAL, + iso-standard-9541-maxwordadd [27] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-maxwordampl [28] IMPLICIT Rational OPTIONAL, + iso-standard-9541-dsnletteradd [29] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-dsnletterampl [30] IMPLICIT Rational OPTIONAL, + iso-standard-9541-minletteradd [31] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-minletterampl [32] IMPLICIT Rational OPTIONAL, + iso-standard-9541-maxletteradd [33] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-maxletterampl [34] IMPLICIT Rational OPTIONAL, + iso-standard-9541-glyphmetrics [35] IMPLICIT Glyph-Metrics OPTIONAL, + non-iso-properties [36] IMPLICIT Property-List OPTIONAL +} + +Esc-Class-Code ::= INTEGER {not-applicable(0), monospace(1), proportional(2)} + +Max-Extents ::= SEQUENCE { + max-minx [0] IMPLICIT Rel-Rational, + max-miny [1] IMPLICIT Rel-Rational, + max-maxx [2] IMPLICIT Rel-Rational, + max-maxy [3] IMPLICIT Rel-Rational +} + +Sectors ::= SET { + iso-standard-9541-sector [0] IMPLICIT SEQUENCE OF Sector OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Sector ::= SEQUENCE { + sector-left [0] IMPLICIT Rel-Rational, + sector-right [1] IMPLICIT Rel-Rational +} + +Adjusts ::= SET { + iso-standard-9541-adjust [0] IMPLICIT SET OF Adjust, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Adjust ::= SET { + iso-standard-9541-escadjname [0] IMPLICIT Global-Name, + adjust-properties [1] IMPLICIT Adjust-Properties +} + +Adjust-Properties ::= SET { + iso-standard-9541-cpea [0] IMPLICIT CPEA-Properties OPTIONAL, + iso-standard-9541-sec [1] IMPLICIT SEC-Properties OPTIONAL, + non-iso-properties [2] IMPLICIT Property-List OPTIONAL +} + +CPEA-Properties ::= SET { + iso-standard-9541-ncpeaforwd [0] IMPLICIT Cardinal, + iso-standard-9541-ncpeabackwd [1] IMPLICIT Cardinal, + iso-standard-9541-cpeax [2] SEQUENCE OF Rel-Rational OPTIONAL, + -- at least one required + iso-standard-9541-cpeay [3] SEQUENCE OF Rel-Rational OPTIONAL, + non-iso-properties [4] IMPLICIT Property-List OPTIONAL +} + +SEC-Properties ::= SET { + iso-standard-9541-secx + [0] SEQUENCE OF + SEQUENCE {-- at least one required + rational [0] IMPLICIT Rational, + rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL, + iso-standard-9541-secy + [1] SEQUENCE OF + SEQUENCE {-- at least one required + rational [0] IMPLICIT Rational, + rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL, + non-iso-properties [2] IMPLICIT Property-List OPTIONAL +} + +Scores ::= SET { + iso-standard-9541-Score [0] IMPLICIT SET OF Score OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Score ::= SEQUENCE { + iso-standard-9541-scorename [0] IMPLICIT Global-Name, + score-property-list [1] IMPLICIT Score-Properties +} + +Score-Properties ::= SET { + iso-standard-9541-scoreoffsetx [0] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-scoreoffsety [1] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-scorethick [2] IMPLICIT Rel-Rational OPTIONAL, + non-iso-properties [3] IMPLICIT Property-List OPTIONAL +} + +Variant-Scripts ::= SET { + iso-standard-9541-vscript [0] IMPLICIT SET OF Vscript OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Vscript ::= SEQUENCE { + iso-standard-9541-vsname [0] IMPLICIT Global-Name, + vscript-property-list [1] IMPLICIT Vscript-Properties +} + +Vscript-Properties ::= SET { + iso-standard-9541-vsoffsetx [0] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-vsoffsety [1] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-vsscalex [2] IMPLICIT Rational OPTIONAL, + iso-standard-9541-vsscaley [3] IMPLICIT Rational OPTIONAL, + non-iso-properties [4] IMPLICIT Property-List OPTIONAL +} + +Alignment-Spacing ::= SEQUENCE { + minlinesp-left [0] IMPLICIT Rel-Rational, + minlinesp-right [1] IMPLICIT Rel-Rational +} + +Alignment-Modes ::= SET { + iso-standard-9541-align [0] IMPLICIT SET OF Alignment OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Alignment ::= SEQUENCE { + iso-standard-9541-alignname [0] IMPLICIT Global-Name, + alignment-property-list [1] IMPLICIT Align-Properties +} + +Align-Properties ::= SET { + iso-standard-9541-alignoffsetx [0] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-alignoffsety [1] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-alignscalex [2] IMPLICIT Rational OPTIONAL, + iso-standard-9541-alignscaley [3] IMPLICIT Rational OPTIONAL, + non-iso-properties [4] IMPLICIT Property-List OPTIONAL +} + +Copyfits ::= SET { + iso-standard-9541-copyfit [0] IMPLICIT SET OF Copyfit OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Copyfit ::= SEQUENCE { + iso-standard-9541-copyfitname [0] IMPLICIT Global-Name, + copyfit-properties [1] IMPLICIT Copyfit-Properties +} + +Copyfit-Properties ::= SET { + iso-standard-9541-copyfitmeasure [0] IMPLICIT Rational OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Glyph-Metrics ::= SET { + iso-standard-9541-gmetric [0] IMPLICIT SET OF Glyph-Property-List, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Glyph-Property-List ::= SEQUENCE { + iso-standard-9541-gname [0] IMPLICIT Global-Name, + glyph-properties [1] IMPLICIT Glyph-Properties +} + +Glyph-Properties ::= SET { + iso-standard-9541-px [0] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-py [1] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-ex [2] IMPLICIT Rel-Rational, + iso-standard-9541-ey [3] IMPLICIT Rel-Rational, + iso-standard-9541-ext [4] IMPLICIT Extents, + iso-standard-9541-lgs [5] IMPLICIT Ligatures OPTIONAL, + iso-standard-9541-peas [6] IMPLICIT P-Adjusts OPTIONAL, + iso-standard-9541-cpeai [7] IMPLICIT C-Indicator OPTIONAL, + iso-standard-9541-eai [8] IMPLICIT E-Code OPTIONAL, + iso-standard-9541-minex [9] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-miney [10] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-maxex [11] IMPLICIT Rel-Rational OPTIONAL, + iso-standard-9541-maxey [12] IMPLICIT Rel-Rational OPTIONAL, + non-iso-properties [13] IMPLICIT Property-List OPTIONAL +} + +Extents ::= SET { + minx [0] IMPLICIT Rel-Rational OPTIONAL, + miny [1] IMPLICIT Rel-Rational OPTIONAL, + maxx [2] IMPLICIT Rel-Rational OPTIONAL, + maxy [3] IMPLICIT Rel-Rational OPTIONAL +} + +Ligatures ::= SET { + iso-standard-9541-lg [0] IMPLICIT SET OF Ligature OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +Ligature ::= SET { + iso-standard-9541-lgn [0] IMPLICIT Global-Name, + iso-standard-9541-lgsn [1] SEQUENCE OF Global-Name +} + +P-Adjusts ::= SET { + iso-standard-9541-pea [0] IMPLICIT SET OF P-Adjust OPTIONAL, + non-iso-properties [1] IMPLICIT Property-List OPTIONAL +} + +P-Adjust ::= SEQUENCE { + iso-standard-9541-pean [0] IMPLICIT Global-Name, + p-adjust-property-list [1] IMPLICIT P-Adjust-Properties +} + +P-Adjust-Properties ::= SET { + iso-standard-9541-peax + [0] SEQUENCE OF + SEQUENCE {-- at least one required + global-name [0] IMPLICIT Global-Name, + rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL, + iso-standard-9541-peay + [1] SEQUENCE OF + SEQUENCE {-- at least one required + global-name [0] IMPLICIT Global-Name, + rel-rational [1] IMPLICIT Rel-Rational} OPTIONAL, + iso-standard-9541-speaforwdx [2] SEQUENCE OF Rel-Rational OPTIONAL, + iso-standard-9541-speaforwdy [3] SEQUENCE OF Rel-Rational OPTIONAL, + iso-standard-9541-speabackwdx [4] SEQUENCE OF Rel-Rational OPTIONAL, + iso-standard-9541-speabackwdy [5] SEQUENCE OF Rel-Rational OPTIONAL, + non-iso-properties [6] IMPLICIT Property-List OPTIONAL +} + +C-Indicator ::= SEQUENCE { + c-forward [0] IMPLICIT Cardinal, + c-backward [1] IMPLICIT Cardinal +} + +E-Code ::= INTEGER { + not-applicable(0), letter-space(1), word-space(2), no-adjust(3)} + +-- The following Data Types are used in the above structures +-- The following Data Types are used in the above structures +Property ::= SEQUENCE { + property-name [0] Global-Name, + property-value [1] Property-Value +} + +Property-Value ::= CHOICE { + value [0] Value, + value-list [1] Value-List, + ordered-value-list [2] Ordered-Value-List, + property-list [3] Property-List, + ordered-property-list [4] Ordered-Property-List +} + +Value-List ::= SET OF Value + +Ordered-Value-List ::= SEQUENCE OF Value + +Property-List ::= SET OF Property + +Ordered-Property-List ::= SEQUENCE OF Property + +Value ::= CHOICE { + global-Name [0] Global-Name, + match-String [1] Match-String, + message [2] Message, + octetString [3] OCTET STRING, + boolean [4] BOOLEAN, + integer [5] Integer, + cardinal [6] Cardinal, + code [7] Code, + rational [8] Rational, + rel-Rational [9] Rel-Rational, + angle [10] Angle, + proprietary-Data [11] Proprietary-Data +} + +Global-Name ::= SEQUENCE { + -- see global name note at the end of clause 6.1 + prefix-index [0] IMPLICIT Code OPTIONAL, + name-value [1] IMPLICIT Structured-Name +} + +Match-String ::= CHOICE { + numeric [0] NumericString, + printable [1] PrintableString, + teletex [2] TeletexString, + videotex [3] VideotexString, + visible [4] VisibleString, + ia5 [5] IA5String, + graphic [6] GraphicString, + general [7] GeneralString +} + +Message ::= CHOICE { + numeric [0] NumericString, + printable [1] PrintableString, + teletex [2] TeletexString, + videotex [3] VideotexString, + visible [4] VisibleString, + ia5 [5] IA5String, + graphic [6] GraphicString, + general [7] GeneralString +} + +Integer ::= INTEGER {first(-2147483648), last(2147483647)} + +Cardinal ::= INTEGER {first(0), last(4294967295)} + +Code ::= INTEGER {first(0), last(255)} + +Rational ::= SEQUENCE { + numerator [0] IMPLICIT INTEGER, + denominator [1] IMPLICIT INTEGER {first(1), last(2147483647)} OPTIONAL +} + +-- denominator defaults to 1 +Rel-Rational ::= Rational + +-- expresses glyph coordinate units +-- denominator defaults to relunits +Angle ::= + Rational + +-- expresses units of degrees, with a +-- value range of -360 to +360 +-- denominator defaults to 1 +Proprietary-Data ::= SEQUENCE { + prop-data-message [0] Message OPTIONAL, + prop-data-key [1] IMPLICIT OCTET STRING OPTIONAL, + prop-data [2] IMPLICIT OCTET STRING +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn b/lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn new file mode 100644 index 0000000000..a57a276704 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/ISO8571-FTAM.asn @@ -0,0 +1,1453 @@ +-- Module ISO8571-FTAM (ISO 8571-4:1988) +-- See also the README file +-- See also the index of all ASN.1 assignments needed in this Recommendation + +-- +-- Copyright ? ISO/IEC 1988. This version of +-- this ASN.1 module is part of ISO/IEC 8571-4:1988; +-- see the ISO|IEC text itself for full legal notices. +-- +ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} DEFINITIONS +::= +BEGIN + +PDU ::= CHOICE { + fTAM-Regime-PDU FTAM-Regime-PDU, + file-PDU File-PDU, + bulk-Data-PDU Bulk-Data-PDU, + fSM-PDU FSM-PDU +} + +FTAM-Regime-PDU ::= CHOICE { + f-initialize-request [0] IMPLICIT F-INITIALIZE-request, + f-initialize-response [1] IMPLICIT F-INITIALIZE-response, + f-terminate-request [2] IMPLICIT F-TERMINATE-request, + f-terminate-response [3] IMPLICIT F-TERMINATE-response, + f-u-abort-request [4] IMPLICIT F-U-ABORT-request, + f-p-abort-request [5] IMPLICIT F-P-ABORT-request +} + +F-INITIALIZE-request ::= SEQUENCE { + protocol-Version Protocol-Version DEFAULT {version-1}, + implementation-information Implementation-Information OPTIONAL, + presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE, + service-class Service-Class DEFAULT {transfer-class}, + -- Only the valid combinations as specified in ISO 8571-3 are allowed. + functional-units Functional-Units, + attribute-groups Attribute-Groups DEFAULT {}, + shared-ASE-information Shared-ASE-Information OPTIONAL, + ftam-quality-of-Service FTAM-Quality-of-Service, + contents-type-list Contents-Type-List OPTIONAL, + initiator-identity User-Identity OPTIONAL, + account Account OPTIONAL, + filestore-password Password OPTIONAL, + checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1 +} + +-- lf the recovery or restart data transfer functional units are +-- not available, the Checkpoint-window Parameter shall not be sent. +F-INITIALIZE-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + protocol-Version Protocol-Version DEFAULT {version-1}, + implementation-information Implementation-Information OPTIONAL, + presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE, + service-class Service-Class DEFAULT {transfer-class}, + -- Only the valid combinations as specified in ISO 8571-3 are allowed. + functional-units Functional-Units, + attribute-groups Attribute-Groups DEFAULT {}, + shared-ASE-information Shared-ASE-Information OPTIONAL, + ftam-quality-of-Service FTAM-Quality-of-Service, + contents-type-list Contents-Type-List OPTIONAL, + diagnostic Diagnostic OPTIONAL, + checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1 +} + +-- If the recovery or restart data transfer functional units are +-- not available, the Checkpoint-window Parameter shall not be sent. +Protocol-Version ::= [0] IMPLICIT BIT STRING {version-1(0), version-2(1) +} + +Implementation-Information ::= [1] IMPLICIT GraphicString + +-- This Parameter is provided solely for the convenience of implementors +-- needing to distinguish between implernentations of a specific version number +-- of different equipment, it shall not be the subject of conformance test. +Service-Class ::= [3] IMPLICIT BIT STRING { + unconstrained-class(0), management-class(1), transfer-class(2), + transfer-and-management-class(3), access-class(4)} + +Functional-Units ::= [4] IMPLICIT BIT STRING { + read(2), write(3), file-access(4), limited-file-management(5), + enhanced-file-management(6), grouping(7), fadu-locking(8), recovery(9), + restart-data-transfer(10), limited-filestore-management(11), + enhanced-filestore-management(12), object-manipulation(13), + group-manipulation(14), consecutive-access(15), concurrent-access(16) +} + +-- Values 2 to 14 are Chosen to align with numbering scheme used in ISO 8571-3. +Attribute-Groups ::= [5] IMPLICIT BIT STRING { + storage(0), security(1), private(2), extension(3)} + +-- The extension bit is defined if and only if the limited-filestore-management +-- or the group-manipulation functional units are available. +FTAM-Quality-of-Service ::= [6] IMPLICIT INTEGER { + no-recovery(0), class-1-recovery(1), class-2-recovery(2), class-3-recovery(3) +} + +Contents-Type-List ::= + [7] IMPLICIT + SEQUENCE OF + CHOICE {document-type-name Document-Type-Name, + abstract-Syntax-name Abstract-Syntax-Name} + +F-TERMINATE-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-TERMINATE-response ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL, + charging Charging OPTIONAL +} + +F-U-ABORT-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +F-P-ABORT-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +File-PDU ::= CHOICE { + f-select-request [6] IMPLICIT F-SELECT-request, + f-select-response [7] IMPLICIT F-SELECT-response, + f-deselect-request [8] IMPLICIT F-DESELECT-request, + f-deselect-response [9] IMPLICIT F-DESELECT-response, + f-create-request [10] IMPLICIT F-CREATE-request, + f-create-response [11] IMPLICIT F-CREATE-response, + f-delete-request [12] IMPLICIT F-DELETE-request, + f-delete-response [13] IMPLICIT F-DELETE-response, + f-read-attrib-request [14] IMPLICIT F-READ-ATTRIB-request, + f-read-attrib-response [15] IMPLICIT F-READ-ATTRIB-response, + f-Change-attrib-reques [16] IMPLICIT F-CHANGE-ATTRIB-request, + f-Change-attrib-respon [17] IMPLICIT F-CHANGE-ATTRIB-response, + f-open-request [18] IMPLICIT F-OPEN-request, + f-open-response [19] IMPLICIT F-OPEN-response, + f-close-request [20] IMPLICIT F-CLOSE-request, + f-close-response [21] IMPLICIT F-CLOSE-response, + f-begin-group-request [22] IMPLICIT F-BEGIN-GROUP-request, + f-begin-group-response [23] IMPLICIT F-BEGIN-GROUP-response, + f-end-group-request [24] IMPLICIT F-END-GROUP-request, + f-end-group-response [25] IMPLICIT F-END-GROUP-response, + f-recover-request [26] IMPLICIT F-RECOVER-request, + f-recover-response [27] IMPLICIT F-RECOVER-response, + f-locate-request [28] IMPLICIT F-LOCATE-request, + f-locate-response [29] IMPLICIT F-LOCATE-response, + f-erase-request [30] IMPLICIT F-ERASE-request, + f-erase-response [31] IMPLICIT F-ERASE-response +} + +F-SELECT-request ::= SEQUENCE { + attributes Select-Attributes, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + -- This Parameter tan only be sent when the + -- limited-filestore-management or the object-manipulation or + -- the group-manipulation functional units are available. + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-SELECT-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + attributes Select-Attributes, + referent-indicator Referent-Indicator OPTIONAL, + -- This Parameter tan only be sent when the + -- limited-filestore-management functional unit is available. + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-DESELECT-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-DESELECT-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + charging Charging OPTIONAL, + -- Present if and only if the account field was present on + -- the PDU which established the selection regime. + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CREATE-request ::= SEQUENCE { + override [0] IMPLICIT Override DEFAULT create-failure, + initial-attributes Create-Attributes, + create-password Password OPTIONAL, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + -- This Parameter tan only be sent when the + -- limited-filestore-management or the Object-manipulation or + -- the group-manipulation functional units are available. + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-CREATE-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + initial-attributes Create-Attributes, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-DELETE-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-DELETE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + charging Charging OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-READ-ATTRIB-request ::= SEQUENCE { + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +-- This Parameter tan only be sent when the +-- limited-filestore-management functional unit is available. +F-READ-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Read-Attributes OPTIONAL, + -- Password values within the access control tan not be read by means + -- of the read attribute action. Whether other Parts of the access + -- control Object attribute tan be read by means of the read + -- attribute action is decided locally by the responding entity, and + -- it shall not be the subject of conformance test. + diagnostic Diagnostic OPTIONAL +} + +F-CHANGE-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes +} + +F-CHANGE-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Change-Attributes OPTIONAL, + -- Password values within access control attribute are never returned. + -- Other attributes are retumed as an implementation choice. + diagnostic Diagnostic OPTIONAL +} + +F-OPEN-request ::= SEQUENCE { + processing-mode + [0] IMPLICIT BIT STRING {f-read(0), f-insert(1), f-replace(2), f-extend(3), + f-erase(4)} DEFAULT {f-read}, + contents-type + [1] CHOICE {unknown [0] IMPLICIT NULL, + proposed [1] Contents-Type-Attribute}, + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + enable-fadu-locking [2] IMPLICIT BOOLEAN DEFAULT FALSE, + activity-identifier Activity-Identifier OPTIONAL, + -- Only used in the recovery functional unit. + recovery-mode + [3] IMPLICIT INTEGER {none(0), at-start-of-file(1), + at-any-active-Checkpoint(2)} DEFAULT none, + remove-contexts [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + define-contexts [5] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + -- The following are conditional on the negotiation of the consecutive overlap or + -- concurrent overlap functional units. + degree-of-overlap Degree-Of-Overlap OPTIONAL, + transfer-window [7] IMPLICIT INTEGER OPTIONAL +} + +F-OPEN-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + contents-type [1] Contents-Type-Attribute, + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + recovery-mode + [3] IMPLICIT INTEGER {none(0), at-start-of-file(1), + at-any-active-Checkpoint(2)} DEFAULT none, + presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE, + -- This flag is set if the responder is going to follow this response + -- by a P-ALTER-CONTEXT exchange. + --The following are conditional on the negotiation of the concecutive access + -- or concurent access functional units. + degree-of-overlap Degree-Of-Overlap OPTIONAL, + transfer-window [7] IMPLICIT INTEGER OPTIONAL +} + +F-CLOSE-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CLOSE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-BEGIN-GROUP-request ::= SEQUENCE {threshold [0] IMPLICIT INTEGER +} + +F-BEGIN-GROUP-response ::= SEQUENCE { +} + +-- No elements defined, shall be empty. +F-END-GROUP-request ::= SEQUENCE { +} + +-- No elements defined, shall be empty. +F-END-GROUP-response ::= SEQUENCE { +} + +-- No elements defined, shall be empty. +F-RECOVER-request ::= SEQUENCE { + activity-identifier Activity-Identifier, + bulk-transfer-number [0] IMPLICIT INTEGER, + -- If concurrent access was in use then this parameter indicates the read bulk + -- transfer. + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + recovefy-Point [2] IMPLICIT INTEGER DEFAULT 0, + -- Zero indicates beginning of file + -- Point after last Checkpoint indicates end of file + remove-contexts + [3] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + define-contexts + [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + -- The following are conditional on the negotiation of overlapped access. + concurrent-bulk-transfer-number [7] IMPLICIT INTEGER OPTIONAL, + -- conditional on use of concurrent access + concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL, + -- conditional on use of concurrent access. Zero indicates beginning of file + -- point after last checkpoint indicates end of file + last-transfer-end-read-response [9] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [10] IMPLICIT INTEGER OPTIONAL +} + +F-RECOVER-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + contents-type [1] Contents-Type-Attribute, + recovety-Point [2] IMPLICIT INTEGER DEFAULT 0, + -- Zero indicates beginning of file. + -- Point after last Checkpoint indicates end of file. + diagnostic Diagnostic OPTIONAL, + presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE, + -- This flag is set if the responder is going to follow this response + -- by a P-ALTER-CONTEXT exchange. + -- The following are conditional on the negotiation of overlapped access. + concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL, + -- conditional on use of concurrent access. Zero indicates beginning of file; point after + -- last checkpoint indicates end of file + last-transfer-end-read-request [9] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [10] IMPLICIT INTEGER OPTIONAL +} + +F-LOCATE-request ::= SEQUENCE { + file-access-data-unit-identity FADU-Identity, + fadu-lock FADU-Lock OPTIONAL +} + +F-LOCATE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + file-access-data-unit-identity FADU-Identity OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-ERASE-request ::= SEQUENCE {file-access-data-unit-identity FADU-Identity +} + +F-ERASE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +Bulk-Data-PDU ::= CHOICE { + f-read-request [32] IMPLICIT F-READ-request, + f-write-request [33] IMPLICIT F-WRITE-request, + -- There is no F-DATA FPDU, the contents of a file + -- are transferred in a different presentation context + -- and there is therefore no need to define the types + -- of file contents in the FTAM PCI abstract Syntax. + -- File contents data are carried in values of the + -- data type Data-Element as defined in ISO 8571-2. + f-data-end-request [34] IMPLICIT F-DATA-END-request, + f-transfer-end-request [35] IMPLICIT F-TRANSFER-END-request, + f-transfer-end-response [36] IMPLICIT F-TRANSFER-END-response, + f-cancel-request [37] IMPLICIT F-CANCEL-request, + f-cancel-response [38] IMPLICIT F-CANCEL-response, + -- There is no F-CHECK PDU. + f-restart-request [39] IMPLICIT F-RESTART-request, + f-restart-response [40] IMPLICIT F-RESTART-response +} + +F-READ-request ::= SEQUENCE { + file-access-data-unit-identity FADU-Identity, + access-context Access-Context, + fadu-lock FADU-Lock OPTIONAL, + -- The following is conditional on the negotiation of consecutive of concurrent access. + transfer-number [0] IMPLICIT INTEGER OPTIONAL +} + +F-WRITE-request ::= SEQUENCE { + file-access-data-unit-Operation + [0] IMPLICIT INTEGER {insert(0), replace(1), extend(2)}, + file-access-data-unit-identity FADU-Identity, + fadu-lock FADU-Lock OPTIONAL, + -- The following is conditional on the negotiation of consecutive or concurrent access. + transfer-number [1] IMPLICIT INTEGER OPTIONAL +} + +F-DATA-END-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +F-TRANSFER-END-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [0] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [1] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [2] IMPLICIT INTEGER OPTIONAL +} + +F-TRANSFER-END-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [0] IMPLICIT INTEGER OPTIONAL +} + +F-CANCEL-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type, + transfer-number [0] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL +} + +F-CANCEL-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [0] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL +} + +F-CHECK-request ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + transfer-number [1] IMPLICIT INTEGER +} + +F-CHECK-response ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + transfer-number [1] IMPLICIT INTEGER +} + +F-RESTART-request ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [1] IMPLICIT INTEGER, + last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL +} + +F-RESTART-response ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [1] IMPLICIT INTEGER, + last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL +} + +Degree-Of-Overlap ::= [APPLICATION 30] IMPLICIT INTEGER { + normal(0), consecutive(1), concurrent(2)} + +Request-Type ::= [APPLICATION 31] IMPLICIT INTEGER {read(0), write(1)} + +Abstract-Syntax-Name ::= [APPLICATION 0] IMPLICIT OBJECT IDENTIFIER + +Access-Context ::= [APPLICATION 1] IMPLICIT SEQUENCE { + access-context + [0] IMPLICIT INTEGER {hierarchical-all-data-units(0),--HA-- + hierarchical-no-data-units(1),--HN-- + flat-all-data-units(2),--FA-- + flat-one-level-data-unit(3),--FL-- + flat-Single-data-unit(4),--FS-- + unstructured-all-data-units(5),--UA-- + unstructured-Single-data-unit(6)}, --US + level-number [1] IMPLICIT INTEGER OPTIONAL +} + +-- Present if and only if flat-one-level-data-units +-- (access context FL) is selected. +-- As defined in ISO 8571-2. +Access-Passwords ::= [APPLICATION 2] IMPLICIT SEQUENCE { + read-password [0] Password, + insert-password [1] Password, + replace-password [2] Password, + extend-password [3] Password, + erase-password [4] Password, + read-attribute-password [5] Password, + change-attribute-password [6] Password, + delete-password [7] Password, + pass-passwords [8] IMPLICIT Pass-Passwords OPTIONAL, + link-password [9] Password OPTIONAL +} + +-- The pass-passwords and the link-password must be included in the +-- access-passwords if and only if the limited-filestore-management +-- or the Object-manipulation or the group-manipulation functional +-- units are available. +Access-Request ::= [APPLICATION 3] IMPLICIT BIT STRING { + read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5), + change-attribute(6), delete-Object(7)} + +Account ::= [APPLICATION 4] IMPLICIT GraphicString + +Action-Result ::= [APPLICATION 5] IMPLICIT INTEGER { + success(0), transient-error(1), permanent-error(2)} + +Activity-Identifier ::= [APPLICATION 6] IMPLICIT INTEGER + +Application-Entity-Title ::= [APPLICATION 7] AE-title + +-- As defined in ISO 8650. +Change-Attributes ::= [APPLICATION 8] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute OPTIONAL, + -- Storage group + storage-account [3] Account-Attribute OPTIONAL, + object-availability [12] Object-Availability-Attribute OPTIONAL, + future-Object-size [14] Object-Size-Attribute OPTIONAL, + -- Security group + access-control [15] Access-Control-Change-Attribute OPTIONAL, + path-access-control [21] Access-Control-Change-Attribute OPTIONAL, + -- This Parameter tan only be sent when the + -- enhanced-filestore-management functional unit is available. + legal-qualification [16] Legal-Qualification-Attribute OPTIONAL, + -- Private group + private-use [17] Private-Use-Attribute OPTIONAL, + -- Attribute Extensions group + attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL +} + +-- This Parameter tan only be sent when the +-- enhanced-filestore-management functional unit is available. +-- Atleast one attribute shall be present in the Change-Attributes +-- Parameter on the request PDU. +Charging ::= + [APPLICATION 9] IMPLICIT + SEQUENCE OF + SEQUENCE {resource-identifier [0] IMPLICIT GraphicString, + charging-unit [1] IMPLICIT GraphicString, + charging-value [2] IMPLICIT INTEGER} + +Concurrency-Control ::= [APPLICATION 10] IMPLICIT SEQUENCE { + read [0] IMPLICIT Lock, + insert [1] IMPLICIT Lock, + replace [2] IMPLICIT Lock, + extend [3] IMPLICIT Lock, + erase [4] IMPLICIT Lock, + read-attribute [5] IMPLICIT Lock, + change-attribute [6] IMPLICIT Lock, + delete-Object [7] IMPLICIT Lock +} + +Lock ::= INTEGER {not-required(0), shared(1), exclusive(2), no-access(3)} + +Constraint-Set-Name ::= [APPLICATION 11] IMPLICIT OBJECT IDENTIFIER + +Create-Attributes ::= [APPLICATION 12] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute, + object-type [18] IMPLICIT Object-Type-Attribute DEFAULT file, + -- This Parameter tan be sent if and only if the + -- limited-filestore-management functional unit is available. + permitted-actions [1] IMPLICIT Permitted-Actions-Attribute, + contents-type [2] Contents-Type-Attribute, + -- Storage group + storage-account [3] Account-Attribute OPTIONAL, + object-availability [12] Object-Availability-Attribute OPTIONAL, + future-Object-size [14] Object-Size-Attribute OPTIONAL, + -- Security group + access-control [15] Access-Control-Attribute OPTIONAL, + path-access-control [21] Access-Control-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if the + -- enhanced-filestore-management functional unit is available. + legal-qualification [16] Legal-Qualification-Attribute OPTIONAL, + -- Private group + private-use [17] Private-Use-Attribute OPTIONAL, + -- Attribute Extensions group + attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL +} + +-- This Parameter tan only be sent when the +-- limited-filestore-management functional unit is available. +Diagnostic ::= + [APPLICATION 13] IMPLICIT + SEQUENCE OF + SEQUENCE {diagnostic-type + [0] IMPLICIT INTEGER {informative(0), transient(1), + permanent(2)}, + error-identifier [1] IMPLICIT INTEGER, + -- As defined in ISO 8571-3. + error-observer [2] IMPLICIT Entity-Reference, + error-Source [3] IMPLICIT Entity-Reference, + suggested-delay [4] IMPLICIT INTEGER OPTIONAL, + further-details [5] IMPLICIT GraphicString OPTIONAL + } + +Entity-Reference ::= INTEGER { + no-categorization-possible(0), initiating-file-service-user(1), + initiating-file-protocol-machine(2), + service-supporting-the-file-protocol-machine(3), + responding-file-protocol-machine(4), responding-file-service-user(5) +} + +--NOTE +-- 1. The values 0 and 3 are only valid as values in error-source. +-- 2. The value 5 corresponds to the virtual filestore. +Document-Type-Name ::= [APPLICATION 14] IMPLICIT OBJECT IDENTIFIER + +FADU-Identity ::= [APPLICATION 15] CHOICE { + first-last [0] IMPLICIT INTEGER {first(0), last(1)}, + relative [1] IMPLICIT INTEGER {previous(0), current(1), next(2)}, + begin-end [2] IMPLICIT INTEGER {begin(0), end(1)}, + single-name [3] IMPLICIT Node-Name, + name-list [4] IMPLICIT SEQUENCE OF Node-Name, + fadu-number [5] IMPLICIT INTEGER +} + +-- As defined in ISO 8571-2. +Node-Name ::= EXTERNAL + +-- The type to be used for Node-Name is defined in IS08571-FADU. +FADU-Lock ::= [APPLICATION 16] IMPLICIT INTEGER {off(0), on(1)} + +Password ::= [APPLICATION 17] CHOICE { + graphicString GraphicString, + octetString OCTET STRING +} + +Read-Attributes ::= [APPLICATION 18] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute OPTIONAL, + object-type + [18] IMPLICIT Object-Type-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + permitted-actions + [1] IMPLICIT Permitted-Actions-Attribute OPTIONAL, + contents-type + [2] Contents-Type-Attribute OPTIONAL, + linked-Object + [19] Pathname-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + child-objects + [23] Child-Objects-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + -- Storage group + primaty-pathname + [20] Pathname-Attribute OPTIONAL, + storage-account [3] Account-Attribute OPTIONAL, + date-and-time-of-creation + [4] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-modification + [5] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-read-access + [6] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-attribute-modification + [7] Date-and-Time-Attribute OPTIONAL, + identity-of-creator + [8] User-Identity-Attribute OPTIONAL, + identity-of-last-modifier + [9] User-Identity-Attribute OPTIONAL, + identity-of-last-reader + [10] User-Identity-Attribute OPTIONAL, + identity-last-attribute-modifier + [11] User-Identity-Attribute OPTIONAL, + object-availability + [12] Object-Availability-Attribute OPTIONAL, + object-size + [13] Object-Size-Attribute OPTIONAL, + future-Object-size + [14] Object-Size-Attribute OPTIONAL, + -- Security group + access-control + [15] Access-Control-Attribute OPTIONAL, + path-access-control + [21] Access-Control-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + legal-qualification + [16] Legal-Qualification-Attribute OPTIONAL, + -- Private group + private-use + [17] Private-Use-Attribute OPTIONAL, + -- Attribute Extensions group + attribute-extensions + [22] IMPLICIT Attribute-Extensions OPTIONAL +} + +-- This Parameter tan be sent if and only if +-- the limited-filestore-management functional unit is available. +Select-Attributes ::= [APPLICATION 19] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute +} + +Shared-ASE-Information ::= [APPLICATION 20] IMPLICIT EXTERNAL + +-- This field may be used to convey commitment control as described +-- in ISO 8571-3. +State-Result ::= [APPLICATION 21] IMPLICIT INTEGER {success(0), failure(1) +} + +User-Identity ::= [APPLICATION 22] IMPLICIT GraphicString + +Access-Control-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT SET OF Access-Control-Element +} + +-- The semantics of this attribute is described in ISO 8571-2. +Access-Control-Change-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values + [1] IMPLICIT SEQUENCE {insert-values + [0] IMPLICIT SET OF Access-Control-Element + OPTIONAL, + -- This field is used by the Change attribute actions to indicate + -- new values to be inserted in the access control Object attribute. + delete-values + [1] IMPLICIT SET OF Access-Control-Element + OPTIONAL} +} + +-- This field is used by the Change attribute action to indicate +-- old values to be removed from the access control Object +-- attribute. +-- The semantics of this attribute is described in ISO 8571-2. +Access-Control-Element ::= SEQUENCE { + action-list [0] IMPLICIT Access-Request, + concurrency-access [1] IMPLICIT Concurrency-Access OPTIONAL, + identity [2] IMPLICIT User-Identity OPTIONAL, + passwords [3] IMPLICIT Access-Passwords OPTIONAL, + location [4] IMPLICIT Application-Entity-Title OPTIONAL +} + +Concurrency-Access ::= SEQUENCE { + read [0] IMPLICIT Concurrency-Key, + insert [1] IMPLICIT Concurrency-Key, + replace [2] IMPLICIT Concurrency-Key, + extend [3] IMPLICIT Concurrency-Key, + erase [4] IMPLICIT Concurrency-Key, + read-attribute [5] IMPLICIT Concurrency-Key, + change-attribute [6] IMPLICIT Concurrency-Key, + delete-Object [7] IMPLICIT Concurrency-Key +} + +Concurrency-Key ::= BIT STRING { + not-required(0), shared(1), exclusive(2), no-access(3)} + +Account-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values Account +} + +Contents-Type-Attribute ::= CHOICE { + document-type + [0] IMPLICIT SEQUENCE {document-type-name Document-Type-Name, + parameter + [0] TYPE-IDENTIFIER.&Type OPTIONAL}, + -- The actual types to be used for values of the Parameter field + -- are defined in the named document type. + constraint-set-and-abstract-Syntax + [1] IMPLICIT SEQUENCE {constraint-set-name Constraint-Set-Name, + abstract-Syntax-name Abstract-Syntax-Name + } +} + +Date-and-Time-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT GeneralizedTime +} + +Object-Availability-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values + [1] IMPLICIT INTEGER {immediate-availability(0), deferred-availability(1)} +} + +Pathname-Attribute ::= CHOICE { + incomplete-pathname [0] IMPLICIT Pathname, + complete-pathname [APPLICATION 23] IMPLICIT Pathname +} + +Object-Size-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT INTEGER +} + +Legal-Qualification-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT GraphicString +} + +Permitted-Actions-Attribute ::= BIT STRING -- Actions available + { + read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5), + change-attribute(6), delete-Object(7), pass(11), + link(12), + -- FADU-Identity groups available + traversal(8), reverse-traversal(9), random-Order(10)} + +Private-Use-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + abstract-Syntax-not-supported [1] IMPLICIT NULL, + -- Indicates that abstract Syntax is not available. + actual-values [2] IMPLICIT EXTERNAL +} + +Object-Type-Attribute ::= INTEGER {file(0), file-directory(1), reference(2)} + +User-Identity-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values User-Identity +} + +Child-Objects-Attribute ::= SET OF GraphicString + +FSM-PDU ::= CHOICE { + f-Change-prefix-request [41] IMPLICIT F-CHANGE-PREFIX-request, + f-Change-prefix-response [42] IMPLICIT F-CHANGE-PREFIX-response, + f-list-request [43] IMPLICIT F-LIST-request, + f-list-response [44] IMPLICIT F-LIST-response, + f-group-select-request [45] IMPLICIT F-GROUP-SELECT-request, + f-group-select-response [46] IMPLICIT F-GROUP-SELECT-response, + f-group-delete-request [47] IMPLICIT F-GROUP-DELETE-request, + f-group-delete-response [48] IMPLICIT F-GROUP-DELETE-response, + f-group-move-request [49] IMPLICIT F-GROUP-MOVE-request, + f-group-move-response [50] IMPLICIT F-GROUP-MOVE-response, + f-group-copy-request [51] IMPLICIT F-GROUP-COPY-request, + f-group-copy-response [52] IMPLICIT F-GROUP-COPY-response, + f-group-list-request [53] IMPLICIT F-GROUP-LIST-request, + f-group-list-response [54] IMPLICIT F-GROUP-LIST-response, + f-group-Change-attrib-request [55] IMPLICIT F-GROUP-CHANGE-ATTRIB-request, + f-group-Change-attrib-response [56] IMPLICIT F-GROUP-CHANGE-ATTRIB-response, + f-select-another-request [57] IMPLICIT F-SELECT-ANOTHER-request, + f-select-another-response [58] IMPLICIT F-SELECT-ANOTHER-response, + f-create-directory-request [59] IMPLICIT F-CREATE-DIRECTORY-request, + f-create-directory-response [60] IMPLICIT F-CREATE-DIRECTORY-response, + f-link-request [61] IMPLICIT F-LINK-request, + f-link-response [62] IMPLICIT F-LINK-response, + f-unlink-request [63] IMPLICIT F-UNLINK-request, + f-unlink-response [64] IMPLICIT F-UNLINK-response, + f-read-link-attrib-request [65] IMPLICIT F-READ-LINK-ATTRIB-request, + f-read-link-attrib-response [66] IMPLICIT F-READ-LINK-ATTRIB-response, + f-Change-link-attrib-request [67] IMPLICIT F-CHANGE-LINK-ATTRIB-request, + f-Change-Iink-attrib-response [68] IMPLICIT F-CHANGE-LINK-ATTRIB-response, + f-move-request [69] IMPLICIT F-MOVE-request, + f-move-response [70] IMPLICIT F-MOVE-response, + f-copy-request [71] IMPLICIT F-COPY-request, + f-copy-response [72] IMPLICIT F-COPY-response +} + +F-CHANGE-PREFIX-request ::= SEQUENCE { + reset [0] IMPLICIT BOOLEAN DEFAULT FALSE, + destination-file-directory Destination-File-Directory, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL +} + +F-CHANGE-PREFIX-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-LIST-request ::= SEQUENCE { + attribute-value-asset-tions Attribute-Value-Assertions, + scope Scope, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +F-LIST-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + objects-attributes-list Objects-Attributes-List OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-SELECT-request ::= SEQUENCE { + attribute-value-assertions Attribute-Value-Assertions, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + concurrency-control Concurrency-Control OPTIONAL, + maximum-set-size [0] IMPLICIT INTEGER DEFAULT 0, + -- 0 implies no limit. + scope Scope, + account Account OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-GROUP-SELECT-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-DELETE-request ::= SEQUENCE { + request-Operation-result Request-Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-GROUP-DELETE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + charging Charging OPTIONAL, + operation-result Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-MOVE-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0} + -- and delete-and-create-with-new-attributes (3) are allowed. + error-action [11] IMPLICIT Error-Action, + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + request-Operation-result Request-Operation-Result OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-GROUP-MOVE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + operation-result Operation-Result OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-COPY-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0) + -- and delete-and-create-with-new-attributes (3) are allowed. + error-action [1] IMPLICIT Error-Action, + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + request-Operation-result Request-Operation-Result OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-GROUP-COPY-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + operation-result Operation-Result OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-LIST-request ::= SEQUENCE { + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [2] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +F-GROUP-LIST-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + objects-attributes-list Objects-Attributes-List OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-CHANGE-ATTRIB-request ::= SEQUENCE { + attributes Change-Attributes, + error-action [1] IMPLICIT Error-Action, + request-Operation-result Request-Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-GROUP-CHANGE-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + operation-result Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-SELECT-ANOTHER-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-SELECT-ANOTHER-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + last-member-indicator [0] IMPLICIT BOOLEAN DEFAULT FALSE, + referent-indicator Referent-Indicator OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CREATE-DIRECTORY-request ::= SEQUENCE { + initial-attributes Create-Attributes, + create-password Password OPTIONAL, + requested-access Access-Request, + shared-ASE-infonnation Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-CREATE-DIRECTORY-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + initial-attributes Create-Attributes, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-LINK-request ::= SEQUENCE { + initial-attributes Create-Attributes, + target-object Pathname-Attribute, + create-password Password OPTIONAL, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-LINK-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + initial-attributes Create-Attributes, + target-Object Pathname-Attribute, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-UNLINK-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-UNLINK-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + charging Charging OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-READ-LINK-ATTRIB-request ::= SEQUENCE { + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +F-READ-LINK-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Read-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CHANGE-LINK-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes +} + +F-CHANGE-LINK-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Change-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-MOVE-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0) + -- and delete-and-create-with-new-attributes (3) are ailowed. + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-MOVE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + attributes Change-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-COPY-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0) + -- and delete-and-create-with-new-attributes (3) are allowed. + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-COPY-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + attributes Change-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +Attribute-Extension-Names ::= SEQUENCE OF Attribute-Extension-Set-Name + +Attribute-Extension-Set-Name ::= SEQUENCE { + extension-set-identifier [0] IMPLICIT Extension-Set-Identifier, + extension-attribute-names [1] SEQUENCE OF Extension-Attribute-identifier +} + +Attribute-Extensions ::= SEQUENCE OF Attribute-Extension-Set + +Attribute-Extension-Set ::= SEQUENCE { + extension-set-identifier [0] IMPLICIT Extension-Set-Identifier, + extension-set-attributes [1] SEQUENCE OF Extension-Attribute +} + +Extension-Attribute ::= SEQUENCE { + extension-attribute-identifier + TYPE-IDENTIFIER.&id({Extension-Attributes}), + extension-attribute + TYPE-IDENTIFIER.&Type + ({Extension-Attributes}{@extension-attribute-identifier}) +} + +Extension-Attributes TYPE-IDENTIFIER ::= + {...} -- dynamically extensible + +Extension-Set-Identifier ::= OBJECT IDENTIFIER + +Extension-Attribute-identifier ::= OBJECT IDENTIFIER + +Attribute-Value-Assertions ::= [APPLICATION 26] IMPLICIT OR-Set + +Scope ::= + [APPLICATION 28] IMPLICIT + SEQUENCE OF + SEQUENCE {root-directory [0] Pathname-Attribute OPTIONAL, + retrieval-scope [1] IMPLICIT INTEGER {child(0), all(1)} + } + +OR-Set ::= SEQUENCE OF AND-Set + +AND-Set ::= + SEQUENCE OF + CHOICE {-- Kernel group + pathname-Pattern + [0] IMPLICIT Pathname-Pattern, + object-type-Pattern + [18] IMPLICIT Integer-Pattern, + permitted-actions-Pattern + [1] IMPLICIT Bitstring-Pattern, + contents-type-Pattern + [2] Contents-Type-Pattern, + linked-Object-Pattern + [19] IMPLICIT Pathname-Pattern, + child-objects-Pattern + [23] IMPLICIT Pathname-Pattern, + -- Storage group + primaty-pathname-Pattern + [20] IMPLICIT Pathname-Pattern, + storage-account-Pattern + [3] IMPLICIT String-Pattern, + date-and-time-of-creation-Pattern + [4] IMPLICIT Date-and-Time-Pattern, + date-and-time-of-last-modification-Pattern + [5] IMPLICIT Date-and-Time-Pattern, + date-and-time-of-last-read-access-Pattern + [6] IMPLICIT Date-and-Time-Pattern, + date-and-time-of-last-attribute-modification-Pattern + [7] IMPLICIT Date-and-Time-Pattern, + identity-of-creator-Pattern + [8] IMPLICIT User-Identity-Pattern, + identity-of-last-modifier-Pattern + [9] IMPLICIT User-Identity-Pattern, + identity-of-last-reader-Pattern + [10] IMPLICIT User-Identity-Pattern, + identity-of-last-attribute-modifier-Pattern + [11] IMPLICIT User-Identity-Pattern, + object-availabiiity-Pattern + [12] IMPLICIT Boolean-Pattern, + object-size-Pattern + [13] IMPLICIT Integer-Pattern, + future-object-size-Pattern + [14] IMPLICIT Integer-Pattern, + -- Security group + -- Access control searches are disallowed. + legal-quailfication-Pattern + [16] IMPLICIT String-Pattern, + -- Private group + -- Private use searches are disallowed. + -- Attribute Extensions group + attribute-extensions-pattern + [22] IMPLICIT Attribute-Extensions-Pattern} + +User-Identity-Pattern ::= String-Pattern + +Equality-Comparision ::= BIT STRING { + no-value-available-matches(0), + -- Set impies ?No Value Available? matches the test. + -- Clear implies ?No Value Availabie? fails the test. + equals-matches(1) + +-- Set implies equal items match the test. +-- Clear implies equal items fail the test. +} + +Relational-Comparision ::= BIT STRING { + no-value-available-matches(0), + -- Set impies ?No Value Available? matches the test. + -- Clear implies ?No Value Available? fails the test. + equals-matches(1), + -- Set implies equal items match the test.? + -- Clear implies equal items fail the test. + less-than-matches(2), + -- Set implies a value less than the test cke matches. + -- Clear implies a value less than the test case fails. + greater-than-matches(3) + +-- Set implies a value greater than the test case matches. +-- Clear implies a value greater than the test case fails. +} + +-- Bits 1 through 3 shall not all have the Same value. +Pathname-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + pathname-value + [1] IMPLICIT SEQUENCE OF + CHOICE {string-match [2] IMPLICIT String-Pattern, + any-match [3] IMPLICIT NULL} +} + +String-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + string-value + [1] IMPLICIT SEQUENCE OF + CHOICE {substring-match + [2] IMPLICIT GraphicString, + any-match [3] IMPLICIT NULL, + number-of-characters-match [4] IMPLICIT INTEGER + } +} + +Bitstring-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + match-bitstring [1] IMPLICIT BIT STRING, + significance-bitstring [2] IMPLICIT BIT STRING +} + +Date-and-Time-Pattern ::= SEQUENCE { + relational-camparision [0] IMPLICIT Equality-Comparision, + time-and-date-value [1] IMPLICIT GeneralizedTime +} + +Integer-Pattern ::= SEQUENCE { + relational-comparision [0] IMPLICIT Relational-Comparision, + integer-value [1] IMPLICIT INTEGER +} + +Object-Identifier-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + object-identifier-value [1] IMPLICIT OBJECT IDENTIFIER +} + +Boolean-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + boolean-value [1] IMPLICIT BOOLEAN +} + +Other-Pattern ::= Equality-Comparision + +-- Matches against ?No Value Available?. +Contents-Type-Pattern ::= CHOICE { + document-type-Pattern + [0] IMPLICIT Object-Identifier-Pattern, + constraint-set-abstract-Syntax-Pattern + [1] IMPLICIT SEQUENCE {constraint-Set-Pattern + [2] IMPLICIT Object-Identifier-Pattern OPTIONAL, + -- Absent implies any Object Identifier is equal. + abstract-Syntax-Pattern + [3] IMPLICIT Object-Identifier-Pattern OPTIONAL + -- Absent implies any Object identifier is equal. + } +} + +Attribute-Extensions-Pattern ::= + SEQUENCE OF + SEQUENCE {extension-set-identifier + [0] IMPLICIT Extension-Set-Identifier, + extension-set-attribute-Patterns + [1] IMPLICIT SEQUENCE OF + SEQUENCE {extension-attribute-identifier + TYPE-IDENTIFIER.&id + ({Extension-attribute-Patterns}), + extension-attribute-Pattern + TYPE-IDENTIFIER.&Type + ({Extension-attribute-Patterns} + {@.extension-attribute-identifier}) + }} + +-- conjunction with the extention attribute in Order to +-- perform Pattern matthing operations on it. it may be +-- defined in terms of other Patterns within this +-- Standard. +Extension-attribute-Patterns TYPE-IDENTIFIER ::= + {...} -- dynamically extensible information object set + +Destination-File-Directory ::= [APPLICATION 24] Pathname-Attribute + +Objects-Attributes-List ::= + [APPLICATION 25] IMPLICIT SEQUENCE OF Read-Attributes + +Override ::= INTEGER { + create-failure(0), select-old-Object(1), + delete-and-create-with-old-attributes(2), + delete-and-create-with-new-attributes(3)} + +Error-Action ::= INTEGER {terminate(0), continue(1)} + +Operation-Result ::= [APPLICATION 30] CHOICE { + success-Object-count [0] IMPLICIT INTEGER, + success-Object-names [1] IMPLICIT SEQUENCE OF Pathname +} + +Pathname ::= SEQUENCE OF GraphicString + +Pass-Passwords ::= SEQUENCE OF Password + +-- There is a one-to-one correspondence between the elements of +-- Pass-Passwords and the non-terminal elements of the specified +-- Pathname. +Path-Access-Passwords ::= + [APPLICATION 27] IMPLICIT + SEQUENCE OF + SEQUENCE {read-password [0] Password, + insert-password [1] Password, + replace-password [2] Password, + extend-password [3] Password, + erase-password [4] Password, + read-attribute-password [5] Password, + change-attribute-password [6] Password, + delete-password [7] Password, + pass-passwords [8] IMPLICIT Pass-Passwords, + link-password [9] Password} + +-- There is a one-to-one correspondence between the elements of +-- Path-Access-Passwords and the non-terminal elements sf the +-- specified Pathname. +Request-Operation-Result ::= [APPLICATION 31] IMPLICIT INTEGER { + summary(0), fiii-list(1)} + +Attribute-Names ::= BIT STRING -- Kernel group + { + read-pathname(0), read-Object-type(18), read-permitted-actions(1), + read-contents-type(2), read-linked-Object(19), + read-Child-objects(23), + -- Storage group + read-primary-pathname(20), read-storage-account(3), + read-date-and-time-of-creation(4), + read-date-and-time-of-last-modification(5), + read-date-and-time-of-last-read-access(6), + read-date-and-time-of-last-attribute-modification(7), + read-identity-of-creator(8), read-identity-of-last-modifier(9), + read-identity-of-last-reader(10), + read-identity-of-last-attribute-modifier(11), read-Object-availability(12), + read-Object-size(13), + read-future-Object-size(14), + -- Security group + read-access-control(15), read-path-access-control(21), + read-l8gal-qualifiCatiOnS(16), + -- Private group + read-private-use(17)} + +-- Bits 19 through 23 arc defined if and only if the limited-fil8Store-manag8m8nt +-- or group-manipulation functionat units are available. +Referent-Indicator ::= [APPLICATION 29] IMPLICIT BOOLEAN + +-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990 +-- dw: defined in-line here so we don't need to import it, original comments +-- dw: are as they appear in the 8650:1988 Annex E +AP-title ::= TYPE-IDENTIFIER.&Type + +-- The exact definition and values used for AP-title +-- should be chosen taking into account the ongoing +-- work in areas of naming, the Directory, and the +-- Registration Authority procedures for AE titles, +-- AE titles, and AE qualifiers +AE-qualifier ::= TYPE-IDENTIFIER.&Type + +-- The exact definition and values used for AE-qualifier +-- should be chosen taking into account the ongoing +-- work in areas of naming, the Directory, and the +-- Registration Authority procedures for AE titles, +-- AE titles, and AE qualifiers +AE-title ::= SEQUENCE {ap AP-title, + ae AE-qualifier +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn b/lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn new file mode 100644 index 0000000000..0149602040 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/ISO9541-SN.asn @@ -0,0 +1,51 @@ +-- Module ISO9541-SN (ISO:1991) +-- +-- Copyright � ISO/IEC 1991. This version of +-- this ASN.1 module is part of ISO|IEC 9541-2:1991; +-- see the ISO|IEC text itself for full legal notices. +-- +ISO9541-SN {1 0 9541 2 3} DEFINITIONS ::= +BEGIN + +EXPORTS Structured-Name, Owner-Name, Object-Name-Component; + +Structured-Name ::= SEQUENCE { + owner-name [0] IMPLICIT Owner-Name OPTIONAL, + -- length restricted to 120 characters + owner-description [1] Message OPTIONAL, + object-name [2] SEQUENCE OF Object-Name-Component OPTIONAL, + -- length restricted to 100 characters + object-description [3] Message OPTIONAL +} + +Owner-Name ::= SEQUENCE { + objectIdentifier [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + ownerNameComponent [1] SEQUENCE OF Owner-Name-Component OPTIONAL +} + +Owner-Name-Component ::= [0] VisibleString + +-- except for "//" and "::" +Object-Name-Component ::= [0] VisibleString + +-- only characters from the following +-- repertoire: "A-Z", "a-z", "0-9", +-- Hyphen, and Period. If the name +-- component is a numeric value, +-- the first digit is in the range +-- of 1 to 9 +Message ::= CHOICE { + numeric [0] NumericString, + printable [1] PrintableString, + teletex [2] TeletexString, + videotex [3] VideotexString, + visible [4] VisibleString, + ia5 [5] IA5String, + graphic [6] GraphicString, + general [7] GeneralString +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn new file mode 100644 index 0000000000..bd1d8d3c48 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Identifiers-and-Expressions.asn @@ -0,0 +1,126 @@ +-- Module Identifiers-and-Expressions (T.415:03/1993) + +Identifiers-and-Expressions {2 8 1 5 7} DEFINITIONS ::= +BEGIN + +EXPORTS + Content-Portion-Identifier, Object-or-Class-Identifier, Style-Identifier, + Protected-Part-Identifier, Category-Name, Resource-Name, Binding-Name, + Construction-Expression, Object-Id-Expression, Numeric-Expression, + String-Expression; + +IMPORTS + Layout-Object-Type + FROM Layout-Descriptors -- see 7.9 + + Logical-Object-Type + FROM Logical-Descriptors; -- see 7.10 + +Content-Portion-Identifier ::= [APPLICATION 0] IMPLICIT PrintableString + +-- only digits and space are used in the present version +-- of this Specification; other characters are reserved for extensions +Object-or-Class-Identifier ::= [APPLICATION 1] IMPLICIT PrintableString + +-- only digits and space are used in the present version +-- of this Specification; other characters are reserved for extensions; +-- a 'null' value is represented by an empty string +Style-Identifier ::= [APPLICATION 5] IMPLICIT PrintableString + +-- only digits and space are used in the present version +-- of this Specification; other characters are reserved for extensions; +-- a 'null' value is represented by an empty string +Protected-Part-Identifier ::= [APPLICATION 7] IMPLICIT PrintableString + +-- only digits and space are used in the present version +-- of this Specification; other characters are reserved for extensions; +-- a 'null' value is represented by an empty string +Category-Name ::= PrintableString + +-- a 'null' value is represented by an empty string +Resource-Name ::= PrintableString + +Binding-Name ::= PrintableString + +Construction-Expression ::= CHOICE { + construction-type Construction-Type, + single-term-construction [3] Construction-Term +} + +Construction-Type ::= CHOICE { + sequence-construction [0] IMPLICIT Term-Sequence, + aggregate-construction [1] IMPLICIT Term-Sequence, + choice-construction [2] IMPLICIT Term-Sequence +} + +Term-Sequence ::= SEQUENCE OF Construction-Term + +Construction-Term ::= CHOICE { + required-construction-factor [0] Construction-Factor, + optional-construction-factor [1] Construction-Factor, + repetitive-construction-factor [2] Construction-Factor, + optional-repetitive-factor [3] Construction-Factor +} + +Construction-Factor ::= CHOICE { + object-class-identifier Object-or-Class-Identifier, + construction-type Construction-Type +} + +Object-Id-Expression ::= CHOICE { + current-object-function [0] IMPLICIT NULL, + preceding-object-function [1] Object-Id-Expression, + superior-object-function [3] Object-Id-Expression, + current-instance-function [4] Current-Instance-Function +} + +Numeric-Expression ::= CHOICE { + numeric-literal [0] IMPLICIT INTEGER, + increment-application [1] Numeric-Expression, + decrement-application [2] Numeric-Expression, + ordinal-application + [3] CHOICE {identifier Object-or-Class-Identifier, + expression Object-Id-Expression}, + binding-reference [4] IMPLICIT Binding-Reference +} + +Binding-Reference ::= SET { + object-reference + CHOICE {identifier Object-or-Class-Identifier, + expression Binding-Selection-Function}, + binding-identifier Binding-Name +} + +Binding-Selection-Function ::= CHOICE { + current-object-function [0] IMPLICIT NULL, + preceding-function [1] Object-Id-Expression, + superior-function [3] Object-Id-Expression, + current-instance-function [4] Current-Instance-Function +} + +Current-Instance-Function ::= SEQUENCE { + first-parameter + CHOICE {identifier [0] IMPLICIT Object-or-Class-Identifier, + layout-object-type [1] IMPLICIT Layout-Object-Type, + logical-object-type [2] IMPLICIT Logical-Object-Type}, + second-parameter + CHOICE {identifier Object-or-Class-Identifier, + expression Object-Id-Expression} +} + +String-Expression ::= SEQUENCE OF Atomic-String-Expression + +Atomic-String-Expression ::= CHOICE { + string-literal [0] IMPLICIT OCTET STRING, + binding-reference [2] IMPLICIT Binding-Reference, + make-string-application [3] Numeric-Expression, + upper-alpha-application [4] Numeric-Expression, + lower-alpha-application [5] Numeric-Expression, + upper-roman-application [6] Numeric-Expression, + lower-roman-application [7] Numeric-Expression +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn b/lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn new file mode 100644 index 0000000000..813ac9c6a0 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/InformationFramework.asn @@ -0,0 +1,868 @@ +-- Module InformationFramework (X.501:08/1997) +InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) + 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-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes, + directoryAbstractService, upperBounds + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch, + integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch, + integerFirstComponentMatch, DirectoryString{} + FROM SelectedAttributeTypes selectedAttributeTypes + TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions, + HierarchySelections, FamilyGrouping, FamilyReturn + FROM DirectoryAbstractService directoryAbstractService + ub-search + FROM UpperBounds upperBounds; + +-- attribute data types +Attribute ::= SEQUENCE { + type ATTRIBUTE.&id({SupportedAttributes}), + values + SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}), + valuesWithContext + SET SIZE (1..MAX) OF + SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}), + contextList SET SIZE (1..MAX) OF Context} OPTIONAL +} + +AttributeType ::= ATTRIBUTE.&id + +AttributeValue ::= ATTRIBUTE.&Type + +Context ::= SEQUENCE { + contextType CONTEXT.&id({SupportedContexts}), + contextValues + SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}), + fallback BOOLEAN DEFAULT FALSE +} + +AttributeValueAssertion ::= SEQUENCE { + type ATTRIBUTE.&id({SupportedAttributes}), + assertion + ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}), + assertedContexts + CHOICE {allContexts [0] NULL, + selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion + } OPTIONAL +} + +ContextAssertion ::= SEQUENCE { + contextType CONTEXT.&id({SupportedContexts}), + contextValues + SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType}) +} + +AttributeTypeAssertion ::= SEQUENCE { + type ATTRIBUTE.&id({SupportedAttributes}), + assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion 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 values component of Attribute, the value component +-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion. +SupportedAttributes ATTRIBUTE ::= + {objectClass | aliasedEntryName, ...} + +-- 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 context specifications +SupportedContexts CONTEXT ::= + {...} + +-- naming data types +Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence +} + +RDNSequence ::= SEQUENCE OF RelativeDistinguishedName + +DistinguishedName ::= RDNSequence + +RelativeDistinguishedName ::= + SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue + +AttributeTypeAndDistinguishedValue ::= SEQUENCE { + type ATTRIBUTE.&id({SupportedAttributes}), + value ATTRIBUTE.&Type({SupportedAttributes}{@type}), + primaryDistinguished BOOLEAN DEFAULT TRUE, + valuesWithContext + SET SIZE (1..MAX) OF + SEQUENCE {distingAttrValue + [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL, + contextList SET SIZE (1..MAX) OF Context} OPTIONAL +} + +-- subtree data types +SubtreeSpecification ::= SEQUENCE { + base [0] LocalName DEFAULT {}, + COMPONENTS OF ChopSpecification, + specificationFilter [4] Refinement OPTIONAL +} + +-- empty sequence specifies whole administrative area +LocalName ::= RDNSequence + +ChopSpecification ::= SEQUENCE { + specificExclusions + [1] SET SIZE (1..MAX) OF + CHOICE {chopBefore [0] LocalName, + chopAfter [1] LocalName} OPTIONAL, + minimum [2] BaseDistance DEFAULT 0, + maximum [3] BaseDistance OPTIONAL +} + +BaseDistance ::= INTEGER(0..MAX) + +Refinement ::= CHOICE { + item [0] OBJECT-CLASS.&id, + and [1] SET OF Refinement, + or [2] SET OF Refinement, + not [3] Refinement +} + +-- OBJECT-CLASS information object class specification +OBJECT-CLASS ::= CLASS { + &Superclasses OBJECT-CLASS OPTIONAL, + &kind ObjectClassKind DEFAULT structural, + &MandatoryAttributes ATTRIBUTE OPTIONAL, + &OptionalAttributes ATTRIBUTE OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + [SUBCLASS OF &Superclasses] + [KIND &kind] + [MUST CONTAIN &MandatoryAttributes] + [MAY CONTAIN &OptionalAttributes] + ID &id +} + +ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} + +-- object classes +top OBJECT-CLASS ::= { + KIND abstract + MUST CONTAIN {objectClass} + ID id-oc-top +} + +alias OBJECT-CLASS ::= { + SUBCLASS OF {top} + MUST CONTAIN {aliasedEntryName} + ID id-oc-alias +} + +parent OBJECT-CLASS ::= {KIND abstract + ID id-oc-parent +} + +child OBJECT-CLASS ::= {KIND auxiliary + ID id-oc-child +} + +-- ATTRIBUTE information object class specification +ATTRIBUTE ::= CLASS { + &derivation ATTRIBUTE OPTIONAL, + &Type OPTIONAL, -- either &Type or &derivation required + &equality-match MATCHING-RULE OPTIONAL, + &ordering-match MATCHING-RULE OPTIONAL, + &substrings-match MATCHING-RULE OPTIONAL, + &single-valued BOOLEAN DEFAULT FALSE, + &collective BOOLEAN DEFAULT FALSE, + -- operational extensions + &no-user-modification BOOLEAN DEFAULT FALSE, + &usage AttributeUsage DEFAULT userApplications, + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + [SUBTYPE OF &derivation] + [WITH SYNTAX &Type] + [EQUALITY MATCHING RULE &equality-match] + [ORDERING MATCHING RULE &ordering-match] + [SUBSTRINGS MATCHING RULE &substrings-match] + [SINGLE VALUE &single-valued] + [COLLECTIVE &collective] + [NO USER MODIFICATION &no-user-modification] + [USAGE &usage] + ID &id +} + +AttributeUsage ::= ENUMERATED { + userApplications(0), directoryOperation(1), distributedOperation(2), + dSAOperation(3)} + +-- attributes +objectClass ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-at-objectClass +} + +aliasedEntryName ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + SINGLE VALUE TRUE + ID id-at-aliasedEntryName +} + +-- MATCHING-RULE information object class specification +MATCHING-RULE ::= CLASS { + &ParentMatchingRules MATCHING-RULE.&id OPTIONAL, + &AssertionType OPTIONAL, + &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + [PARENT &ParentMatchingRules] + [SYNTAX &AssertionType] + [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator] + ID &id +} + +-- matching rules +objectIdentifierMatch MATCHING-RULE ::= { + SYNTAX OBJECT IDENTIFIER + ID id-mr-objectIdentifierMatch +} + +distinguishedNameMatch MATCHING-RULE ::= { + SYNTAX DistinguishedName + ID id-mr-distinguishedNameMatch +} + +MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult, + OBJECT IDENTIFIER:matchingRule} ::= CLASS { + &selectBy SelectedBy OPTIONAL, + &ApplicableTo ATTRIBUTE, + &subtypesIncluded BOOLEAN DEFAULT TRUE, + &combinable BOOLEAN(combinable), + &mappingResults MappingResult OPTIONAL, + &userControl BOOLEAN DEFAULT FALSE, + &exclusive BOOLEAN DEFAULT TRUE, + &matching-rule MATCHING-RULE.&id(matchingRule), + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + [SELECT BY &selectBy] + APPLICABLE TO &ApplicableTo + [SUBTYPES INCLUDED &subtypesIncluded] + COMBINABLE &combinable + [MAPPING RESULTS &mappingResults] + [USER CONTROL &userControl] + [EXCLUSIVE &exclusive] + MATCHING RULE &matching-rule + ID &id +} + +-- NAME-FORM information object class specification +NAME-FORM ::= CLASS { + &namedObjectClass OBJECT-CLASS, + &MandatoryAttributes ATTRIBUTE, + &OptionalAttributes ATTRIBUTE OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + NAMES &namedObjectClass + WITH ATTRIBUTES &MandatoryAttributes + [AND OPTIONALLY &OptionalAttributes] + ID &id +} + +-- STRUCTURE-RULE class and DIT structure rule data types +STRUCTURE-RULE ::= CLASS { + &nameForm NAME-FORM, + &SuperiorStructureRules STRUCTURE-RULE OPTIONAL, + &id RuleIdentifier +} +WITH SYNTAX { + NAME FORM &nameForm + [SUPERIOR RULES &SuperiorStructureRules] + ID &id +} + +DITStructureRule ::= SEQUENCE { + ruleIdentifier RuleIdentifier, + -- must be unique within the scope of the subschema + nameForm NAME-FORM.&id, + superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL +} + +RuleIdentifier ::= INTEGER + +-- CONTENT-RULE class and DIT content rule data types +CONTENT-RULE ::= CLASS { + &structuralClass OBJECT-CLASS.&id UNIQUE, + &Auxiliaries OBJECT-CLASS OPTIONAL, + &Mandatory ATTRIBUTE OPTIONAL, + &Optional ATTRIBUTE OPTIONAL, + &Precluded ATTRIBUTE OPTIONAL +} +WITH SYNTAX { + STRUCTURAL OBJECT-CLASS &structuralClass + [AUXILIARY OBJECT-CLASSES &Auxiliaries] + [MUST CONTAIN &Mandatory] + [MAY CONTAIN &Optional] + [MUST-NOT CONTAIN &Precluded] +} + +DITContentRule ::= SEQUENCE { + structuralObjectClass OBJECT-CLASS.&id, + auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL, + mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL, + optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL, + precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL +} + +CONTEXT ::= CLASS { + &Type , + &Assertion OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE +}WITH SYNTAX {WITH SYNTAX &Type + [ASSERTED AS &Assertion] + ID &id +} + +DITContextUse ::= SEQUENCE { + attributeType ATTRIBUTE.&id, + mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL, + optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL +} + +DIT-CONTEXT-USE-RULE ::= CLASS { + &attributeType ATTRIBUTE.&id UNIQUE, + &Mandatory CONTEXT OPTIONAL, + &Optional CONTEXT OPTIONAL +} +WITH SYNTAX { + ATTRIBUTE TYPE &attributeType + [MANDATORY CONTEXTS &Mandatory] + [OPTIONAL CONTEXTS &Optional] +} + +-- system schema information objects +-- object classes +subentry OBJECT-CLASS ::= { + SUBCLASS OF {top} + KIND structural + MUST CONTAIN {commonName | subtreeSpecification} + ID id-sc-subentry +} + +subentryNameForm NAME-FORM ::= { + NAMES subentry + WITH ATTRIBUTES {commonName} + ID id-nf-subentryNameForm +} + +accessControlSubentry OBJECT-CLASS ::= { + KIND auxiliary + ID id-sc-accessControlSubentry +} + +collectiveAttributeSubentry OBJECT-CLASS ::= { + KIND auxiliary + ID id-sc-collectiveAttributeSubentry +} + +contextAssertionSubentry OBJECT-CLASS ::= { + KIND auxiliary + MUST CONTAIN {contextAssertionDefaults} + ID id-sc-contextAssertionSubentry +} + +serviceAdminSubentry OBJECT-CLASS ::= { + KIND auxiliary + MUST CONTAIN {searchRules} + ID id-sc-serviceAdminSubentry +} + +-- attributes +createTimestamp ATTRIBUTE ::= { + WITH SYNTAX GeneralizedTime + -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1 + EQUALITY MATCHING RULE generalizedTimeMatch + ORDERING MATCHING RULE generalizedTimeOrderingMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-createTimestamp +} + +modifyTimestamp ATTRIBUTE ::= { + WITH SYNTAX GeneralizedTime + -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1 + EQUALITY MATCHING RULE generalizedTimeMatch + ORDERING MATCHING RULE generalizedTimeOrderingMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-modifyTimestamp +} + +subschemaTimestamp ATTRIBUTE ::= { + WITH SYNTAX GeneralizedTime + -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1 + EQUALITY MATCHING RULE generalizedTimeMatch + ORDERING MATCHING RULE generalizedTimeOrderingMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-subschemaTimestamp +} + +creatorsName ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-creatorsName +} + +modifiersName ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-modifiersName +} + +subschemaSubentryList ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-subschemaSubentryList +} + +accessControlSubentryList ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-accessControlSubentryList +} + +collectiveAttributeSubentryList ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-collectiveAttributeSubentryList +} + +contextDefaultSubentryList ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-contextDefaultSubentryList +} + +serviceAdminSubentryList ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-serviceAdminSubentryList +} + +hasSubordinates ATTRIBUTE ::= { + WITH SYNTAX BOOLEAN + EQUALITY MATCHING RULE booleanMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-hasSubordinates +} + +administrativeRole ATTRIBUTE ::= { + WITH SYNTAX OBJECT-CLASS.&id + EQUALITY MATCHING RULE objectIdentifierMatch + USAGE directoryOperation + ID id-oa-administrativeRole +} + +subtreeSpecification ATTRIBUTE ::= { + WITH SYNTAX SubtreeSpecification + USAGE directoryOperation + ID id-oa-subtreeSpecification +} + +collectiveExclusions ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + USAGE directoryOperation + ID id-oa-collectiveExclusions +} + +contextAssertionDefaults ATTRIBUTE ::= { + WITH SYNTAX TypeAndContextAssertion + EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch + USAGE directoryOperation + ID id-oa-contextAssertionDefault +} + +searchRules ATTRIBUTE ::= { + WITH SYNTAX SearchRuleDescription + EQUALITY MATCHING RULE integerFirstComponentMatch + USAGE directoryOperation + ID id-oa-searchRules +} + +SearchRuleDescription ::= SEQUENCE { + COMPONENTS OF SearchRule, + name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL, + description [29] DirectoryString{ub-search} OPTIONAL, + obsolete [30] BOOLEAN DEFAULT FALSE +} + +hierarchyLevel ATTRIBUTE ::= { + WITH SYNTAX INTEGER + EQUALITY MATCHING RULE integerMatch + ORDERING MATCHING RULE integerOrderingMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-hierarchyLevel +} + +hierarchyBelow ATTRIBUTE ::= { + WITH SYNTAX BOOLEAN + EQUALITY MATCHING RULE booleanMatch + SINGLE VALUE TRUE + NO USER MODIFICATION TRUE + USAGE directoryOperation + ID id-oa-hierarchyBelow +} + +hierarchyParent ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + SINGLE VALUE TRUE + USAGE directoryOperation + ID id-oa-hierarchyParent +} + +SearchRule ::= SEQUENCE { + COMPONENTS OF SearchRuleId, + serviceType [1] OBJECT IDENTIFIER OPTIONAL, + userClass [2] INTEGER OPTIONAL, + inputAttributeTypes + [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL, + attributeCombination [4] AttributeCombination DEFAULT and:{}, + outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL, + defaultControls [6] ControlOptions OPTIONAL, + mandatoryControls [7] ControlOptions OPTIONAL, + searchRuleControls [8] ControlOptions OPTIONAL, + familyGrouping [9] FamilyGrouping OPTIONAL, + familyReturn [10] FamilyReturn OPTIONAL, + relaxation [11] RelaxationPolicy OPTIONAL, + additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL, + allowedSubset [13] AllowedSubset DEFAULT '111'B, + imposedSubset [14] ImposedSubset OPTIONAL, + entryLimit [15] EntryLimit OPTIONAL +} + +SearchRuleId ::= SEQUENCE {id INTEGER, + dmdId [0] OBJECT IDENTIFIER +} + +AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)} + +ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)} + +RequestAttribute ::= SEQUENCE { + attributeType ATTRIBUTE.&id({SupportedAttributes}), + includeSubtypes [0] BOOLEAN DEFAULT FALSE, + selectedValues + [1] SEQUENCE SIZE (0..MAX) OF + ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL, + defaultValues + [2] SEQUENCE SIZE (0..MAX) OF + SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL, + values + SEQUENCE OF + ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) + } OPTIONAL, + contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL, + contextCombination [4] ContextCombination DEFAULT and:{}, + matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL +} + +ContextProfile ::= SEQUENCE { + contextType CONTEXT.&id({SupportedContexts}), + contextValue + SEQUENCE SIZE (1..MAX) OF + CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL +} + +ContextCombination ::= CHOICE { + context [0] CONTEXT.&id, + and [1] SEQUENCE OF ContextCombination, + or [2] SEQUENCE OF ContextCombination, + not [3] ContextCombination +} + +MatchingUse ::= SEQUENCE { + restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}), + restrictionValue + MATCHING-RESTRICTION.&Restriction + ({SupportedMatchingRestrictions}{@restrictionType}) +} + +-- 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 components of SupportedMatchingRestrictions +SupportedMatchingRestrictions MATCHING-RESTRICTION ::= + {...} + +AttributeCombination ::= CHOICE { + attribute [0] AttributeType, + and [1] SEQUENCE OF AttributeCombination, + or [2] SEQUENCE OF AttributeCombination, + not [3] AttributeCombination +} + +ResultAttribute ::= SEQUENCE { + attributeType ATTRIBUTE.&id({SupportedAttributes}), + outputValues + CHOICE {selectedValues + SEQUENCE SIZE (1..MAX) OF + ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}), + matchedValuesOnly NULL} OPTIONAL, + contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL +} + +OutputValues ::= CHOICE { + selectedValues + SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}), + matchedValuesOnly NULL +} + +ControlOptions ::= SEQUENCE { + serviceControls [0] ServiceControlOptions DEFAULT {}, + searchOptions [1] SearchControlOptions DEFAULT {searchAliases}, + hierarchyOptions [2] HierarchySelections OPTIONAL +} + +EntryLimit ::= SEQUENCE {default INTEGER, + max INTEGER +} + +RelaxationPolicy ::= SEQUENCE { + basic [0] MRMapping DEFAULT {}, + tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL, + relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL, + maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present + minimum [4] INTEGER DEFAULT 1 +} + +MRMapping ::= SEQUENCE { + mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL, + substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL +} + +Mapping ::= SEQUENCE { + mappingFunction + OBJECT IDENTIFIER + (CONSTRAINED BY {-- shall be an-- + + -- object identifier of a mapping-based matching algorithm -- }), + level INTEGER DEFAULT 0 +} + +MRSubstitution ::= SEQUENCE { + attribute AttributeType, + oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL, + newMatchingRule [1] MATCHING-RULE.&id OPTIONAL +} + +SEARCH-RULE ::= CLASS { + &dmdId OBJECT IDENTIFIER, + &serviceType OBJECT IDENTIFIER OPTIONAL, + &userClass INTEGER OPTIONAL, + &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL, + &combination AttributeCombination OPTIONAL, + &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL, + &defaultControls ControlOptions OPTIONAL, + &mandatoryControls ControlOptions OPTIONAL, + &searchRuleControls ControlOptions OPTIONAL, + &familyGrouping FamilyGrouping OPTIONAL, + &familyReturn FamilyReturn OPTIONAL, + &additionalControl AttributeType OPTIONAL, + &relaxation RelaxationPolicy OPTIONAL, + &entryLimit EntryLimit OPTIONAL, + &allowedSubset AllowedSubset DEFAULT '111'B, + &imposedSubset ImposedSubset OPTIONAL, + &id INTEGER UNIQUE +} +WITH SYNTAX { + DMD ID &dmdId + [SERVICE-TYPE &serviceType] + [USER-CLASS &userClass] + [INPUT ATTRIBUTES &InputAttributeTypes] + [COMBINATION &combination] + [OUTPUT ATTRIBUTES &OutputAttributeTypes] + [DEFAULT CONTROL &defaultControls] + [MANDATORY CONTROL &mandatoryControls] + [SEARCH-RULE CONTROL &searchRuleControls] + [FAMILY-GROUPING &familyGrouping] + [FAMILY-RETURN &familyReturn] + [ADDITIONAL CONTROL &additionalControl] + [RELAXATION &relaxation] + [ALLOWED SUBSET &allowedSubset] + [IMPOSED SUBSET &imposedSubset] + [ENTRY LIMIT &entryLimit] + ID &id +} + +REQUEST-ATTRIBUTE ::= CLASS { + &attributeType ATTRIBUTE.&id, + &SelectedValues ATTRIBUTE.&Type OPTIONAL, + &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL, + values SEQUENCE OF ATTRIBUTE.&Type + } OPTIONAL, + &contexts SEQUENCE OF ContextProfile OPTIONAL, + &contextCombination ContextCombination OPTIONAL, + &MatchingUse MatchingUse OPTIONAL, + &includeSubtypes BOOLEAN DEFAULT FALSE +} +WITH SYNTAX { + ATTRIBUTE TYPE &attributeType + [SELECTED VALUES &SelectedValues] + [DEFAULT VALUES &DefaultValues] + [CONTEXTS &contexts] + [CONTEXT COMBINATION &contextCombination] + [MATCHING USE &MatchingUse] + [INCLUDE SUBTYPES &includeSubtypes] +} + +RESULT-ATTRIBUTE ::= CLASS { + &attributeType ATTRIBUTE.&id, + &outputValues OutputValues OPTIONAL, + &contexts ContextProfile OPTIONAL +} +WITH SYNTAX { + ATTRIBUTE TYPE &attributeType + [OUTPUT VALUES &outputValues] + [CONTEXTS &contexts] +} + +MATCHING-RESTRICTION ::= CLASS { + &Restriction , + &Rules MATCHING-RULE.&id, + &id OBJECT IDENTIFIER UNIQUE +}WITH SYNTAX {RESTRICTION &Restriction + RULES &Rules + ID &id +} + +-- object identifier assignments +-- object classes +id-oc-top OBJECT IDENTIFIER ::= + {id-oc 0} + +id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1} + +id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28} + +id-oc-child OBJECT IDENTIFIER ::= {id-oc 29} + +-- attributes +id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0} + +id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1} + +-- matching rules +id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0} + +id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1} + +-- operational attributes +id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::= + {id-oa 0} + +id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1} + +id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2} + +id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3} + +id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4} + +id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5} + +id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6} + +id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7} + +id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8} + +id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9} + +id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10} + +id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11} + +id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12} + +id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13} + +id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14} + +id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15} + +id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16} + +id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17} + +id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18} + +id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19} + +-- subentry classes +id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0} + +id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1} + +id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2} + +id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3} + +id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4} + +-- Name forms +id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16} + +-- administrative roles +id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1} + +id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2} + +id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3} + +id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4} + +id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5} + +id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6} + +id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7} + +id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8} + +END -- InformationFramework + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn b/lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn new file mode 100644 index 0000000000..2c78360b7b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Interchange-Data-Elements.asn @@ -0,0 +1,57 @@ +-- Module Interchange-Data-Elements (T.415:03/1993) + +Interchange-Data-Elements {2 8 1 5 5} DEFINITIONS ::= +BEGIN + +EXPORTS Interchange-Data-Element; + +IMPORTS + Document-Profile-Descriptor + FROM Document-Profile-Descriptor -- see 7.7 + + Layout-Class-Descriptor, Layout-Object-Descriptor + FROM Layout-Descriptors -- see 7.9 + + Logical-Class-Descriptor, Logical-Object-Descriptor + FROM Logical-Descriptors -- see 7.10 + + Presentation-Style-Descriptor, Layout-Style-Descriptor + FROM Style-Descriptors -- see 7.11 + + Text-Unit + FROM Text-Units -- see 7.13 + + Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor, + Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor + FROM Protected-Part-Descriptors -- see 7.15 + + Link-Class-Descriptor, Link-Descriptor, Enciphered-Link-Descriptor + FROM Link-Descriptors {2 8 1 14 3}; + +-- See ITU-T Rec. T.424 | ISO/IEC 8613-14 +Interchange-Data-Element ::= CHOICE { + document-profile [0] IMPLICIT Document-Profile-Descriptor, + layout-object-class [1] IMPLICIT Layout-Class-Descriptor, + layout-object [2] IMPLICIT Layout-Object-Descriptor, + content-portion [3] IMPLICIT Text-Unit, + logical-object-class [5] IMPLICIT Logical-Class-Descriptor, + logical-object [6] IMPLICIT Logical-Object-Descriptor, + presentation-style + [7] IMPLICIT Presentation-Style-Descriptor, + layout-style [8] IMPLICIT Layout-Style-Descriptor, + sealed-doc-prof-descriptor [9] IMPLICIT Sealed-Doc-Prof-Descriptor, + enciphered-doc-prof-descriptor + [10] IMPLICIT Enciphered-Doc-Prof-Descriptor, + preenciphered-bodypart-descriptor + [11] IMPLICIT Preenciphered-Bodypart-Descriptor, + postenciphered-bodypart-descriptor + [12] IMPLICIT Postenciphered-Bodypart-Descriptor, + link-class [13] IMPLICIT Link-Class-Descriptor, + link [14] IMPLICIT Link-Descriptor, + enciphered-link-descriptor [15] IMPLICIT Enciphered-Link-Descriptor +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn new file mode 100644 index 0000000000..92c887bb06 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Layout-Descriptors.asn @@ -0,0 +1,268 @@ +-- Module Layout-Descriptors (T.415:03/1993) + +Layout-Descriptors {2 8 1 5 8} DEFINITIONS ::= +BEGIN + +EXPORTS + Layout-Object-Descriptor, Layout-Class-Descriptor, Layout-Object-Type, + Transparency, Comment-String, Binding-Pair, One-Of-Four-Angles, + Measure-Pair, Dimension-Pair, Medium-Type, Colour, Border, + Content-Background-Colour, Content-Foreground-Colour, Enciphered, + Sealed; + +IMPORTS + Object-or-Class-Identifier, Style-Identifier, Protected-Part-Identifier, + Category-Name, Resource-Name, Binding-Name, Construction-Expression, + Object-Id-Expression, Numeric-Expression, String-Expression + FROM Identifiers-and-Expressions -- see 7.8 + + Presentation-Attributes + FROM Style-Descriptors -- see 7.11 + + Default-Value-Lists-Layout + FROM Default-Value-Lists -- see 7.12 + + Colour-Expression, Colour-Table + FROM Colour-Attributes -- see 7.14 + + Presentation-Time + FROM Temporal-Relationships {2 8 1 14 0}; + +-- See ITU-T Rec. T.424 | ISO/IEC 8613-14 +Position-Spec ::= SET { + offset + [0] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL, + trailing [1] IMPLICIT INTEGER OPTIONAL, + left-hand [2] IMPLICIT INTEGER OPTIONAL, + right-hand [3] IMPLICIT INTEGER OPTIONAL} OPTIONAL, + separation + [1] IMPLICIT SET {leading [0] IMPLICIT INTEGER OPTIONAL, + trailing [1] IMPLICIT INTEGER OPTIONAL, + centre [2] IMPLICIT INTEGER OPTIONAL} OPTIONAL, + alignment + [2] IMPLICIT INTEGER {right-hand(0), centred(1), left-hand(2)} OPTIONAL, + fill-order [3] IMPLICIT INTEGER {normal(0), reverse(1)} OPTIONAL +} + +Dimension-Pair ::= SEQUENCE { + horizontal + CHOICE {fixed [0] IMPLICIT INTEGER, + not-present [4] IMPLICIT NULL}, + vertical + CHOICE {fixed [0] IMPLICIT INTEGER, + variable [1] IMPLICIT INTEGER, + not-present [4] IMPLICIT NULL} +} + +-- the choice 'not-present' indicates that the parameter is not present +Dimension-Spec ::= SEQUENCE {horizontal Dimension, + vertical Dimension +} + +Dimension ::= CHOICE { + fixed [0] IMPLICIT INTEGER, + rule-a + [1] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL, + maximum [1] IMPLICIT INTEGER OPTIONAL}, + rule-b + [2] IMPLICIT SET {minimum [0] IMPLICIT INTEGER OPTIONAL, + maximum [1] IMPLICIT INTEGER OPTIONAL}, + maximum-size [3] IMPLICIT NULL, + not-present [4] IMPLICIT NULL +} + +-- the choice 'not-present' indicates that the parameter is not present +Transparency ::= INTEGER {transparent(0), opaque(1)} + +Comment-String ::= OCTET STRING + +-- string of characters from the sets designated by +-- the document profile attribute "comments character sets", +-- plus code extension control functions, +-- space, carriage return and line feed +Binding-Pair ::= SET { + binding-identifier [0] IMPLICIT Binding-Name, + binding-value + CHOICE {a [1] Object-Id-Expression, + b [2] Numeric-Expression, + c [3] String-Expression, + d [4] IMPLICIT Object-or-Class-Identifier, + e [5] IMPLICIT INTEGER, + f [6] IMPLICIT OCTET STRING} +} + +One-Of-Four-Angles ::= INTEGER {d0(0), d90(1), d180(2), d270(3)} + +Measure-Pair ::= SEQUENCE { + horizontal + CHOICE {fixed [0] IMPLICIT INTEGER, + not-present [4] IMPLICIT NULL}, + vertical + CHOICE {fixed [0] IMPLICIT INTEGER, + not-present [4] IMPLICIT NULL} +} + +-- the choice 'not-present' indicates that the parameter is not present +Medium-Type ::= SEQUENCE { + nominal-page-size Measure-Pair OPTIONAL, + side-of-sheet INTEGER {unspecified(0), recto(1), verso(2)} OPTIONAL, + colour-of-medium [3] Colour-Of-Medium OPTIONAL +} + +Colour ::= INTEGER {colour-of-media(0), coloured(1)} + +Border ::= SET { + left-hand-edge [0] IMPLICIT Border-Edge OPTIONAL, + right-hand-edge [1] IMPLICIT Border-Edge OPTIONAL, + trailing-edge [2] IMPLICIT Border-Edge OPTIONAL, + leading-edge [3] IMPLICIT Border-Edge OPTIONAL +} + +Border-Edge ::= SET { + line-width [0] IMPLICIT INTEGER OPTIONAL, + line-type + [1] IMPLICIT INTEGER {invisible(0), solid(1), dashed(2), dot(3), + dash-dot(4), dash-dot-dot(5)} OPTIONAL, + freespace-width [2] IMPLICIT INTEGER OPTIONAL, + border-line-colour [3] Border-Line-Colour OPTIONAL +} + +-- a 'null' border edge is represented by an empty set +Colour-Of-Medium ::= CHOICE { + unspecified-colour [3] IMPLICIT NULL, + specified-colour Colour-Expression +} + +Border-Line-Colour ::= CHOICE { + implementation-defined [3] IMPLICIT NULL, + colour-expression Colour-Expression +} + +Content-Background-Colour ::= CHOICE { + content-background-transparency [2] IMPLICIT NULL, + colour-expression Colour-Expression +} + +Content-Foreground-Colour ::= CHOICE { + implementation-defined [3] IMPLICIT NULL, + content-foreground-transparency [2] IMPLICIT NULL, + colour-expression Colour-Expression +} + +Enciphered ::= SEQUENCE { + enciphered-subordinates + CHOICE {none-all [0] IMPLICIT INTEGER {none(0), all(1)}, + partial [1] IMPLICIT SEQUENCE OF NumericString}, + protected-part-id [2] IMPLICIT Protected-Part-Identifier OPTIONAL +} + +Sealed ::= SEQUENCE { + sealed-status [0] IMPLICIT INTEGER {no(0), yes(1)}, + seal-ids [1] IMPLICIT SET OF INTEGER OPTIONAL +} + +Layout-Object-Descriptor ::= SEQUENCE { + object-type Layout-Object-Type OPTIONAL, + descriptor-body Layout-Object-Descriptor-Body OPTIONAL +} + +Layout-Object-Type ::= INTEGER { + document-layout-root(0), page-set(1), page(2), frame(3), block(4)} + +Layout-Object-Descriptor-Body ::= SET { + object-identifier Object-or-Class-Identifier OPTIONAL, + subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + object-class + [2] IMPLICIT Object-or-Class-Identifier OPTIONAL, + position [3] IMPLICIT Measure-Pair OPTIONAL, + dimensions [4] IMPLICIT Dimension-Pair OPTIONAL, + transparency [5] IMPLICIT Transparency OPTIONAL, + presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL, + default-value-lists + [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL, + user-readable-comments [8] IMPLICIT Comment-String OPTIONAL, + bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL, + layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL, + imaging-order + [12] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL, + layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL, + permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL, + -- a 'null' value is represented by an empty set + user-visible-name [14] IMPLICIT Comment-String OPTIONAL, + page-position [15] IMPLICIT Measure-Pair OPTIONAL, + medium-type [16] IMPLICIT Medium-Type OPTIONAL, + presentation-style [17] IMPLICIT Style-Identifier OPTIONAL, + balance + [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL, + -- a 'null' value is represented by an empty sequence + colour [22] IMPLICIT Colour OPTIONAL, + colour-of-layout-object [29] Colour-Expression OPTIONAL, + object-colour-table [30] IMPLICIT Colour-Table OPTIONAL, + content-background-colour [31] Content-Background-Colour OPTIONAL, + content-foreground-colour [32] Content-Foreground-Colour OPTIONAL, + content-colour-table [33] IMPLICIT Colour-Table OPTIONAL, + border [23] IMPLICIT Border OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + primary + [27] IMPLICIT Object-or-Class-Identifier OPTIONAL, + alternative + [28] IMPLICIT Object-or-Class-Identifier OPTIONAL, + enciphered [34] IMPLICIT Enciphered OPTIONAL, + sealed [35] IMPLICIT Sealed OPTIONAL, + presentation-time [52] IMPLICIT Presentation-Time OPTIONAL +} + +Layout-Class-Descriptor ::= SEQUENCE { + object-type Layout-Object-Type, + descriptor-body Layout-Class-Descriptor-Body +} + +Layout-Class-Descriptor-Body ::= SET { + object-class-identifier Object-or-Class-Identifier, + generator-for-subordinates [0] Construction-Expression OPTIONAL, + content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + position + CHOICE {fixed-position [3] IMPLICIT Measure-Pair, + variable-position [26] IMPLICIT Position-Spec} OPTIONAL, + dimensions [4] IMPLICIT Dimension-Spec OPTIONAL, + transparency [5] IMPLICIT Transparency OPTIONAL, + presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL, + default-value-lists + [7] IMPLICIT Default-Value-Lists-Layout OPTIONAL, + user-readable-comments [8] IMPLICIT Comment-String OPTIONAL, + bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL, + content-generator [10] IMPLICIT String-Expression OPTIONAL, + layout-path [11] IMPLICIT One-Of-Four-Angles OPTIONAL, + layout-stream-categories [36] IMPLICIT SET OF Category-Name OPTIONAL, + layout-stream-sub-categories [37] IMPLICIT SET OF Category-Name OPTIONAL, + permitted-categories [13] IMPLICIT SET OF Category-Name OPTIONAL, + -- a 'null' value is represented by an empty set + user-visible-name [14] IMPLICIT Comment-String OPTIONAL, + page-position [15] IMPLICIT Measure-Pair OPTIONAL, + medium-type [16] IMPLICIT Medium-Type OPTIONAL, + presentation-style [17] IMPLICIT Style-Identifier OPTIONAL, + logical-source + [18] IMPLICIT Object-or-Class-Identifier OPTIONAL, + balance + [21] IMPLICIT SEQUENCE OF Object-or-Class-Identifier OPTIONAL, + -- a 'null' value is represented by an empty sequence + colour [22] IMPLICIT Colour OPTIONAL, + colour-of-layout-object [29] Colour-Expression OPTIONAL, + object-colour-table [30] IMPLICIT Colour-Table OPTIONAL, + content-background-colour [31] Content-Background-Colour OPTIONAL, + content-foreground-colour [32] Content-Foreground-Colour OPTIONAL, + content-colour-table [33] IMPLICIT Colour-Table OPTIONAL, + border [23] IMPLICIT Border OPTIONAL, + resource [24] IMPLICIT Resource-Name OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + enciphered [34] IMPLICIT Enciphered OPTIONAL, + sealed [35] IMPLICIT Sealed OPTIONAL, + presentation-time [52] IMPLICIT Presentation-Time OPTIONAL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn new file mode 100644 index 0000000000..64fc4436e4 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Link-Descriptors.asn @@ -0,0 +1,80 @@ +-- Module Link-Descriptors (T.424:07/1996) + +Link-Descriptors {2 8 1 14 3} DEFINITIONS ::= +BEGIN + +EXPORTS + Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier, + Enciphered-Link-Descriptor; + +IMPORTS + Reference-Name + FROM External-References {2 8 1 12 1} + -- see ITU-T Rec. T.422 | ISO/IEC 8613-12 + Location-Expression + FROM Location-Expressions {2 8 1 12 0} + -- see ITU-T Rec. T.422 | ISO/IEC 8613-12 + Style-Identifier, Protected-Part-Identifier + FROM Identifiers-and-Expressions {2 8 1 5 7} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Comment-String, Sealed + FROM Layout-Descriptors {2 8 1 5 8} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Temporal-Relations, Presentation-Time + FROM Temporal-Relationships; + +-- see 7.5 +Link-or-Link-Class-Identifier ::= [APPLICATION 9] IMPLICIT PrintableString + +-- only digits and space are used in the present version of this Recommendation | International Standard; +-- other characters are reserved for extensions +Link-Class-Descriptor ::= SET { + link-class-identifier Link-or-Link-Class-Identifier, + link-roles [1] SEQUENCE OF Link-Role OPTIONAL, + user-readable-comments [2] IMPLICIT Comment-String OPTIONAL, + user-visible-name [3] IMPLICIT Comment-String OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + sealed [35] IMPLICIT Sealed OPTIONAL, + temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL, + presentation-time [39] IMPLICIT Presentation-Time OPTIONAL +} + +Link-Descriptor ::= SET { + link-identifier Link-or-Link-Class-Identifier, + link-class [0] IMPLICIT Link-or-Link-Class-Identifier OPTIONAL, + link-roles [1] SEQUENCE OF Link-Role OPTIONAL, + user-readable-comments [2] IMPLICIT Comment-String OPTIONAL, + user-visible-name [3] IMPLICIT Comment-String OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + sealed [35] IMPLICIT Sealed OPTIONAL, + temporal-relations [38] IMPLICIT Temporal-Relations OPTIONAL, + presentation-time [39] IMPLICIT Presentation-Time OPTIONAL +} + +Link-Role ::= SET { + link-ends SET OF Link-End, + user-readable-comments [2] IMPLICIT Comment-String OPTIONAL, + user-visible-name [3] IMPLICIT Comment-String OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL +} + +Link-End ::= SET { + reference + SET {reference-name [0] Reference-Name OPTIONAL, + reference-qualifier [1] Location-Expression OPTIONAL}, + user-readable-comments [2] IMPLICIT Comment-String OPTIONAL, + user-visible-name [3] IMPLICIT Comment-String OPTIONAL, + presentation-style [17] IMPLICIT Style-Identifier OPTIONAL, + layout-style [19] IMPLICIT Style-Identifier OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL +} + +Enciphered-Link-Descriptor ::= SEQUENCE { + protected-part-identifier Protected-Part-Identifier, + enciphered-information OCTET STRING +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn new file mode 100644 index 0000000000..5de6491621 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Location-Expressions.asn @@ -0,0 +1,338 @@ +-- Module Location-Expressions (T.422:08/1995) + +Location-Expressions {2 8 1 12 0} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS Location-Expression, Basic-Location-Expression, Constituent-Locator; + +IMPORTS + Object-or-Class-Identifier, Content-Portion-Identifier, Style-Identifier + FROM Identifiers-and-Expressions {2 8 1 5 7} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Layout-Class-Descriptor, Layout-Object-Descriptor + FROM Layout-Descriptors {2 8 1 5 8} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Logical-Class-Descriptor, Logical-Object-Descriptor + FROM Logical-Descriptors {2 8 1 5 9} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Presentation-Style-Descriptor, Layout-Style-Descriptor + FROM Style-Descriptors {2 8 1 5 10} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Text-Unit + FROM Text-Units {2 8 1 5 12} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Subprofile-Descriptor, Subprofile-Identifier + FROM Subprofiles {2 8 1 12 2} + -- see 9.3 + Link-Class-Descriptor, Link-Descriptor, Link-or-Link-Class-Identifier + FROM Link-Descriptors {2 8 1 14 3}; + +-- see ITU-T Rec. T.424 | ISO/IEC 8613-14 +-- Location expression +Location-Expression ::= CHOICE { + basic [0] Basic-Location-Expression, + composite [1] Composite-Location-Expression +} + +Composite-Location-Expression ::= CHOICE { + complement [0] Location-Expression, + intersection [1] SEQUENCE OF Location-Expression, + union [2] SEQUENCE OF Location-Expression +} + +Basic-Location-Expression ::= CHOICE { + region [0] Region-Locator, + subtree [1] Subtree-Locator, + constituent [2] Constituent-Locator +} + +Region-Locator ::= SEQUENCE { + start [0] Start-End-Object-Locator, + end [1] Start-End-Object-Locator +} + +Start-End-Object-Locator ::= SEQUENCE { + object [0] Object-Locator, + not-included [1] BOOLEAN DEFAULT TRUE +} + +Subtree-Locator ::= Object-Locator + +Constituent-Locator ::= CHOICE { + documentProfile [0] NULL, + subprofile [1] Subprofile-Locator, + component [2] Component-Locator, + contentPortion [3] Content-Portion-Locator, + style [4] Style-Locator, + link-or-link-class [5] Link-or-Link-Class-Locator, + constituent-of-type [6] Constituent-Type +} + +Constituent-Type ::= ENUMERATED { + layout-object-class(1), layout-object(2), content-portion(3), + logical-object-class(5), logical-object(6), presentation-style(7), + layout-style(8), sealed-doc-prof-descriptor(9), + enciphered-doc-prof-descriptor(10), preenciphered-bodypart-descriptor(11), + postenciphered-bodypart-descriptor(12), link-class(13), link(14), + enciphered-link-descriptor(15), subprofile(16)} + +-- Subprofile +Subprofile-Locator ::= CHOICE { + subprofile [0] Subprofile-Identifier, + subprofile-of [1] Subprofile-of-argument, + subprofile-with [2] Subprofile-with-argument +} + +Subprofile-of-argument ::= Constituent-Locator + +Subprofile-with-argument ::= + AttributeValue-Subprofile-Specification -- The "attribute" and "value" + +-- arguments are grouped together +-- Component locator +Component-Locator ::= CHOICE { + objectClass [0] Object-Class-Locator, + object [1] Object-Locator +} + +Object-Class-Locator ::= CHOICE { + objectClass [0] Object-or-Class-Identifier, + object-class-of [1] Object-Class-of-argument, + object-class-with [2] Object-Class-with-argument +} + +Object-Class-of-argument ::= Object-Locator + +Object-Class-with-argument ::= SEQUENCE { + attributeValueObject [0] AttributeValue-Class-Specification, -- The "attribute" and "value" + + -- arguments are grouped together + defaulting [1] BOOLEAN DEFAULT FALSE +} + +-- Object locator +Object-Locator ::= CHOICE { + object [0] Object-or-Class-Identifier, + subord [1] Subord-argument, + object-with [2] Object-with-argument +} + +Subord-argument ::= SEQUENCE { + object [0] Object-Locator, + counters [1] CountersType OPTIONAL +} + +Object-with-argument ::= SEQUENCE { + attributeValueObject [0] AttributeValue-Object-Specification, -- The "attribute" and "value" + + -- arguments are grouped together + object [1] Object-Locator OPTIONAL, + counters [2] CountersType OPTIONAL, + not-defaulting [3] BOOLEAN DEFAULT FALSE +} + +-- Links +Link-or-Link-Class-Locator ::= CHOICE { + linkClass [0] Link-Class-Locator, + link [1] Link-Locator +} + +Link-Class-Locator ::= CHOICE { + link [0] Link-or-Link-Class-Identifier, + link-class-of [1] Link-Class-of-argument, + link-class-with [2] Link-Class-with-arguments +} + +Link-Class-of-argument ::= Link-Locator + +Link-Class-with-arguments ::= + AttributeValue-Link-Class-Specification -- The "attribute" and "value" + +-- arguments are grouped together +Link-Locator ::= CHOICE { + link [0] Link-or-Link-Class-Identifier, + link-with [1] Link-with-arguments +} + +Link-with-arguments ::= SEQUENCE { + attributeValueLink [0] AttributeValue-Link-Specification, -- The "attribute" and "value" + + -- arguments are grouped together + not-defaulting [1] BOOLEAN DEFAULT FALSE +} + +-- Content portion locator +Content-Portion-Locator ::= CHOICE { + contentPortion [0] Content-Portion-Identifier, + assoc [1] Assoc-argument, + content-with [2] Content-with-argument +} + +Assoc-argument ::= SEQUENCE { + component [0] Component-Locator, + counters [1] CountersType OPTIONAL +} + +Content-with-argument ::= SEQUENCE { + attributeValueContent [0] AttributeValue-Content-Specification, -- The "attribute" and "value" + + -- arguments are grouped together + component [1] Component-Locator OPTIONAL, + counters [2] CountersType OPTIONAL, + not-defaulting [3] BOOLEAN DEFAULT FALSE +} + +-- Styles +Style-Locator ::= CHOICE { + style [0] Style-Identifier, + layout-style-of [1] Layout-Style-of-argument, + presentation-style-of [2] Presentation-Style-of-argument, + layout-style-with [3] Layout-Style-with-argument, + presentation-style-with [4] Presentation-Style-with-argument +} + +Layout-Style-of-argument ::= Component-Locator + +Presentation-Style-of-argument ::= Component-Locator + +Layout-Style-with-argument ::= SEQUENCE { + attributeValueLayoutStyle [0] AttributeValue-LayoutStyle-Specification, -- The "attribute" and + + -- "value" arguments are grouped together + not-defaulting [1] BOOLEAN DEFAULT FALSE +} + +Presentation-Style-with-argument ::= SEQUENCE { + attributeValuePresentationStyle + [0] AttributeValue-PresentationStyle-Specification, + -- The "attribute" and + -- "value" arguments are grouped together + not-defaulting [1] BOOLEAN DEFAULT FALSE +} + +-- Counters +CountersType ::= SEQUENCE { + start [0] INTEGER OPTIONAL, + end [1] INTEGER OPTIONAL +} + +-- Attribute-Value specifications +-- Classes +AttributeValue-Class-Specification ::= CHOICE { + value [0] Simple-AttributeValue-Class-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-Class-Specification OPTIONAL, + end + [1] Simple-AttributeValue-Class-Specification OPTIONAL + } +} + +Simple-AttributeValue-Class-Specification ::= CHOICE { + layout [0] Layout-Class-Descriptor, + logical [1] Logical-Class-Descriptor +} + +-- Objects +AttributeValue-Object-Specification ::= CHOICE { + value [0] Simple-AttributeValue-Object-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-Object-Specification OPTIONAL, + end + [1] Simple-AttributeValue-Object-Specification OPTIONAL + } +} + +Simple-AttributeValue-Object-Specification ::= CHOICE { + layout [0] Layout-Object-Descriptor, + logical [1] Logical-Object-Descriptor +} + +-- Link classes +AttributeValue-Link-Class-Specification ::= CHOICE { + value [0] Simple-AttributeValue-Link-Class-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-Link-Class-Specification + OPTIONAL, + end + [1] Simple-AttributeValue-Link-Class-Specification + OPTIONAL} +} + +Simple-AttributeValue-Link-Class-Specification ::= Link-Class-Descriptor + +-- Links +AttributeValue-Link-Specification ::= CHOICE { + value [0] Simple-AttributeValue-Link-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-Link-Specification OPTIONAL, + end + [1] Simple-AttributeValue-Link-Specification OPTIONAL + } +} + +Simple-AttributeValue-Link-Specification ::= Link-Descriptor + +-- Contents +AttributeValue-Content-Specification ::= CHOICE { + value [0] Simple-AttributeValue-Content-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-Content-Specification OPTIONAL, + end + [1] Simple-AttributeValue-Content-Specification OPTIONAL + } +} + +Simple-AttributeValue-Content-Specification ::= Text-Unit + +-- Layout Styles +AttributeValue-LayoutStyle-Specification ::= CHOICE { + value [0] Simple-AttributeValue-LayoutStyle-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-LayoutStyle-Specification + OPTIONAL, + end + [1] Simple-AttributeValue-LayoutStyle-Specification + OPTIONAL} +} + +Simple-AttributeValue-LayoutStyle-Specification ::= Layout-Style-Descriptor + +-- Presentation Styles +AttributeValue-PresentationStyle-Specification ::= CHOICE { + value [0] Simple-AttributeValue-PresentationStyle-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-PresentationStyle-Specification + OPTIONAL, + end + [1] Simple-AttributeValue-PresentationStyle-Specification + OPTIONAL} +} + +Simple-AttributeValue-PresentationStyle-Specification ::= + Presentation-Style-Descriptor + +-- Subprofiles +AttributeValue-Subprofile-Specification ::= CHOICE { + value [0] Simple-AttributeValue-Subprofile-Specification, + range + [1] SEQUENCE {start + [0] Simple-AttributeValue-Subprofile-Specification + OPTIONAL, + end + [1] Simple-AttributeValue-Subprofile-Specification + OPTIONAL} +} + +Simple-AttributeValue-Subprofile-Specification ::= Subprofile-Descriptor + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn new file mode 100644 index 0000000000..fab36bf12a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Logical-Descriptors.asn @@ -0,0 +1,95 @@ +-- Module Logical-Descriptors (T.415:03/1993) + +Logical-Descriptors {2 8 1 5 9} DEFINITIONS ::= +BEGIN + +EXPORTS + Logical-Object-Descriptor, Logical-Class-Descriptor, Logical-Object-Type, + Protection; + +IMPORTS + Object-or-Class-Identifier, Style-Identifier, Resource-Name, + Construction-Expression, String-Expression + FROM Identifiers-and-Expressions -- see 7.8 + + Comment-String, Binding-Pair, Enciphered, Sealed + FROM Layout-Descriptors -- see 7.9 + + Presentation-Attributes + FROM Style-Descriptors -- see 7.11 + + Default-Value-Lists-Logical + FROM Default-Value-Lists -- see 7.12 + + Temporal-Relations + FROM Temporal-Relationships {2 8 1 14 0}; + +-- See ITU-T Rec. T.424 | ISO/IEC 8613-14 +Logical-Object-Descriptor ::= SEQUENCE { + object-type Logical-Object-Type OPTIONAL, + descriptor-body Logical-Object-Descriptor-Body OPTIONAL +} + +Logical-Object-Type ::= INTEGER { + document-logical-root(0), composite-logical-object(1), + basic-logical-object(2)} + +Logical-Object-Descriptor-Body ::= SET { + object-identifier Object-or-Class-Identifier OPTIONAL, + subordinates [0] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + object-class [2] IMPLICIT Object-or-Class-Identifier OPTIONAL, + presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL, + -- only for use for the attribute content-architecture-class; + -- the content architecture specific attributes can only be referenced by + -- use of presentation style + default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL, + user-readable-comments [8] IMPLICIT Comment-String OPTIONAL, + bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL, + content-generator [10] IMPLICIT String-Expression OPTIONAL, + user-visible-name [14] IMPLICIT Comment-String OPTIONAL, + presentation-style [17] IMPLICIT Style-Identifier OPTIONAL, + layout-style [19] IMPLICIT Style-Identifier OPTIONAL, + protection [20] IMPLICIT Protection OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + primary [27] IMPLICIT Object-or-Class-Identifier OPTIONAL, + alternative [28] IMPLICIT Object-or-Class-Identifier OPTIONAL, + enciphered [34] IMPLICIT Enciphered OPTIONAL, + sealed [35] IMPLICIT Sealed OPTIONAL, + temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL +} + +Logical-Class-Descriptor ::= SEQUENCE { + object-type Logical-Object-Type, + descriptor-body Logical-Class-Descriptor-Body +} + +Logical-Class-Descriptor-Body ::= SET { + object-class-identifier Object-or-Class-Identifier, + generator-for-subordinates [0] Construction-Expression OPTIONAL, + content-portions [1] IMPLICIT SEQUENCE OF NumericString OPTIONAL, + presentation-attributes [6] IMPLICIT Presentation-Attributes OPTIONAL, + -- only for use for the attribute content-architecture-class; + -- the content architecture specific attributes can only be referenced by + -- use of presentation style + default-value-lists [7] IMPLICIT Default-Value-Lists-Logical OPTIONAL, + user-readable-comments [8] IMPLICIT Comment-String OPTIONAL, + bindings [9] IMPLICIT SET OF Binding-Pair OPTIONAL, + content-generator [10] IMPLICIT String-Expression OPTIONAL, + user-visible-name [14] IMPLICIT Comment-String OPTIONAL, + presentation-style [17] IMPLICIT Style-Identifier OPTIONAL, + layout-style [19] IMPLICIT Style-Identifier OPTIONAL, + protection [20] IMPLICIT Protection OPTIONAL, + resource [24] IMPLICIT Resource-Name OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + enciphered [34] IMPLICIT Enciphered OPTIONAL, + sealed [35] IMPLICIT Sealed OPTIONAL, + temporal-relations [36] IMPLICIT Temporal-Relations OPTIONAL +} + +Protection ::= INTEGER {unprotected(0), protected(1)} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn new file mode 100644 index 0000000000..187c3c8ad4 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MHSObjectIdentifiers.asn @@ -0,0 +1,187 @@ +-- Module MHSObjectIdentifiers (X.402:06/1999) +MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0) + object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything. +IMPORTS -- nothing -- ; + +ID ::= OBJECT IDENTIFIER + +-- MHS Aspects +id-mhs-protocols ID ::= {joint-iso-itu-t mhs(6) protocols(0)} + +-- MHS Application Contexts and Protocols +-- See ITU-T Rec. X.419 | ISO/IEC 10021-6. +id-ipms ID ::= + {joint-iso-itu-t mhs(6) ipms(1)} + +-- Interpersonal Messaging +-- See ITU-T Rec. X.420 | ISO/IEC 10021-7. +-- Value {joint-iso-itu-t mhs(6) 2} is no longer defined +id-mts ID ::= + {joint-iso-itu-t mhs(6) mts(3)} + +-- Message Transfer System +-- See ITU-T Rec. X.411 | ISO/IEC 10021-4. +id-ms ID ::= + {joint-iso-itu-t mhs(6) ms(4)} + +-- Message Store +-- See ITU-T Rec. X.413 | ISO/IEC 10021-5. +id-arch ID ::= + {joint-iso-itu-t mhs(6) arch(5)} + +-- Overall Architecture +-- See this Specification. +id-group ID ::= + {joint-iso-itu-t mhs(6) group(6)} + +-- Reserved. +id-edims ID ::= {joint-iso-itu-t mhs(6) edims(7)} + +-- EDI Messaging +-- See ITU-T Rec. X.435 | ISO/IEC 10021-9. +id-management ID ::= + {joint-iso-itu-t mhs(6) management(9)} + +-- MHS Management +-- See ITU-T Recs. X.460 - X.467 | ISO/IEC 11588. +id-routing ID ::= + {joint-iso-itu-t mhs(6) routing(10)} + +-- MHS Routing +-- See ITU-T Rec. X.412 | ISO/IEC 10021-10. +-- Categories +id-mod ID ::= + {id-arch 0} -- modules; not definitive + +id-oc ID ::= {id-arch 1} -- object classes + +id-at ID ::= {id-arch 2} -- attribute types + +-- Value {id-arch 3} is no longer defined +id-mr ID ::= + {id-arch 4} -- matching rules + +id-con ID ::= {id-arch 5} -- contexts + +id-san ID ::= {id-arch 6} -- certificate subject alternative names + +-- Modules +id-object-identifiers ID ::= {id-mod 0} -- not definitive + +id-directory-objects-and-attributes ID ::= {id-mod 1} -- not definitive + +-- Object classes +id-oc-mhs-distribution-list ID ::= {id-oc 0} + +id-oc-mhs-message-store ID ::= {id-oc 1} + +id-oc-mhs-message-transfer-agent ID ::= {id-oc 2} + +id-oc-mhs-user ID ::= {id-oc 3} + +id-oc-mhs-user-agent ID ::= {id-oc 4} + +-- Attributes +id-at-mhs-maximum-content-length ID ::= {id-at 0} + +id-at-mhs-deliverable-content-types ID ::= {id-at 1} + +id-at-mhs-exclusively-acceptable-eits ID ::= {id-at 2} + +id-at-mhs-dl-members ID ::= {id-at 3} + +id-at-mhs-dl-submit-permissions ID ::= {id-at 4} + +id-at-mhs-message-store-dn ID ::= {id-at 5} + +id-at-mhs-or-addresses ID ::= {id-at 6} + +-- Value {id-at 7} is no longer defined +id-at-mhs-supported-automatic-actions ID ::= + {id-at 8} + +id-at-mhs-supported-content-types ID ::= {id-at 9} + +id-at-mhs-supported-attributes ID ::= {id-at 10} + +id-at-mhs-supported-matching-rules ID ::= {id-at 11} + +id-at-mhs-dl-archive-service ID ::= {id-at 12} + +id-at-mhs-dl-policy ID ::= {id-at 13} + +id-at-mhs-dl-related-lists ID ::= {id-at 14} + +id-at-mhs-dl-subscription-service ID ::= {id-at 15} + +id-at-mhs-or-addresses-with-capabilities ID ::= {id-at 16} + +id-at-mhs-acceptable-eits ID ::= {id-at 17} + +id-at-mhs-unacceptable-eits ID ::= {id-at 18} + +id-at-mhs-deliverable-classes ID ::= {id-at 19} + +id-at-encrypted-mhs-maximum-content-length ID ::= {id-at 0 2} + +id-at-encrypted-mhs-deliverable-content-types ID ::= {id-at 1 2} + +id-at-encrypted-mhs-exclusively-acceptable-eits ID ::= {id-at 2 2} + +id-at-encrypted-mhs-dl-members ID ::= {id-at 3 2} + +id-at-encrypted-mhs-dl-submit-permissions ID ::= {id-at 4 2} + +id-at-encrypted-mhs-message-store-dn ID ::= {id-at 5 2} + +id-at-encrypted-mhs-or-addresses ID ::= {id-at 6 2} + +id-at-encrypted-mhs-supported-automatic-actions ID ::= {id-at 8 2} + +id-at-encrypted-mhs-supported-content-types ID ::= {id-at 9 2} + +id-at-encrypted-mhs-supported-attributes ID ::= {id-at 10 2} + +id-at-encrypted-mhs-supported-matching-rules ID ::= {id-at 11 2} + +id-at-encrypted-mhs-dl-archive-service ID ::= {id-at 12 2} + +id-at-encrypted-mhs-dl-policy ID ::= {id-at 13 2} + +id-at-encrypted-mhs-dl-related-lists ID ::= {id-at 14 2} + +id-at-encrypted-mhs-dl-subscription-service ID ::= {id-at 15 2} + +id-at-encrypted-mhs-or-addresses-with-capabilities ID ::= {id-at 16 2} + +id-at-encrypted-mhs-acceptable-eits ID ::= {id-at 17 2} + +id-at-encrypted-mhs-unacceptable-eits ID ::= {id-at 18 2} + +id-at-encrypted-mhs-deliverable-classes ID ::= {id-at 19 2} + +-- Matching Rules +id-mr-orname-exact-match ID ::= {id-mr 0} + +id-mr-address-capabilities-match ID ::= {id-mr 1} + +id-mr-capability-match ID ::= {id-mr 2} + +-- Contexts +id-con-dl-administrator-annotation ID ::= {id-con 0} + +id-con-dl-nested-dl ID ::= {id-con 1} + +id-con-dl-reset-originator ID ::= {id-con 2} + +-- Certificate subject alternative names +id-san-mta-name ID ::= {id-san 0} + +END -- of MHSObjectIdentifiers + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn new file mode 100644 index 0000000000..40f53b9458 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MHSProtocolObjectIdentifiers.asn @@ -0,0 +1,112 @@ +-- Module MHSProtocolObjectIdentifiers (X.419:06/1999) + +MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0) modules(0) + object-identifiers(0) version-1994(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports Everything +IMPORTS -- nothing -- ; + +ID ::= OBJECT IDENTIFIER + +-- MHS Protocols +id-mhs-protocols ID ::= + {joint-iso-itu-t mhs(6) protocols(0)} -- not definitive + +-- Categories of Object Identifiers +id-mod ID ::= + {id-mhs-protocols 0} -- modules + +id-ac ID ::= {id-mhs-protocols 1} -- application contexts + +id-as ID ::= {id-mhs-protocols 2} -- abstract syntaxes + +id-ase ID ::= {id-mhs-protocols 3} -- application service elements (obsolete) + +-- Modules +id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive + +id-mod-mts-access-protocol ID ::= {id-mod 1} -- not definitive + +id-mod-ms-access-protocol ID ::= {id-mod 2} -- not definitive + +id-mod-mts-transfer-protocol ID ::= {id-mod 3} -- not definitive + +-- Application Contexts +-- MTS Access Protocol +id-ac-mts-access-88 ID ::= + {id-ac 0} + +id-ac-mts-forced-access-88 ID ::= {id-ac 1} + +id-ac-mts-reliable-access-88 ID ::= {id-ac 2} + +id-ac-mts-forced-reliable-access-88 ID ::= {id-ac 3} + +id-ac-mts-access-94 ID ::= {id-ac 7} + +id-ac-mts-forced-access-94 ID ::= {id-ac 8} + +id-ac-mts-reliable-access-94 ID ::= {id-ac 9} + +id-ac-mts-forced-reliable-access-94 ID ::= {id-ac 10} + +-- MS Access Protocol +id-ac-ms-access-88 ID ::= {id-ac 4} + +id-ac-ms-reliable-access-88 ID ::= {id-ac 5} + +id-ac-ms-access-94 ID ::= {id-ac 11} + +id-ac-ms-reliable-access-94 ID ::= {id-ac 12} + +-- MTS Transfer Protocol +id-ac-mts-transfer ID ::= {id-ac 6} + +-- Abstract Syntaxes +id-as-msse ID ::= {id-as 1} + +id-as-mdse-88 ID ::= {id-as 2} + +id-as-mrse-88 ID ::= {id-as 5} + +id-as-mase-88 ID ::= {id-as 6} + +id-as-mtse ID ::= {id-as 7} + +id-as-mts-rtse ID ::= {id-as 8} + +id-as-ms-88 ID ::= {id-as 9} + +id-as-ms-rtse ID ::= {id-as 10} + +id-as-mts ID ::= {id-as 11} + +id-as-mta-rtse ID ::= {id-as 12} + +id-as-ms-msse ID ::= {id-as 13} + +id-as-mdse-94 ID ::= {id-as 14} + +id-as-mrse-94 ID ::= {id-as 15} + +id-as-mase-94 ID ::= {id-as 16} + +id-as-ms-94 ID ::= {id-as 17} + +-- Application Service Elements +id-ase-msse ID ::= {id-ase 0} + +id-ase-mdse ID ::= {id-ase 1} + +id-ase-mrse ID ::= {id-ase 2} + +id-ase-mase ID ::= {id-ase 3} + +id-ase-mtse ID ::= {id-ase 4} + +END --of MHSProtocolObjectIdentifiers + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn new file mode 100644 index 0000000000..052b3b2041 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSAbstractService.asn @@ -0,0 +1,1085 @@ +-- Module MSAbstractService (X.413:06/1999) +MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) abstract-service(1) + version-1999(1)} DEFINITIONS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + -- MTS information object classes + operationObject1, ABSTRACT-ERROR, ABSTRACT-OPERATION, EXTENSION, MHS-OBJECT, + PORT, + -- MTS objects and ports + administration, delivery, mts-user, + submission, + -- MTS abstract-operations and abstract-errors + cancel-deferred-delivery, element-of-service-not-subscribed, + inconsistent-request, new-credentials-unacceptable, + old-credentials-incorrectly-specified, originator-invalid, + recipient-improperly-specified, remote-bind-error, security-error, + submission-control, submission-control-violated, + unsupported-critical-function, + -- MTS abstract-service data-types + CertificateSelectors, Credentials, InitiatorCredentials, + MessageSubmissionArgument, MessageSubmissionResult, MessageToken, + ORAddressAndOrDirectoryName, ProbeSubmissionArgument, + ProbeSubmissionResult, ResponderCredentials, SecurityContext, SecurityLabel + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- MTS abstract-service 1988 ports + administration-88 + --== + FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1988(1988)} + -- MTS abstract-service upper bounds + ub-content-types, ub-encoded-information-types, ub-labels-and-redirections + --== + FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) + upper-bounds(3) version-1999(1)} + -- MS X413ATTRIBUTE table + AttributeTable + --== + FROM MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-attribute-types(2) version-1999(1)} + -- MS matching rule table + MatchingRuleTable + --== + FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-matching-rules(5) version-1999(1)} + -- MS auto-action-table and auto-action-error table + AutoActionTable, AutoActionErrorTable + --== + FROM MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-auto-action-types(3) version-1994(0)} + -- MS object-identifiers + id-cp-ms-connection, id-crt-ms-access-88, id-crt-ms-access-94, + id-ext-modify-capability, id-ext-modify-retrieval-status-capability, + id-ext-originator-token, id-ext-originator-certificate-selectors-override, + id-ext-protected-change-credentials, + id-ext-protected-change-credentials-capability, id-ot-ms, id-ot-ms-user, + id-pt-retrieval-88, id-pt-retrieval-94, id-pt-ms-submission + --== + FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0) + object-identifiers(0) version-1999(1)} + -- MS Access abstract-operation and error codes + err-attribute-error, err-auto-action-request-error, err-ms-extension-error, + err-delete-error, err-entry-class-error, err-fetch-restriction-error, + err-invalid-parameters-error, err-message-group-error, err-modify-error, + err-range-error, err-security-error, err-sequence-number-error, + err-service-error, err-register-ms-error, op-alert, op-delete, op-fetch, + op-list, op-modify, op-ms-message-submission, op-ms-probe-submission, + op-register-ms, op-summarize + --== + FROM MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0) + ms-access-protocol(2) version-1999(1)} + -- MS abstract-service upper bounds + ub-attributes-supported, ub-attribute-values, ub-auto-action-errors, + ub-auto-actions, ub-auto-registrations, ub-default-registrations, + ub-entry-classes, ub-error-reasons, ub-extensions, ub-group-depth, + ub-group-descriptor-length, ub-group-part-length, ub-matching-rules, + ub-message-groups, ub-messages, ub-modifications, ub-per-entry, + ub-per-auto-action, ub-service-information-length, ub-summaries, + ub-supplementary-info-length, ub-ua-registration-identifier-length, + ub-ua-registrations, ub-restrictions + --== + FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4) + version-1994(0)} + -- MATCHING-RULE information object class + MATCHING-RULE + --== + FROM InformationFramework + + -- Remote Operations + CONTRACT, CONNECTION-PACKAGE + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + emptyUnbind + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)}; + +-- MS Abstract Objects +ms MHS-OBJECT ::= { + IS {mts-user} + RESPONDS {ms-access-contract-88 | ms-access-contract-94} + ID id-ot-ms +} + +ms-user MHS-OBJECT ::= { + INITIATES {ms-access-contract-88 | ms-access-contract-94} + ID id-ot-ms-user +} + +-- Contracts +ms-access-contract-94 CONTRACT ::= { + CONNECTION ms-connect + INITIATOR CONSUMER OF {retrieval | ms-submission | administration} + ID id-crt-ms-access-94 +} + +ms-access-contract-88 CONTRACT ::= { + CONNECTION ms-connect -- with all 1994 extensions omitted + INITIATOR CONSUMER OF {retrieval-88 | submission | administration-88} + ID id-crt-ms-access-88 +} + +-- Connection-package +ms-connect CONNECTION-PACKAGE ::= { + BIND ms-bind + UNBIND ms-unbind + ID id-cp-ms-connection +} + +-- MS Ports +retrieval PORT ::= { + OPERATIONS {operationObject1, ...} + CONSUMER INVOKES + {summarize | list | fetch | delete | register-MS, + ... -- 1994 extension addition --, modify} + SUPPLIER INVOKES {alert} + ID id-pt-retrieval-94 +} + +retrieval-88 PORT ::= { + -- With all 1994 extensions to the abstract-operations absent + OPERATIONS {operationObject1, ...} + CONSUMER INVOKES {summarize | list | fetch | delete | register-MS} + SUPPLIER INVOKES {alert} + ID id-pt-retrieval-88 +} + +ms-submission PORT ::= { + OPERATIONS {operationObject1, ...} + CONSUMER INVOKES + {ms-message-submission | ms-probe-submission | ms-cancel-deferred-delivery} + SUPPLIER INVOKES {ms-submission-control} + ID id-pt-ms-submission +} + +-- X413ATTRIBUTE information object class +X413ATTRIBUTE ::= CLASS { + &id AttributeType UNIQUE, + &Type , + &equalityMatch MATCHING-RULE OPTIONAL, + &substringsMatch MATCHING-RULE OPTIONAL, + &orderingMatch MATCHING-RULE OPTIONAL, + &numeration ENUMERATED {single-valued(0), multi-valued(1)}, + -- 1994 extension + &OtherMatches MATCHING-RULE OPTIONAL +} +WITH SYNTAX { + WITH ATTRIBUTE-SYNTAX &Type, + [EQUALITY MATCHING-RULE &equalityMatch,] + [SUBSTRINGS MATCHING-RULE &substringsMatch,] + [ORDERING MATCHING-RULE &orderingMatch,] + [OTHER MATCHING-RULES &OtherMatches,] + NUMERATION &numeration, + ID &id +} + +Attribute ::= SEQUENCE { + attribute-type X413ATTRIBUTE.&id({AttributeTable}), + attribute-values + SEQUENCE SIZE (1..ub-attribute-values) OF + X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type}) +} + +AttributeType ::= OBJECT IDENTIFIER + +-- AUTO-ACTION information object class +AUTO-ACTION ::= CLASS { + &id AutoActionType UNIQUE, + &RegistrationParameter OPTIONAL, + &Errors AUTO-ACTION-ERROR OPTIONAL +} +WITH SYNTAX { + [REGISTRATION PARAMETER IS &RegistrationParameter] + [ERRORS &Errors] + IDENTIFIED BY &id +} + +AutoActionType ::= OBJECT IDENTIFIER + +AutoActionRegistration ::= SEQUENCE { + auto-action-type AUTO-ACTION.&id({AutoActionTable}), + registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1, + registration-parameter + [1] AUTO-ACTION.&RegistrationParameter + ({AutoActionTable}{@auto-action-type}) OPTIONAL +} + +-- AUTO-ACTION-ERROR information object class +AUTO-ACTION-ERROR ::= + ABSTRACT-ERROR + +AutoActionError ::= SET { + error-code [0] AUTO-ACTION-ERROR.&errorCode({AutoActionErrorTable}), + error-parameter + [1] AUTO-ACTION-ERROR.&ParameterType({AutoActionErrorTable}{@error-code}) + OPTIONAL +} + +-- MS-EXTENSION information object class +MS-EXTENSION ::= TYPE-IDENTIFIER + +MSExtensionItem ::= INSTANCE OF MS-EXTENSION + +MSExtensions ::= SEQUENCE SIZE (1..ub-extensions) OF MSExtensionItem + +-- Common data-types related to the information model +EntryClass ::= INTEGER { + delivery(0), + -- 1994 extensions + submission(1), draft(2), stored-message(3), delivery-log(4), + submission-log(5), message-log(6), auto-action-log(7)}(0..ub-entry-classes) + +EntryType ::= INTEGER { + delivered-message(0), delivered-report(1), + returned-content(2), + -- 1994 extensions + submitted-message(3), submitted-probe(4), draft-message(5), + auto-action-event(6)} + +SequenceNumber ::= INTEGER(0..ub-messages) + +RetrievalStatus ::= INTEGER {new(0), listed(1), processed(2)} + +MessageGroupName ::= SEQUENCE SIZE (1..ub-group-depth) OF GroupNamePart + +GroupNamePart ::= GeneralString(SIZE (1..ub-group-part-length)) + +-- MS-bind abstract-operation +ms-bind ABSTRACT-OPERATION ::= { + ARGUMENT MSBindArgument + RESULT MSBindResult + ERRORS {ms-bind-error} +} + +MSBindArgument ::= SET { + initiator-name ORAddressAndOrDirectoryName, + initiator-credentials [2] InitiatorCredentials, + security-context [3] IMPLICIT SecurityContext OPTIONAL, + fetch-restrictions [4] Restrictions OPTIONAL -- default is none--, + ms-configuration-request [5] BOOLEAN DEFAULT FALSE, + -- 1994 extensions + ua-registration-identifier [6] RegistrationIdentifier OPTIONAL, + bind-extensions [7] MSExtensions OPTIONAL +} + +Restrictions ::= SET { + allowed-content-types + [0] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL--default is no restriction--, + allowed-EITs [1] MS-EITs OPTIONAL --default is no restriction--, + maximum-attribute-length [2] INTEGER OPTIONAL --default is no restriction-- +} + +MS-EITs ::= SET SIZE (1..ub-encoded-information-types) OF MS-EIT + +MS-EIT ::= OBJECT IDENTIFIER + +RegistrationIdentifier ::= + PrintableString(SIZE (1..ub-ua-registration-identifier-length)) + +MSBindResult ::= SET { + responder-credentials [2] ResponderCredentials, + available-auto-actions + [3] SET SIZE (1..ub-auto-actions) OF AUTO-ACTION.&id({AutoActionTable}) + OPTIONAL, + available-attribute-types + [4] SET SIZE (1..ub-attributes-supported) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + alert-indication [5] BOOLEAN DEFAULT FALSE, + content-types-supported + [6] SET SIZE (1..ub-content-types) OF OBJECT IDENTIFIER OPTIONAL, + -- 1994 extensions + entry-classes-supported + [7] SET SIZE (1..ub-entry-classes) OF EntryClass OPTIONAL, + matching-rules-supported + [8] SET SIZE (1..ub-matching-rules) OF OBJECT IDENTIFIER OPTIONAL, + bind-result-extensions [9] MSExtensions OPTIONAL, + message-group-depth [10] INTEGER(1..ub-group-depth) OPTIONAL, + auto-action-error-indication [11] AutoActionErrorIndication OPTIONAL, + unsupported-extensions + [12] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER OPTIONAL, + ua-registration-id-unknown [13] BOOLEAN DEFAULT FALSE, + service-information + [14] GeneralString(SIZE (1..ub-service-information-length)) OPTIONAL +} + +modify-capability MS-EXTENSION ::= { + NULL + IDENTIFIED BY id-ext-modify-capability +} + +modify-retrieval-status-capability MS-EXTENSION ::= { + NULL + IDENTIFIED BY id-ext-modify-retrieval-status-capability +} + +protected-change-credentials-capability MS-EXTENSION ::= { + ChangeCredentialsAlgorithms + IDENTIFIED BY id-ext-protected-change-credentials-capability +} + +ChangeCredentialsAlgorithms ::= SET OF OBJECT IDENTIFIER + +AutoActionErrorIndication ::= CHOICE { + indication-only [0] NULL, + auto-action-log-entry [1] SequenceNumber +} + +ms-bind-error ABSTRACT-ERROR ::= { + PARAMETER + CHOICE {unqualified-error BindProblem, + -- 1994 extension + qualified-error + SET {bind-problem [0] BindProblem, + supplementary-information + [1] GeneralString(SIZE (1..ub-supplementary-info-length)) + OPTIONAL, + bind-extension-errors + [2] SET SIZE (1..ub-extensions) OF OBJECT IDENTIFIER + OPTIONAL}} +} + +BindProblem ::= ENUMERATED { + authentication-error(0), unacceptable-security-context(1), + unable-to-establish-association(2), ... -- 1994 extension addition --, + bind-extension-problem(3), inadequate-association-confidentiality(4) +} + +-- MS Unbind abstract-operation +ms-unbind ABSTRACT-OPERATION ::= emptyUnbind + +-- Common data-types +Range ::= CHOICE { + sequence-number-range [0] NumberRange, + creation-time-range [1] TimeRange +} + +NumberRange ::= SEQUENCE { + from [0] SequenceNumber OPTIONAL -- omitted means no lower bound--, + to [1] SequenceNumber OPTIONAL -- omitted means no upper bound-- +} + +TimeRange ::= SEQUENCE { + from [0] CreationTime OPTIONAL -- omitted means no lower bound--, + to [1] CreationTime OPTIONAL -- omitted means no upper bound-- +} + +CreationTime ::= UTCTime + +Filter ::= CHOICE { + item [0] FilterItem, + and [1] SET OF Filter, + or [2] SET OF Filter, + not [3] Filter +} + +FilterItem ::= CHOICE { + equality [0] AttributeValueAssertion, + substrings + [1] SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}), + strings + SEQUENCE OF + CHOICE {initial + [0] X413ATTRIBUTE.&Type + ({AttributeTable}{@substrings.type}), + any + [1] X413ATTRIBUTE.&Type + ({AttributeTable}{@substrings.type}), + final + [2] X413ATTRIBUTE.&Type + ({AttributeTable}{@substrings.type}) + }}, + greater-or-equal [2] AttributeValueAssertion, + less-or-equal [3] AttributeValueAssertion, + present [4] X413ATTRIBUTE.&id({AttributeTable}), + approximate-match [5] AttributeValueAssertion, + -- 1994 extension + other-match [6] MatchingRuleAssertion +} + +MatchingRuleAssertion ::= SEQUENCE { + matching-rule [0] MATCHING-RULE.&id({MatchingRuleTable}), + attribute-type [1] X413ATTRIBUTE.&id, + match-value + [2] MATCHING-RULE.&AssertionType({MatchingRuleTable}{@matching-rule}) +} + +AttributeValueAssertion ::= SEQUENCE { + attribute-type X413ATTRIBUTE.&id({AttributeTable}), + attribute-value X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type}) +} + +Selector ::= SET { + child-entries [0] BOOLEAN DEFAULT FALSE, + range [1] Range OPTIONAL -- default is unbounded --, + filter + [2] Filter + OPTIONAL -- default is all entries within the specified range --, + limit [3] INTEGER(1..ub-messages) OPTIONAL, + override [4] OverrideRestrictions OPTIONAL -- by default, -- + -- any fetch-restrictions in force apply +} + +OverrideRestrictions ::= BIT STRING { + override-content-types-restriction(0), override-EITs-restriction(1), + override-attribute-length-restriction(2)}(SIZE (1..ub-restrictions)) + +EntryInformationSelection ::= SET SIZE (0..ub-per-entry) OF AttributeSelection + +AttributeSelection ::= SET { + type X413ATTRIBUTE.&id({AttributeTable}), + from + [0] INTEGER(1..ub-attribute-values) + OPTIONAL --used if type is multi valued--, + count + [1] INTEGER(0..ub-attribute-values) + OPTIONAL --used if type is multi valued-- +} + +EntryInformation ::= SEQUENCE { + sequence-number SequenceNumber, + attributes SET SIZE (1..ub-per-entry) OF Attribute OPTIONAL, + -- 1994 extension + value-count-exceeded + [0] SET SIZE (1..ub-per-entry) OF AttributeValueCount OPTIONAL +} + +AttributeValueCount ::= SEQUENCE { + type [0] X413ATTRIBUTE.&id({AttributeTable}), + total [1] INTEGER +} + +MSSubmissionOptions ::= SET { + object-entry-class + [0] EntryClass(submission | submission-log | draft) OPTIONAL, + disable-auto-modify [1] BOOLEAN DEFAULT FALSE, + add-message-group-names + [2] SET SIZE (1..ub-message-groups) OF MessageGroupName OPTIONAL, + ms-submission-extensions [3] MSExtensions OPTIONAL +} + +originator-token MS-EXTENSION ::= { + OriginatorToken + IDENTIFIED BY id-ext-originator-token +} + +OriginatorToken ::= + MessageToken + (CONSTRAINED BY { + + -- Must contain an asymmetric-token with an encrypted-data component --}) + +originator-certificate-selectors-override MS-EXTENSION ::= { + CertificateSelectors + (WITH COMPONENTS { + ..., + message-origin-authentication ABSENT + }) + IDENTIFIED BY id-ext-originator-certificate-selectors-override +} + +CommonSubmissionResults ::= SET { + created-entry [0] SequenceNumber OPTIONAL, + auto-action-error-indication [1] AutoActionErrorIndication OPTIONAL, + ms-submission-result-extensions [2] MSExtensions OPTIONAL +} + +-- Retrieval Port abstract-operations +summarize ABSTRACT-OPERATION ::= { + ARGUMENT SummarizeArgument + RESULT SummarizeResult + ERRORS + {attribute-error | invalid-parameters-error | range-error | security-error + | service-error, ... -- 1994 extension additions --, entry-class-error | + ms-extension-error} + LINKED {operationObject1, ...} + CODE op-summarize +} + +SummarizeArgument ::= SET { + entry-class [0] EntryClass DEFAULT delivery, + selector [1] Selector, + summary-requests + [2] SEQUENCE SIZE (1..ub-summaries) OF X413ATTRIBUTE.&id({AttributeTable}) + OPTIONAL -- absent if no summaries are requested--, + -- 1994 extension + summarize-extensions [3] MSExtensions OPTIONAL +} + +SummarizeResult ::= SET { + next [0] SequenceNumber OPTIONAL, + count + [1] INTEGER(0..ub-messages)-- of the entries selected-- , + span [2] Span OPTIONAL -- of the entries selected,---- omitted if count is zero --, + summaries + [3] SEQUENCE SIZE (1..ub-summaries) OF Summary OPTIONAL, + -- 1994 extension + summarize-result-extensions [4] MSExtensions OPTIONAL +} + +Span ::= SEQUENCE {lowest [0] SequenceNumber, + highest [1] SequenceNumber +} + +Summary ::= SET { + absent + [0] INTEGER(1..ub-messages) + OPTIONAL --count of entries where X413ATTRIBUTE is absent--, + present + [1] SET SIZE (1..ub-attribute-values) + OF--one for each X413ATTRIBUTE value present-- + SEQUENCE {type X413ATTRIBUTE.&id({AttributeTable}), + value X413ATTRIBUTE.&Type({AttributeTable}{@.type}), + count INTEGER(1..ub-messages)} OPTIONAL +} + +-- +list ABSTRACT-OPERATION ::= { + ARGUMENT ListArgument + RESULT ListResult + ERRORS + {attribute-error | invalid-parameters-error | range-error | security-error + | service-error, ... -- 1994 extension additions --, entry-class-error | + ms-extension-error} + LINKED {operationObject1, ...} + CODE op-list +} + +ListArgument ::= SET { + entry-class [0] EntryClass DEFAULT delivery, + selector [1] Selector, + requested-attributes [3] EntryInformationSelection OPTIONAL, + -- 1994 extension + list-extensions [4] MSExtensions OPTIONAL +} + +ListResult ::= SET { + next [0] SequenceNumber OPTIONAL, + requested + [1] SEQUENCE SIZE (1..ub-messages) OF EntryInformation OPTIONAL--omitted if none found--, + -- 1994 extension + list-result-extensions [2] MSExtensions OPTIONAL +} + +-- +fetch ABSTRACT-OPERATION ::= { + ARGUMENT FetchArgument + RESULT FetchResult + ERRORS + {attribute-error | fetch-restriction-error | invalid-parameters-error | + range-error | security-error | sequence-number-error | service-error, + ... -- 1994 extension additions --, entry-class-error | + ms-extension-error} + LINKED {operationObject1, ...} + CODE op-fetch +} + +FetchArgument ::= SET { + entry-class [0] EntryClass DEFAULT delivery, + item + CHOICE {search [1] Selector, + precise [2] SequenceNumber}, + requested-attributes [3] EntryInformationSelection OPTIONAL, + -- 1994 extension + fetch-extensions [4] MSExtensions OPTIONAL +} + +FetchResult ::= SET { + entry-information + [0] EntryInformation OPTIONAL --if an entry was selected--, + list + [1] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL, + next [2] SequenceNumber OPTIONAL, + -- 1994 extension + fetch-result-extensions [3] MSExtensions OPTIONAL +} + +-- +delete ABSTRACT-OPERATION ::= { + ARGUMENT DeleteArgument + RESULT DeleteResult + ERRORS + {delete-error | invalid-parameters-error | range-error | security-error | + sequence-number-error | service-error, + ... -- 1994 extension additions --, entry-class-error | + ms-extension-error} + LINKED {operationObject1, ...} + CODE op-delete +} + +DeleteArgument ::= SET { + entry-class [0] EntryClass DEFAULT delivery, + items + CHOICE {selector [1] Selector, + sequence-numbers [2] SET SIZE (1..ub-messages) OF SequenceNumber + }, + -- 1994 extension + delete-extensions [3] MSExtensions OPTIONAL +} + +DeleteResult ::= CHOICE { + delete-result-88 NULL, + -- 1994 extension + delete-result-94 + SET {entries-deleted + [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL, + delete-result-extensions [1] MSExtensions OPTIONAL} +} + +-- +register-MS ABSTRACT-OPERATION ::= { + ARGUMENT Register-MSArgument + RESULT Register-MSResult + ERRORS + {attribute-error | auto-action-request-error | invalid-parameters-error | + security-error | service-error | old-credentials-incorrectly-specified | + new-credentials-unacceptable, ... -- 1994 extension additions --, + message-group-error | ms-extension-error | register-ms-error} + LINKED {operationObject1, ...} + CODE op-register-ms +} + +Register-MSArgument ::= SET { + auto-action-registrations + [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration OPTIONAL, + auto-action-deregistrations + [1] SET SIZE (1..ub-auto-registrations) OF AutoActionDeregistration + OPTIONAL, + list-attribute-defaults + [2] SET SIZE (0..ub-default-registrations) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + fetch-attribute-defaults + [3] SET SIZE (0..ub-default-registrations) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + change-credentials + [4] SEQUENCE {old-credentials + [0] Credentials(WITH COMPONENTS { + simple + }), + new-credentials + [1] Credentials(WITH COMPONENTS { + simple + })} OPTIONAL, + user-security-labels + [5] SET SIZE (1..ub-labels-and-redirections) OF SecurityLabel OPTIONAL, + -- 1994 extensions + ua-registrations + [6] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL, + submission-defaults [7] MSSubmissionOptions OPTIONAL, + message-group-registrations [8] MessageGroupRegistrations OPTIONAL, + registration-status-request [9] RegistrationTypes OPTIONAL, + register-ms-extensions [10] MSExtensions OPTIONAL +} + +AutoActionDeregistration ::= SEQUENCE { + auto-action-type AUTO-ACTION.&id({AutoActionTable}), + registration-identifier [0] INTEGER(1..ub-per-auto-action) DEFAULT 1 +} + +UARegistration ::= SET { + ua-registration-identifier [0] RegistrationIdentifier, + ua-list-attribute-defaults + [1] SET SIZE (0..ub-default-registrations) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + ua-fetch-attribute-defaults + [2] SET SIZE (0..ub-default-registrations) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + ua-submission-defaults [3] MSSubmissionOptions OPTIONAL, + content-specific-defaults [4] MSExtensions OPTIONAL +} + +MessageGroupRegistrations ::= + SEQUENCE SIZE (1..ub-default-registrations) OF + CHOICE {register-group [0] MessageGroupNameAndDescriptor, + deregister-group [1] MessageGroupName, + change-descriptors [2] MessageGroupNameAndDescriptor} + +MessageGroupNameAndDescriptor ::= SET { + message-group-name [0] MessageGroupName, + message-group-descriptor + [1] GeneralString(SIZE (1..ub-group-descriptor-length)) OPTIONAL +} + +RegistrationTypes ::= SET { + registrations + [0] BIT STRING {auto-action-registrations(0), list-attribute-defaults(1), + fetch-attribute-defaults(2), ua-registrations(3), + submission-defaults(4), message-group-registrations(5)} + OPTIONAL, + extended-registrations [1] SET OF MS-EXTENSION.&id OPTIONAL, + restrict-message-groups [2] MessageGroupsRestriction OPTIONAL +} + +MessageGroupsRestriction ::= SET { + parent-group [0] MessageGroupName OPTIONAL, + immediate-descendants-only [1] BOOLEAN DEFAULT TRUE, + omit-descriptors [2] BOOLEAN DEFAULT TRUE +} + +protected-change-credentials MS-EXTENSION ::= { + ProtectedChangeCredentials + IDENTIFIED BY id-ext-protected-change-credentials +} + +ProtectedChangeCredentials ::= SEQUENCE { + algorithm-identifier [0] IMPLICIT OBJECT IDENTIFIER, + old-credentials + InitiatorCredentials(WITH COMPONENTS { + protected PRESENT + }), + password-delta [2] IMPLICIT BIT STRING +} + +Register-MSResult ::= CHOICE { + no-status-information NULL, + -- 1994 extension + registered-information + SET {auto-action-registrations + [0] SET SIZE (1..ub-auto-registrations) OF AutoActionRegistration + OPTIONAL, + list-attribute-defaults + [1] SET SIZE (1..ub-default-registrations) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + fetch-attribute-defaults + [2] SET SIZE (1..ub-default-registrations) OF + X413ATTRIBUTE.&id({AttributeTable}) OPTIONAL, + ua-registrations + [3] SET SIZE (1..ub-ua-registrations) OF UARegistration OPTIONAL, + submission-defaults [4] MSSubmissionOptions OPTIONAL, + message-group-registrations + [5] SET SIZE (1..ub-message-groups) OF + MessageGroupNameAndDescriptor OPTIONAL, + register-ms-result-extensions [6] MSExtensions OPTIONAL} +} + +-- +alert ABSTRACT-OPERATION ::= { + ARGUMENT AlertArgument + RESULT AlertResult + ERRORS {security-error} + LINKED {operationObject1, ...} + CODE op-alert +} + +AlertArgument ::= SET { + alert-registration-identifier [0] INTEGER(1..ub-auto-actions), + new-entry [2] EntryInformation OPTIONAL +} + +AlertResult ::= NULL + +-- +modify ABSTRACT-OPERATION ::= { + ARGUMENT ModifyArgument + RESULT ModifyResult + ERRORS + {attribute-error | invalid-parameters-error | security-error | + sequence-number-error | service-error | modify-error | + message-group-error | entry-class-error | ms-extension-error, + ... -- For future extension additions --} + LINKED {operationObject1, ...} + CODE op-modify +} + +ModifyArgument ::= SET { + entry-class [0] EntryClass DEFAULT delivery, + entries + CHOICE {selector [1] Selector, + specific-entries + [2] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber}, + modifications + [3] SEQUENCE SIZE (1..ub-modifications) OF EntryModification, + modify-extensions [4] MSExtensions OPTIONAL +} + +EntryModification ::= SET { + strict [0] BOOLEAN DEFAULT FALSE, + modification + CHOICE {add-attribute [1] Attribute, + remove-attribute [2] X413ATTRIBUTE.&id({AttributeTable}), + add-values [3] OrderedAttribute, + remove-values [4] OrderedAttribute} +} + +OrderedAttribute ::= SEQUENCE { + attribute-type X413ATTRIBUTE.&id({AttributeTable}), + attribute-values + SEQUENCE SIZE (1..ub-attribute-values) OF + SEQUENCE {-- at least one must be specified + value + [0] X413ATTRIBUTE.&Type({AttributeTable}{@attribute-type}) + OPTIONAL, + position [1] INTEGER(1..ub-attribute-values) OPTIONAL + } +} + +ModifyResult ::= SET { + entries-modified + [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL, + modify-result-extensions [1] MSExtensions OPTIONAL +} + +-- MS-submission Port abstract-operations +ms-message-submission ABSTRACT-OPERATION ::= { + ARGUMENT MSMessageSubmissionArgument + RESULT MSMessageSubmissionResult + ERRORS + {submission-control-violated | element-of-service-not-subscribed | + originator-invalid | recipient-improperly-specified | + inconsistent-request | security-error | unsupported-critical-function | + remote-bind-error, ... -- 1994 extension additions --, ms-extension-error + | message-group-error | entry-class-error | service-error} + LINKED {operationObject1, ...} + CODE op-ms-message-submission +} + +MSMessageSubmissionArgument ::= SEQUENCE { + COMPONENTS OF + MessageSubmissionArgument -- This imported type has IMPLICIT tags --, + -- 1994 extension + submission-options [4] MSSubmissionOptions OPTIONAL +} + +forwarding-request EXTENSION ::= { + SequenceNumber, + IDENTIFIED BY standard-extension:36 +} + +MSMessageSubmissionResult ::= CHOICE { + mts-result + SET {COMPONENTS OF + MessageSubmissionResult-- This imported type has IMPLICIT tags -- , + -- 1994 extension + ms-message-result [4] CommonSubmissionResults OPTIONAL}, + -- 1994 extension + store-draft-result [4] CommonSubmissionResults +} + +-- +ms-probe-submission ABSTRACT-OPERATION ::= { + ARGUMENT MSProbeSubmissionArgument + RESULT MSProbeSubmissionResult + ERRORS + {submission-control-violated | element-of-service-not-subscribed | + originator-invalid | recipient-improperly-specified | + inconsistent-request | security-error | unsupported-critical-function | + remote-bind-error, ... -- 1994 extension additions --, ms-extension-error + | message-group-error | entry-class-error | service-error} + LINKED {operationObject1, ...} + CODE op-ms-probe-submission +} + +MSProbeSubmissionArgument ::= SET { + COMPONENTS OF + ProbeSubmissionArgument -- This imported type has IMPLICIT tags --, + -- 1994 extension + submission-options [4] MSSubmissionOptions OPTIONAL +} + +MSProbeSubmissionResult ::= SET { + COMPONENTS OF + ProbeSubmissionResult -- This imported type has IMPLICIT tags --, + -- 1994 extension + ms-probe-result [4] CommonSubmissionResults OPTIONAL +} + +ms-cancel-deferred-delivery ABSTRACT-OPERATION ::= cancel-deferred-delivery + +ms-submission-control ABSTRACT-OPERATION ::= submission-control + +-- Abstract-errors +attribute-error ABSTRACT-ERROR ::= { + PARAMETER + SET {problems + [0] SET SIZE (1..ub-per-entry) OF + SET {problem [0] AttributeProblem, + type [1] X413ATTRIBUTE.&id({AttributeTable}), + value + [2] X413ATTRIBUTE.&Type({AttributeTable}{@.type}) + OPTIONAL}} + CODE err-attribute-error +} + +AttributeProblem ::= INTEGER { + invalid-attribute-value(0), unavailable-attribute-type(1), + inappropriate-matching(2), attribute-type-not-subscribed(3), + inappropriate-for-operation(4), + -- 1994 extensions + inappropriate-modification(5), single-valued-attribute(6) +}(0..ub-error-reasons) + +-- +auto-action-request-error ABSTRACT-ERROR ::= { + PARAMETER + SET {problems + [0] SET SIZE (1..ub-auto-registrations) OF + SET {problem [0] AutoActionRequestProblem, + type [1] AUTO-ACTION.&id({AutoActionTable}) + }} + CODE err-auto-action-request-error +} + +AutoActionRequestProblem ::= INTEGER { + unavailable-auto-action-type(0), + auto-action-type-not-subscribed(1), + -- 1994 extension + not-willing-to-perform(2)}(0..ub-error-reasons) + +-- +delete-error ABSTRACT-ERROR ::= { + PARAMETER + SET {problems + [0] SET SIZE (1..ub-messages) OF + SET {problem [0] DeleteProblem, + sequence-number [1] SequenceNumber}, + -- 1994 extension + entries-deleted + [1] SET SIZE (1..ub-messages) OF SequenceNumber OPTIONAL} + CODE err-delete-error +} + +DeleteProblem ::= INTEGER { + child-entry-specified(0), + delete-restriction-problem(1), + -- 1994 extensions + new-entry-specified(2), entry-class-restriction(3), stored-message-exists(4) +}(0..ub-error-reasons) + +-- +fetch-restriction-error ABSTRACT-ERROR ::= { + PARAMETER + SET {problems + [0] SET SIZE (1..ub-default-registrations) OF + SET {problem [3] FetchRestrictionProblem, + restriction + CHOICE {content-type [0] OBJECT IDENTIFIER, + eit [1] MS-EITs, + attribute-length [2] INTEGER}}} + CODE err-fetch-restriction-error +} + +FetchRestrictionProblem ::= INTEGER { + content-type-problem(1), eit-problem(2), maximum-length-problem(3) +}(0..ub-error-reasons) + +-- +invalid-parameters-error ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-invalid-parameters-error +} + +-- +range-error ABSTRACT-ERROR ::= { + PARAMETER SET {problem [0] RangeProblem} + CODE err-range-error +} + +RangeProblem ::= INTEGER {reversed(0)}(0..ub-error-reasons) + +-- +sequence-number-error ABSTRACT-ERROR ::= { + PARAMETER + SET {problems + [1] SET SIZE (1..ub-messages) OF + SET {problem [0] SequenceNumberProblem, + sequence-number [1] SequenceNumber}} + CODE err-sequence-number-error +} + +SequenceNumberProblem ::= INTEGER {no-such-entry(0)}(0..ub-error-reasons) + +-- +service-error ABSTRACT-ERROR ::= { + PARAMETER ServiceErrorParameter + CODE err-service-error +} + +ServiceErrorParameter ::= SET { + problem [0] ServiceProblem, + -- 1994 extension + supplementary-information + [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL +} + +ServiceProblem ::= INTEGER {busy(0), unavailable(1), unwilling-to-perform(2) +}(0..ub-error-reasons) + +-- +message-group-error ABSTRACT-ERROR ::= { + PARAMETER MessageGroupErrorParameter + CODE err-message-group-error +} + +MessageGroupErrorParameter ::= SET { + problem [0] MessageGroupProblem, + name [1] MessageGroupName +} + +MessageGroupProblem ::= INTEGER { + name-not-registered(0), name-already-registered(1), parent-not-registered(2), + group-not-empty(3), name-in-use(4), child-group-registered(5), + group-depth-exceeded(6)}(0..ub-error-reasons) + +-- +ms-extension-error ABSTRACT-ERROR ::= { + PARAMETER MSExtensionErrorParameter + CODE err-ms-extension-error +} + +MSExtensionErrorParameter ::= CHOICE { + ms-extension-problem [0] MSExtensionItem, + unknown-ms-extension [1] OBJECT IDENTIFIER +} + +-- +register-ms-error ABSTRACT-ERROR ::= { + PARAMETER + SET {problem [0] RegistrationProblem, + registration-type [1] RegistrationTypes} + CODE err-register-ms-error +} + +RegistrationProblem ::= ENUMERATED { + registration-not-supported(0), registration-improperly-specified(1), + registration-limit-exceeded(2), ... -- For future extension additions -- + } + +-- +modify-error ABSTRACT-ERROR ::= { + PARAMETER ModifyErrorParameter + CODE err-modify-error +} + +ModifyErrorParameter ::= SET { + entries-modified + [0] SEQUENCE SIZE (1..ub-messages) OF SequenceNumber OPTIONAL, + failing-entry [1] SequenceNumber, + modification-number [2] INTEGER, + problem [3] ModifyProblem +} + +ModifyProblem ::= INTEGER { + attribute-not-present(0), value-not-present(1), + attribute-or-value-already-exists(2), invalid-position(3), + modify-restriction-problem(4)}(0..ub-error-reasons) + +-- +entry-class-error ABSTRACT-ERROR ::= { + PARAMETER EntryClassErrorParameter + CODE err-entry-class-error +} + +EntryClassErrorParameter ::= SET { + entry-class [0] EntryClass, + problem + [1] BIT STRING {unsupported-entry-class(0), entry-class-not-subscribed(1), + inappropriate-entry-class(2)} +} + +END -- of MS Abstract Service + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn new file mode 100644 index 0000000000..b69d72b3ed --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSAccessProtocol.asn @@ -0,0 +1,259 @@ +-- Module MSAccessProtocol (X.419:06/1999) + +MSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0) + ms-access-protocol(2) version-1999(1)} DEFINITIONS ::= +BEGIN + +-- Prologue +IMPORTS + -- MS Abstract Service + ms-access-contract-88, ms-access-contract-94, ms-submission, retrieval, + retrieval-88 + --== + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- Remote Operations + APPLICATION-CONTEXT + --== + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + Code + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + Bind{}, InvokeId, Unbind{} + --== + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + ROS-SingleAS{} + --== + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)} + acse, association-by-RTSE, pData, transfer-by-RTSE + --== + FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} + acse-abstract-syntax + --== + FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t + remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)} + -- Reliable Transfer + RTORQapdu, RTOACapdu, RTORJapdu + FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)} + -- MTS Access Protocol + message-administration-abstract-syntax-88, + message-administration-abstract-syntax-94, + message-submission-abstract-syntax + --== + FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0) + mts-access-protocol(1) version-1999(1)} + -- Object Identifiers + id-ac-ms-access-88, id-ac-ms-access-94, id-ac-ms-reliable-access-88, + id-ac-ms-reliable-access-94, id-as-ms-msse, id-as-mase-88, id-as-mase-94, + id-as-mdse-88, id-as-mdse-94, id-as-mrse-88, id-as-mrse-94, id-as-ms-88, + id-as-ms-94, id-as-ms-rtse, id-as-msse + --== + FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0) + modules(0) object-identifiers(0) version-1994(0)}; + +-- Definitions from X.228(11/1988) -- +RTSE-apdus ::= CHOICE { + rtorq-apdu [16] IMPLICIT RTORQapdu, + rtoac-apdu [17] IMPLICIT RTOACapdu, + rtorj-apdu [18] IMPLICIT RTORJapdu, + rttp-apdu RTTPapdu, + rttr-apdu RTTRapdu, + rtab-apdu [22] IMPLICIT RTABapdu +} + +RTTPapdu ::= -- priority-- INTEGER + +RTTRapdu ::= OCTET STRING + +RTABapdu ::= SET { + abortReason [0] IMPLICIT AbortReason OPTIONAL, + reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL, + -- 8 bits maximum, only if abortReason is invalidParameter + userdataAB + [2] TYPE-IDENTIFIER.&Type + OPTIONAL -- only in normal mode and if abortReason-- + -- is userError +} + +AbortReason ::= INTEGER { + localSystemProblem(0), + invalidParameter(1), -- reflectedParameter supplied + unrecognizedActivity(2), + temporaryProblem(3), + -- the RTSE cannot accept a session for a period of time + protocolError(4), -- RTSE level protocol error + permanentProblem(5), --provider-abort solely in normal mode + userError(6), -- user-abort solely in normal mode + transferCompleted(7) -- activity can't be discarded--} +-- end of definitions from X.228 (11/1988) -- + +-- APPLICATION-CONTEXTS +-- 1994 Application Context omitting RTSE +ms-access-94 APPLICATION-CONTEXT ::= { + CONTRACT ms-access-contract-94 + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | ms-message-submission-abstract-syntax | + message-retrieval-abstract-syntax-94 | + message-administration-abstract-syntax-94 | + ms-bind-unbind-abstract-syntax-94} + APPLICATION CONTEXT NAME id-ac-ms-access-94 +} + +-- 1994 Application Context including RTSE +ms-reliable-access-94 APPLICATION-CONTEXT ::= { + CONTRACT ms-access-contract-94 + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | ms-message-submission-abstract-syntax | + message-retrieval-abstract-syntax-94 | + message-administration-abstract-syntax-94 | + ms-bind-unbind-rtse-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-ms-reliable-access-94 +} + +-- 1988 Application Context omitting RTSE +ms-access-88 APPLICATION-CONTEXT ::= { + CONTRACT ms-access-contract-88 + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-retrieval-abstract-syntax-88 | + message-administration-abstract-syntax-88 | + ms-bind-unbind-abstract-syntax-88} + APPLICATION CONTEXT NAME id-ac-ms-access-88 +} + +-- 1988 Application Context including RTSE +ms-reliable-access-88 APPLICATION-CONTEXT ::= { + CONTRACT ms-access-contract-88 + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-retrieval-abstract-syntax-88 | + message-administration-abstract-syntax-88 | + ms-bind-unbind-rtse-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-ms-reliable-access-88 +} + +-- ABSTRACT SYNTAXES +-- Abstract-syntax for 1994 MS-bind and MS-unbind +ms-bind-unbind-abstract-syntax-94 ABSTRACT-SYNTAX ::= { + MSBindUnbindPDUs94 + IDENTIFIED BY id-as-ms-94 +} + +MSBindUnbindPDUs94 ::= CHOICE { + bind Bind{ms-access-contract-94.&connection.&bind}, + unbind Unbind{ms-access-contract-94.&connection.&unbind} +} + +-- Abstract-syntax for 1988 MS-bind and MS-unbind +ms-bind-unbind-abstract-syntax-88 ABSTRACT-SYNTAX ::= { + MSBindUnbindPDUs88 + IDENTIFIED BY id-as-ms-88 +} + +MSBindUnbindPDUs88 ::= CHOICE { + bind Bind{ms-access-contract-88.&connection.&bind}, + unbind Unbind{ms-access-contract-88.&connection.&unbind} +} + +-- Abstract-syntax for MS-bind and MS-unbind with RTSE +ms-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= { + RTSE-apdus -- With MS-bind and MS-unbind -- + IDENTIFIED BY id-as-ms-rtse +} + +-- Abstract Syntax for MS Message Submission Service Element +ms-message-submission-abstract-syntax ABSTRACT-SYNTAX ::= { + MSMessageSubmissionPDUs + IDENTIFIED BY id-as-ms-msse +} + +MSMessageSubmissionPDUs ::= ROS-SingleAS{{MSInvokeIds}, ms-submission} + +MSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL) + +-- Abstract Syntax for Message Retrieval Service Element 1994 +message-retrieval-abstract-syntax-94 ABSTRACT-SYNTAX ::= { + MessageRetrievalPDUs + IDENTIFIED BY id-as-mrse-94 +} + +-- Abstract Syntax for Message Retrieval Service Element 1988 +MessageRetrievalPDUs ::= + ROS-SingleAS{{MSInvokeIds}, retrieval} + +message-retrieval-abstract-syntax-88 ABSTRACT-SYNTAX ::= { + MessageRetrievalPDUs88 + IDENTIFIED BY id-as-mrse-88 +} + +MessageRetrievalPDUs88 ::= ROS-SingleAS{{MSInvokeIds}, retrieval-88} + +-- Remote Operations +op-ms-submission-control Code ::= local:2 + +op-ms-message-submission Code ::= local:3 + +op-ms-probe-submission Code ::= local:4 + +op-ms-cancel-deferred-delivery Code ::= local:7 + +op-summarize Code ::= local:20 + +op-list Code ::= local:21 + +op-fetch Code ::= local:22 + +op-delete Code ::= local:23 + +op-register-ms Code ::= local:24 + +op-alert Code ::= local:25 + +op-modify Code ::= local:26 + +-- Remote Errors +err-attribute-error Code ::= local:21 + +err-auto-action-request-error Code ::= local:22 + +err-delete-error Code ::= local:23 + +err-fetch-restriction-error Code ::= local:24 + +err-range-error Code ::= local:25 -- 1988 Application Contexts only + +err-security-error Code ::= local:26 + +err-service-error Code ::= local:27 + +err-sequence-number-error Code ::= local:28 + +err-invalid-parameters-error Code ::= local:29 + +err-message-group-error Code ::= local:30 + +err-ms-extension-error Code ::= local:31 + +err-register-ms-error Code ::= local:32 + +err-modify-error Code ::= local:33 + +err-entry-class-error Code ::= local:34 + +END -- of MSAccessProtocol + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn new file mode 100644 index 0000000000..99d34b2883 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAttributeTypes.asn @@ -0,0 +1,830 @@ +-- Module MSGeneralAttributeTypes (X.413:06/1999) +MSGeneralAttributeTypes {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-attribute-types(2) version-1999(1)} DEFINITIONS ::= +BEGIN + +-- Prologue +IMPORTS + -- X413ATTRIBUTE information object class + X413ATTRIBUTE, + -- MS abstract-service data-types + AutoActionError, AutoActionType, CreationTime, EntryClassErrorParameter, + EntryType, MessageGroupName, MessageGroupErrorParameter, MS-EIT, + MSExtensionErrorParameter, RetrievalStatus, SequenceNumber, + ServiceErrorParameter + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- General-attribute-type Object Identifiers + id-att-ac-correlated-report-list, id-att-ac-report-subject-entry, + id-att-ac-report-summary, id-att-ac-uncorrelated-report-list, + id-att-auto-action-error, id-att-auto-action-registration-identifier, + id-att-auto-action-subject-entry, id-att-auto-action-type, + id-att-certificate-selectors, id-att-child-sequence-numbers, + id-att-content, id-att-content-confidentiality-algorithm-identifier, + id-att-content-correlator, id-att-content-identifier, + id-att-content-integrity-check, id-att-content-length, + id-att-content-returned, id-att-content-type, + id-att-conversion-with-loss-prohibited, id-att-converted-EITs, + id-att-creation-time, id-att-deferred-delivery-cancellation-time, + id-att-deferred-delivery-time, id-att-deletion-time, id-att-delivered-EITs, + id-att-delivery-flags, id-att-dl-exempted-recipients, + id-att-dl-expansion-history, id-att-dl-expansion-prohibited, + id-att-entry-type, id-att-internal-trace-information, + id-att-latest-delivery-time, id-att-locally-originated, + id-att-marked-for-deletion, id-att-message-delivery-envelope, + id-att-message-delivery-time, id-att-message-group-name, + id-att-message-identifier, id-att-message-notes, + id-att-message-origin-authentication-check, id-att-message-security-label, + id-att-message-submission-envelope, id-att-message-submission-time, + id-att-message-token, id-att-ms-originated, id-att-ms-submission-error, + id-att-multiple-originator-certificates, id-att-original-EITs, + id-att-originally-intended-recipient-name, + id-att-originating-MTA-certificate, id-att-originator-certificate, + id-att-originator-name, id-att-originator-report-request, + id-att-originator-return-address, id-att-other-recipient-names, + id-att-parent-sequence-number, id-att-per-message-indicators, + id-att-per-recipient-message-submission-fields, + id-att-per-recipient-probe-submission-fields, + id-att-per-recipient-report-delivery-fields, id-att-priority, + id-att-probe-origin-authentication-check, id-att-probe-submission-envelope, + id-att-proof-of-delivery-request, id-att-proof-of-submission, + id-att-recipient-certificate, id-att-recipient-names, + id-att-recipient-reassignment-prohibited, id-att-redirection-history, + id-att-report-delivery-envelope, id-att-reporting-DL-name, + id-att-reporting-MTA-certificate, + id-att-report-origin-authentication-check, id-att-retrieval-status, + id-att-security-classification, id-att-sequence-number, + id-att-signature-verification-status, id-att-storage-period, + id-att-storage-time, id-att-subject-submission-identifier, + id-att-this-recipient-name, id-att-trace-information + FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0) + object-identifiers(0) version-1999(1)} + -- Message Store matching-rules + bitStringMatch, contentCorrelatorMatch, contentIdentifierMatch, + mSSingleSubstringListElementsMatch, mSSingleSubstringListMatch, + mSSingleSubstringMatch, mSSubstringsMatch, mSStringCaseSensitiveMatch, + mSStringListElementsMatch, mSStringListMatch, mSStringMatch, + mSStringOrderingMatch, mTSIdentifierMatch, oRAddressElementsMatch, + oRAddressMatch, oRAddressSubstringElementsMatch, oRNameElementsMatch, + oRNameMatch, oRNameSingleElementMatch, oRNameSubstringElementsMatch, + redirectionOrDLExpansionElementsMatch, redirectionOrDLExpansionMatch, + redirectionOrDLExpansionSingleElementMatch, + redirectionOrDLExpansionSubstringElementsMatch, redirectionReasonMatch, + valueCountMatch + FROM MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-matching-rules(5) version-1999(1)} + -- MS abstract-service upper bounds + ub-entry-types, ub-message-notes-length + FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4) + version-1994(0)} + -- MTS abstract-service data-types + CertificateSelectors, Content, ContentCorrelator, ContentIdentifier, + ContentIntegrityCheck, ContentLength, ConversionWithLossProhibited, + DeferredDeliveryTime, DeliveryFlags, DLExpansion, DLExpansionProhibited, + ExtendedCertificates, ImproperlySpecifiedRecipients, LatestDeliveryTime, + MessageDeliveryEnvelope, MessageDeliveryTime, + MessageOriginAuthenticationCheck, MessageSecurityLabel, + MessageSubmissionEnvelope, MessageSubmissionTime, MessageToken, + MTSIdentifier, OriginatingMTACertificate, OriginatorCertificate, + OriginatorReportRequest, OriginatorReturnAddress, ORName, + PerMessageIndicators, PerRecipientMessageSubmissionFields, + PerRecipientProbeSubmissionFields, PerRecipientReportDeliveryFields, + Priority, ProbeOriginAuthenticationCheck, ProbeSubmissionEnvelope, + ProofOfDeliveryRequest, ProofOfSubmission, RecipientReassignmentProhibited, + Redirection, ReportDeliveryEnvelope, ReportingDLName, + ReportingMTACertificate, ReportOriginAuthenticationCheck, + SecurityClassification, SecurityProblem, SubjectSubmissionIdentifier + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- MTS abstract-service upper bound + ub-recipients + FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) + upper-bounds(3) version-1999(1)} + -- MTA abstract-service data-types + InternalTraceInformationElement, TraceInformationElement + FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mta-abstract-service(2) version-1999(1)} + -- Directory matching-rules + booleanMatch, integerMatch, integerOrderingMatch, uTCTimeMatch, + uTCTimeOrderingMatch + FROM SelectedAttributeTypes + objectIdentifierMatch + FROM InformationFramework + + -- Authentication-service data-types + AlgorithmIdentifier + FROM AuthenticationFramework; + +-- X413ATTRIBUTE table +AttributeTable X413ATTRIBUTE ::= + {GeneralAttributes | ContentSpecificAttributes} + +GeneralAttributes X413ATTRIBUTE ::= + {ms-child-sequence-numbers | mt-content | + mt-content-confidentiality-algorithm-identifier | mt-content-correlator | + mt-content-identifier | mt-content-integrity-check | ms-content-length | + ms-content-returned | mt-content-type | mt-conversion-with-loss-prohibited | + mt-converted-EITs | ms-creation-time | ms-delivered-EITs | mt-delivery-flags + | mt-dl-expansion-history | ms-entry-type | mt-message-delivery-envelope | + mt-message-delivery-time | mt-message-identifier | + mt-message-origin-authentication-check | mt-message-security-label | + mt-message-submission-time | mt-message-token | mt-original-EITs | + mt-originally-intended-recipient-name | mt-originator-certificate | + mt-originator-name | mt-other-recipient-names | ms-parent-sequence-number | + mt-per-recipient-report-delivery-fields | mt-priority | + mt-proof-of-delivery-request | mt-redirection-history | + mt-report-delivery-envelope | mt-reporting-DL-name | + mt-reporting-MTA-certificate | mt-report-origin-authentication-check | + ms-retrieval-status | mt-security-classification | ms-sequence-number | + mt-subject-submission-identifier | mt-this-recipient-name, + ... -- 1994 extension additions --, ms-ac-correlated-report-list | + ms-ac-report-subject-entry | ms-ac-report-summary | + ms-ac-uncorrelated-report-list | ms-auto-action-error | + ms-auto-action-registration-identifier | ms-auto-action-subject-entry | + ms-auto-action-type | mt-certificate-selectors | + ms-deferred-delivery-cancellation-time | mt-deferred-delivery-time | + ms-deletion-time | mt-dl-exempted-recipients | mt-dl-expansion-prohibited | + mt-internal-trace-information | mt-latest-delivery-time | + ms-locally-originated | ms-marked-for-deletion | ms-message-group-name | + ms-message-notes | mt-message-submission-envelope | + mt-multiple-originator-certificates | ms-originated | ms-submission-error | + mt-originating-MTA-certificate | mt-originator-report-request | + mt-originator-return-address | mt-per-message-indicators | + mt-per-recipient-message-submission-fields | + mt-per-recipient-probe-submission-fields | + mt-probe-origin-authentication-check | mt-probe-submission-envelope | + mt-proof-of-submission | mt-recipient-certificate | ms-recipient-names | + mt-recipient-reassignment-prohibited | ms-signature-verification-status | + ms-storage-period | ms-storage-time | mt-trace-information} + +ContentSpecificAttributes X413ATTRIBUTE ::= + {...} + +-- Attribute-types +ms-ac-correlated-report-list X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReportLocation, + NUMERATION multi-valued, + ID id-att-ac-correlated-report-list +} + +ReportLocation ::= CHOICE { + no-correlated-reports [0] NULL, + location [1] SEQUENCE OF PerRecipientReport +} + +PerRecipientReport ::= SEQUENCE { + report-entry [0] SequenceNumber, + position [1] INTEGER(1..ub-recipients) DEFAULT 1 +} + +ms-ac-report-subject-entry X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-ac-report-subject-entry +} + +ms-ac-report-summary X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReportSummary, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION multi-valued, + ID id-att-ac-report-summary +} + +ReportSummary ::= ENUMERATED { + no-report-requested(0) -- non-delivery report suppressed --, + no-report-received(1) -- non-delivery report requested --, + report-outstanding(2) -- delivery report requested --, delivery-cancelled(3), + delivery-report-from-another-recipient(4), + non-delivery-report-from-another-recipient(5), + delivery-report-from-intended-recipient(6), + non-delivery-report-from-intended-recipient(7)} + +ms-ac-uncorrelated-report-list X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PerRecipientReport, + NUMERATION multi-valued, + ID id-att-ac-uncorrelated-report-list +} + +ms-auto-action-error X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AutoActionError, + NUMERATION single-valued, + ID id-att-auto-action-error +} + +ms-auto-action-registration-identifier X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX INTEGER, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-auto-action-registration-identifier +} + +ms-auto-action-subject-entry X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-auto-action-subject-entry +} + +ms-auto-action-type X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AutoActionType, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION single-valued, + ID id-att-auto-action-type +} + +mt-certificate-selectors X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX CertificateSelectors, + NUMERATION single-valued, + ID id-att-certificate-selectors +} + +ms-child-sequence-numbers X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + NUMERATION multi-valued, + ID id-att-child-sequence-numbers +} + +mt-content X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Content, + NUMERATION single-valued, + ID id-att-content +} + +mt-content-confidentiality-algorithm-identifier X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX AlgorithmIdentifier, + NUMERATION single-valued, + ID id-att-content-confidentiality-algorithm-identifier +} + +mt-content-correlator X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ContentCorrelator, + EQUALITY MATCHING-RULE contentCorrelatorMatch, + NUMERATION single-valued, + ID id-att-content-correlator +} + +mt-content-identifier X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ContentIdentifier, + EQUALITY MATCHING-RULE contentIdentifierMatch, + NUMERATION single-valued, + ID id-att-content-identifier +} + +mt-content-integrity-check X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ContentIntegrityCheck, + NUMERATION single-valued, + ID id-att-content-integrity-check +} + +ms-content-length X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ContentLength, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-content-length +} + +ms-content-returned X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX BOOLEAN, + EQUALITY MATCHING-RULE booleanMatch, + NUMERATION single-valued, + ID id-att-content-returned +} + +mt-content-type X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OBJECT IDENTIFIER, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION single-valued, + ID id-att-content-type +} + +mt-conversion-with-loss-prohibited X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ConversionWithLossProhibited, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-att-conversion-with-loss-prohibited +} + +mt-converted-EITs X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MS-EIT, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION multi-valued, + ID id-att-converted-EITs +} + +ms-creation-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX CreationTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-creation-time +} + +ms-deferred-delivery-cancellation-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DeferredDeliveryCancellationTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-deferred-delivery-cancellation-time +} + +DeferredDeliveryCancellationTime ::= UTCTime + +mt-deferred-delivery-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DeferredDeliveryTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-deferred-delivery-time +} + +ms-deletion-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DeletionTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-deletion-time +} + +DeletionTime ::= UTCTime + +ms-delivered-EITs X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MS-EIT, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION multi-valued, + ID id-att-delivered-EITs +} + +mt-delivery-flags X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DeliveryFlags, + EQUALITY MATCHING-RULE bitStringMatch, + NUMERATION single-valued, + ID id-att-delivery-flags +} + +mt-dl-exempted-recipients X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORName, + EQUALITY MATCHING-RULE oRNameMatch, + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-att-dl-exempted-recipients +} + +mt-dl-expansion-history X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DLExpansion, + OTHER MATCHING-RULES + {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch | + redirectionOrDLExpansionSubstringElementsMatch | + redirectionOrDLExpansionSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-att-dl-expansion-history +} + +mt-dl-expansion-prohibited X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX DLExpansionProhibited, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-att-dl-expansion-prohibited +} + +ms-entry-type X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX EntryType, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE + integerOrderingMatch, -- rule not defined in 1988 Application Contexts + + NUMERATION single-valued, + ID id-att-entry-type +} + +mt-internal-trace-information X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX InternalTraceInformationElement, + NUMERATION multi-valued, + ID id-att-internal-trace-information +} + +mt-latest-delivery-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX LatestDeliveryTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-latest-delivery-time +} + +ms-locally-originated X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX NULL, + NUMERATION single-valued, + ID id-att-locally-originated +} + +ms-marked-for-deletion X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX NULL, + NUMERATION single-valued, + ID id-att-marked-for-deletion +} + +mt-message-delivery-envelope X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageDeliveryEnvelope, + NUMERATION single-valued, + ID id-att-message-delivery-envelope +} + +mt-message-delivery-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageDeliveryTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-message-delivery-time +} + +ms-message-group-name X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageGroupName, + EQUALITY MATCHING-RULE mSStringListMatch, + OTHER MATCHING-RULES + {mSSingleSubstringListMatch | mSStringListElementsMatch | + mSSingleSubstringListElementsMatch | valueCountMatch, ...}, + NUMERATION multi-valued, + ID id-att-message-group-name +} + +mt-message-identifier X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MTSIdentifier, + EQUALITY MATCHING-RULE + mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts + + NUMERATION single-valued, + ID id-att-message-identifier +} + +ms-message-notes X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX GeneralString(SIZE (1..ub-message-notes-length)), + EQUALITY MATCHING-RULE mSStringMatch, + SUBSTRINGS MATCHING-RULE mSSubstringsMatch, + NUMERATION multi-valued, + ID id-att-message-notes +} + +mt-message-origin-authentication-check X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageOriginAuthenticationCheck, + NUMERATION single-valued, + ID id-att-message-origin-authentication-check +} + +mt-message-security-label X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageSecurityLabel, + NUMERATION single-valued, + ID id-att-message-security-label +} + +mt-message-submission-envelope X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageSubmissionEnvelope, + NUMERATION single-valued, + ID id-att-message-submission-envelope +} + +mt-message-submission-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageSubmissionTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-message-submission-time +} + +mt-message-token X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MessageToken, + NUMERATION single-valued, + ID id-att-message-token +} + +ms-originated X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX NULL, + NUMERATION single-valued, + ID id-att-ms-originated +} + +ms-submission-error X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SubmissionError, + NUMERATION single-valued, + ID id-att-ms-submission-error +} + +SubmissionError ::= CHOICE { + submission-control-violated [1] NULL, + originator-invalid [2] NULL, + recipient-improperly-specified [3] ImproperlySpecifiedRecipients, + element-of-service-not-subscribed [4] NULL, + inconsistent-request [11] NULL, + security-error [12] SecurityProblem, + unsupported-critical-function [13] NULL, + remote-bind-error [15] NULL, + service-error [27] ServiceErrorParameter, + message-group-error [30] MessageGroupErrorParameter, + ms-extension-error [31] MSExtensionErrorParameter, + entry-class-error [34] EntryClassErrorParameter +} + +mt-multiple-originator-certificates X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ExtendedCertificates, + NUMERATION single-valued, + ID id-att-multiple-originator-certificates +} + +mt-original-EITs X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX MS-EIT, + EQUALITY MATCHING-RULE objectIdentifierMatch, + NUMERATION multi-valued, + ID id-att-original-EITs +} + +mt-originally-intended-recipient-name X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORName, + EQUALITY MATCHING-RULE oRNameMatch, + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION single-valued, + ID id-att-originally-intended-recipient-name +} + +mt-originating-MTA-certificate X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OriginatingMTACertificate, + NUMERATION single-valued, + ID id-att-originating-MTA-certificate +} + +mt-originator-certificate X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OriginatorCertificate, + NUMERATION single-valued, + ID id-att-originator-certificate +} + +mt-originator-name X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORName, + EQUALITY MATCHING-RULE oRNameMatch, + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION single-valued, + ID id-att-originator-name +} + +mt-originator-report-request X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OriginatorReportRequest, + NUMERATION multi-valued, + ID id-att-originator-report-request +} + +mt-originator-return-address X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX OriginatorReturnAddress, + NUMERATION single-valued, + ID id-att-originator-return-address +} + +mt-other-recipient-names X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORName, + EQUALITY MATCHING-RULE oRNameMatch, + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-att-other-recipient-names +} + +ms-parent-sequence-number X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-parent-sequence-number +} + +mt-per-message-indicators X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PerMessageIndicators, + EQUALITY MATCHING-RULE bitStringMatch, + NUMERATION single-valued, + ID id-att-per-message-indicators +} + +mt-per-recipient-message-submission-fields X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PerRecipientMessageSubmissionFields, + NUMERATION multi-valued, + ID id-att-per-recipient-message-submission-fields +} + +mt-per-recipient-probe-submission-fields X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PerRecipientProbeSubmissionFields, + NUMERATION multi-valued, + ID id-att-per-recipient-probe-submission-fields +} + +mt-per-recipient-report-delivery-fields X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX PerRecipientReportDeliveryFields, + NUMERATION multi-valued, + ID id-att-per-recipient-report-delivery-fields +} + +mt-priority X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Priority, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE + integerOrderingMatch, -- rule not defined in 1988 Application Contexts + + NUMERATION single-valued, + ID id-att-priority +} + +mt-probe-origin-authentication-check X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ProbeOriginAuthenticationCheck, + NUMERATION single-valued, + ID id-att-probe-origin-authentication-check +} + +mt-probe-submission-envelope X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ProbeSubmissionEnvelope, + NUMERATION single-valued, + ID id-att-probe-submission-envelope +} + +mt-proof-of-delivery-request X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ProofOfDeliveryRequest, + EQUALITY MATCHING-RULE + integerMatch, -- rule not defined in 1988 Application Contexts + + NUMERATION single-valued, + ID id-att-proof-of-delivery-request +} + +mt-proof-of-submission X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ProofOfSubmission, + NUMERATION single-valued, + ID id-att-proof-of-submission +} + +mt-recipient-certificate X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ExtendedCertificates, + NUMERATION single-valued, + ID id-att-recipient-certificate +} + +ms-recipient-names X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORName, + EQUALITY MATCHING-RULE oRNameMatch, + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION multi-valued, + ID id-att-recipient-names +} + +mt-recipient-reassignment-prohibited X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX RecipientReassignmentProhibited, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-att-recipient-reassignment-prohibited +} + +mt-redirection-history X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX Redirection, + OTHER MATCHING-RULES + {redirectionOrDLExpansionMatch | redirectionOrDLExpansionElementsMatch | + redirectionOrDLExpansionSubstringElementsMatch | + redirectionOrDLExpansionSingleElementMatch | redirectionReasonMatch, + ...}, + NUMERATION multi-valued, + ID id-att-redirection-history +} + +mt-report-delivery-envelope X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReportDeliveryEnvelope, + NUMERATION single-valued, + ID id-att-report-delivery-envelope +} + +mt-reporting-DL-name X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReportingDLName, + EQUALITY MATCHING-RULE + oRNameMatch, -- rule not defined in 1988 Application Contexts + + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION single-valued, + ID id-att-reporting-DL-name +} + +mt-reporting-MTA-certificate X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReportingMTACertificate, + NUMERATION single-valued, + ID id-att-reporting-MTA-certificate +} + +mt-report-origin-authentication-check X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ReportOriginAuthenticationCheck, + NUMERATION single-valued, + ID id-att-report-origin-authentication-check +} + +ms-retrieval-status X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX RetrievalStatus, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-att-retrieval-status +} + +mt-security-classification X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SecurityClassification, + EQUALITY MATCHING-RULE integerMatch, + NUMERATION single-valued, + ID id-att-security-classification +} + +ms-sequence-number X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SequenceNumber, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-sequence-number +} + +ms-signature-verification-status X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SignatureVerificationStatus, + NUMERATION single-valued, + ID id-att-signature-verification-status +} + +SignatureVerificationStatus ::= SET { + content-integrity-check + [0] SignatureStatus DEFAULT signature-absent, + message-origin-authentication-check + [1] SignatureStatus DEFAULT signature-absent, + message-token + [2] SignatureStatus DEFAULT signature-absent, + report-origin-authentication-check + [3] SignatureStatus DEFAULT signature-absent, + proof-of-delivery + [4] SignatureStatus DEFAULT signature-absent, + proof-of-submission + [5] SignatureStatus DEFAULT signature-absent +} + +SignatureStatus ::= INTEGER { + signature-absent(0), verification-in-progress(1), verification-succeeded(2), + verification-not-possible(3), content-converted(4), signature-encrypted(5), + algorithm-not-supported(6), certificate-not-obtainable(7), + verification-failed(8)} + +ms-storage-period X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX StoragePeriod, + EQUALITY MATCHING-RULE integerMatch, + ORDERING MATCHING-RULE integerOrderingMatch, + NUMERATION single-valued, + ID id-att-storage-period +} + +StoragePeriod ::= INTEGER -- seconds + +ms-storage-time X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX StorageTime, + EQUALITY MATCHING-RULE uTCTimeMatch, + ORDERING MATCHING-RULE uTCTimeOrderingMatch, + NUMERATION single-valued, + ID id-att-storage-time +} + +StorageTime ::= UTCTime + +mt-subject-submission-identifier X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX SubjectSubmissionIdentifier, + EQUALITY MATCHING-RULE + mTSIdentifierMatch, -- rule not defined in 1988 Application Contexts + + NUMERATION single-valued, + ID id-att-subject-submission-identifier +} + +mt-this-recipient-name X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX ORName, + EQUALITY MATCHING-RULE oRNameMatch, + OTHER MATCHING-RULES + {oRNameElementsMatch | oRNameSubstringElementsMatch | + oRNameSingleElementMatch, ...}, + NUMERATION single-valued, + ID id-att-this-recipient-name +} + +mt-trace-information X413ATTRIBUTE ::= { + WITH ATTRIBUTE-SYNTAX TraceInformationElement, + NUMERATION multi-valued, + ID id-att-trace-information +} + +END -- of MSGeneralAttributeTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn new file mode 100644 index 0000000000..eceae4ab44 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSGeneralAutoActionTypes.asn @@ -0,0 +1,118 @@ +-- Module MSGeneralAutoActionTypes (X.413:06/1999) +MSGeneralAutoActionTypes {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-auto-action-types(3) version-1994(0)} DEFINITIONS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + -- AUTO-ACTION and AUTO-ACTION-ERROR information object classes + AUTO-ACTION, + AUTO-ACTION-ERROR, + -- MS abstract-service data-types and abstract-errors + EntryClass, EntryInformationSelection, EntryModification, Filter, + message-group-error, modify-error, service-error, SequenceNumber + --== + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- MS Object Identifiers + id-aae-auto-alert-error, id-act-auto-alert, id-act-auto-correlate-reports, + id-act-auto-delete, id-act-auto-modify + --== + FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0) + object-identifiers(0) version-1999(1)} + -- MS abstract-service upper bounds + ub-alert-addresses, ub-modifications, ub-supplementary-info-length + --== + FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4) + version-1994(0)} + -- MTS abstract-service + security-error + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)}; + +-- Auto-action table information object set +AutoActionTable AUTO-ACTION ::= + {GeneralAutoActions | ContentSpecificAutoActions} + +GeneralAutoActions AUTO-ACTION ::= + {auto-alert, ... -- 1994 extension additions --, auto-modify | + auto-correlate-reports | auto-delete} + +ContentSpecificAutoActions AUTO-ACTION ::= + {...} + +-- Auto-action error table information object set +AutoActionErrorTable AUTO-ACTION-ERROR ::= + {GeneralAutoActionErrors | ContentSpecificAutoActionErrors} + +GeneralAutoActionErrors AUTO-ACTION-ERROR ::= + {auto-alert-error | modify-error | service-error | security-error | + message-group-error, ... -- For future extension additions --} + +ContentSpecificAutoActionErrors AUTO-ACTION-ERROR ::= + {...} + +-- Auto-action-types +auto-alert AUTO-ACTION ::= { + REGISTRATION PARAMETER IS AutoAlertRegistrationParameter + ERRORS {auto-alert-error} + IDENTIFIED BY id-act-auto-alert +} + +AutoAlertRegistrationParameter ::= SET { + filter [0] Filter OPTIONAL, + alert-destinations + [1] SEQUENCE SIZE (1..ub-alert-addresses) OF AlertDestination OPTIONAL, + requested-attributes [2] EntryInformationSelection OPTIONAL, + -- 1994 extension + suppress-alert-destinations [3] BOOLEAN DEFAULT TRUE +} + +AlertDestination ::= SEQUENCE { + alert-address EXTERNAL, + alert-qualifier OCTET STRING OPTIONAL +} + +-- +auto-modify AUTO-ACTION ::= { + REGISTRATION PARAMETER IS AutoModifyRegistrationParameter + ERRORS + {security-error | service-error | modify-error | message-group-error} + IDENTIFIED BY id-act-auto-modify +} + +AutoModifyRegistrationParameter ::= SET { + entry-class [0] EntryClass DEFAULT delivery, + filter [1] Filter OPTIONAL, + modifications [2] SEQUENCE SIZE (1..ub-modifications) OF EntryModification +} + +-- +auto-correlate-reports AUTO-ACTION ::= { + IDENTIFIED BY id-act-auto-correlate-reports +} + +-- +auto-delete AUTO-ACTION ::= { + ERRORS {security-error} + IDENTIFIED BY id-act-auto-delete +} + +-- Auto-action errors +auto-alert-error AUTO-ACTION-ERROR ::= { + PARAMETER SEQUENCE SIZE (1..ub-alert-addresses) OF AutoAlertErrorIndication + CODE global:id-aae-auto-alert-error +} + +AutoAlertErrorIndication ::= SET { + failing-alert-destination [0] AlertDestination OPTIONAL, + supplementary-information + [1] GeneralString(SIZE (1..ub-supplementary-info-length)) OPTIONAL +} + +END -- of MSGeneralAutoActionTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn new file mode 100644 index 0000000000..37c894da86 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSMatchingRules.asn @@ -0,0 +1,225 @@ +-- Module MSMatchingRules (X.413:06/1999) +MSMatchingRules {joint-iso-itu-t mhs(6) ms(4) modules(0) + general-matching-rules(5) version-1999(1)} DEFINITIONS ::= +BEGIN + +-- Prologue +--Exports everything +IMPORTS + -- MATCHING-RULE information object class and Directory matching-rules + MATCHING-RULE, objectIdentifierMatch + --== + FROM InformationFramework + bitStringMatch, booleanMatch, generalizedTimeMatch, + generalizedTimeOrderingMatch, integerMatch, integerOrderingMatch, + uTCTimeMatch, uTCTimeOrderingMatch + --== + FROM SelectedAttributeTypes + + -- Matching-rule Object Identifiers + id-mr-content-correlator-match, id-mr-content-identifier-match, + id-mr-ms-single-substring-list-elements-match, + id-mr-ms-single-substring-list-match, id-mr-ms-single-substring-match, + id-mr-ms-substrings-match, id-mr-msstring-case-sensitive-match, + id-mr-msstring-list-elements-match, id-mr-msstring-list-match, + id-mr-msstring-match, id-mr-msstring-ordering-match, + id-mr-mts-identifier-match, id-mr-oraddress-elements-match, + id-mr-oraddress-match, id-mr-oraddress-substring-elements-match, + id-mr-orname-elements-match, id-mr-orname-match, + id-mr-orname-single-element-match, id-mr-orname-substring-elements-match, + id-mr-redirection-or-dl-expansion-elements-match, + id-mr-redirection-or-dl-expansion-match, + id-mr-redirection-or-dl-expansion-single-element-match, + id-mr-redirection-or-dl-expansion-substring-elements-match, + id-mr-redirection-reason-match, id-mr-value-count-match + --== + FROM MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0) + object-identifiers(0) version-1999(1)} + -- MS upper bounds + ub-attribute-values, ub-msstring-match + --== + FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4) + version-1994(0)} + -- MTS abstract service + ContentCorrelator, ContentIdentifier, MTSIdentifier, ORAddress, + ORAddressAndOptionalDirectoryName, ORName, RedirectionReason + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)}; + +-- Matching rule table information object set +MatchingRuleTable MATCHING-RULE ::= + {GeneralMatchingRules | ContentSpecificMatchingRules} + +GeneralMatchingRules MATCHING-RULE ::= + {bitStringMatch | booleanMatch | contentIdentifierMatch | integerMatch | + integerOrderingMatch | mSStringCaseSensitiveMatch | objectIdentifierMatch | + oRNameMatch | uTCTimeMatch | uTCTimeOrderingMatch, + ... -- 1994 extension additions --, contentCorrelatorMatch | + generalizedTimeMatch | generalizedTimeOrderingMatch | mSSingleSubstringMatch + | mSStringCaseSensitiveMatch | mSStringListElementsMatch | mSStringListMatch + | mSStringMatch | mSStringOrderingMatch | mSSingleSubstringListElementsMatch + | mSSingleSubstringListMatch | mSSubstringsMatch | mTSIdentifierMatch | + oRAddressElementsMatch | oRAddressMatch | oRAddressSubstringElementsMatch | + oRNameElementsMatch | oRNameMatch | oRNameSingleElementMatch | + oRNameSubstringElementsMatch | redirectionOrDLExpansionElementsMatch | + redirectionOrDLExpansionMatch | redirectionOrDLExpansionSingleElementMatch | + redirectionOrDLExpansionSubstringElementsMatch | redirectionReasonMatch | + valueCountMatch} + +ContentSpecificMatchingRules MATCHING-RULE ::= + {...} + +-- MS String assertion-syntax +MSString{INTEGER:maxSize} ::= CHOICE { + printable PrintableString(SIZE (1..maxSize)), + teletex TeletexString(SIZE (1..maxSize)), + general GeneralString(SIZE (1..maxSize)), + universal UniversalString(SIZE (1..maxSize)), + bmp BMPString(SIZE (1..maxSize)) +} + +-- String matching-rules +mSStringMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-msstring-match +} + +mSStringOrderingMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-msstring-ordering-match +} + +mSSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-ms-substrings-match +} + +SubstringAssertion ::= + SEQUENCE OF + CHOICE {initial [0] MSString{ub-msstring-match}, + any [1] MSString{ub-msstring-match}, + final [2] MSString{ub-msstring-match}} + +-- at most one initial and one final component +mSSingleSubstringMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-ms-single-substring-match +} + +mSStringCaseSensitiveMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-msstring-case-sensitive-match +} + +mSStringListMatch MATCHING-RULE ::= { + SYNTAX SEQUENCE OF MSString{ub-msstring-match} + ID id-mr-msstring-list-match +} + +mSStringListElementsMatch MATCHING-RULE ::= { + SYNTAX SEQUENCE OF MSString{ub-msstring-match} + ID id-mr-msstring-list-elements-match +} + +mSSingleSubstringListMatch MATCHING-RULE ::= { + SYNTAX SEQUENCE OF MSString{ub-msstring-match} + ID id-mr-ms-single-substring-list-match +} + +mSSingleSubstringListElementsMatch MATCHING-RULE ::= { + SYNTAX SEQUENCE OF MSString{ub-msstring-match} + ID id-mr-ms-single-substring-list-elements-match +} + +-- Syntax-based matching-rule +valueCountMatch MATCHING-RULE ::= { + SYNTAX INTEGER(1..ub-attribute-values) + ID id-mr-value-count-match +} + +-- Matching-rules for complex Message Store attributes +-- OR-address matching-rules +oRAddressMatch MATCHING-RULE ::= { + SYNTAX ORAddress + ID id-mr-oraddress-match +} + +oRAddressElementsMatch MATCHING-RULE ::= { + SYNTAX ORAddress + ID id-mr-oraddress-elements-match +} + +oRAddressSubstringElementsMatch MATCHING-RULE ::= { + SYNTAX ORAddress + ID id-mr-oraddress-substring-elements-match +} + +-- OR-name matching-rules +oRNameMatch MATCHING-RULE ::= {SYNTAX ORName + ID id-mr-orname-match +} + +oRNameElementsMatch MATCHING-RULE ::= { + SYNTAX ORName + ID id-mr-orname-elements-match +} + +oRNameSubstringElementsMatch MATCHING-RULE ::= { + SYNTAX ORName + ID id-mr-orname-substring-elements-match +} + +oRNameSingleElementMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-orname-single-element-match +} + +-- Redirection or DL-expansion matching rules +redirectionOrDLExpansionMatch MATCHING-RULE ::= { + SYNTAX ORAddressAndOptionalDirectoryName + ID id-mr-redirection-or-dl-expansion-match +} + +redirectionOrDLExpansionElementsMatch MATCHING-RULE ::= { + SYNTAX ORAddressAndOptionalDirectoryName + ID id-mr-redirection-or-dl-expansion-elements-match +} + +redirectionOrDLExpansionSingleElementMatch MATCHING-RULE ::= { + SYNTAX MSString {ub-msstring-match} + ID id-mr-redirection-or-dl-expansion-single-element-match +} + +redirectionOrDLExpansionSubstringElementsMatch MATCHING-RULE ::= { + SYNTAX ORAddressAndOptionalDirectoryName + ID id-mr-redirection-or-dl-expansion-substring-elements-match +} + +redirectionReasonMatch MATCHING-RULE ::= { + SYNTAX RedirectionReason + ID id-mr-redirection-reason-match +} + +-- MTS-identifier matching rule +mTSIdentifierMatch MATCHING-RULE ::= { + SYNTAX MTSIdentifier + ID id-mr-mts-identifier-match +} + +-- Content-correlator matching rule +contentCorrelatorMatch MATCHING-RULE ::= { + SYNTAX ContentCorrelator + ID id-mr-content-correlator-match +} + +-- Content-identifier matching rule +contentIdentifierMatch MATCHING-RULE ::= { + SYNTAX ContentIdentifier + ID id-mr-content-identifier-match +} + +END -- of MSMatchingRules + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn new file mode 100644 index 0000000000..df194f838c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSObjectIdentifiers.asn @@ -0,0 +1,322 @@ +-- Module MSObjectIdentifiers (X.413:06/1999) +MSObjectIdentifiers {joint-iso-itu-t mhs(6) ms(4) modules(0) + object-identifiers(0) version-1999(1)} DEFINITIONS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + ID, id-ms + --== + FROM MHSObjectIdentifiers {joint-iso-itu-t mhs(6) arch(5) modules(0) + object-identifiers(0) version-1999(1)}; + +-- Categories +id-mod -- modules -- ID ::= {id-ms 0} + +id-ot -- objects -- ID ::= {id-ms 1} + +id-pt -- port types -- ID ::= {id-ms 2} + +id-att -- attribute types -- ID ::= {id-ms 3} + +id-act -- auto-action types -- ID ::= {id-ms 4} + +id-crt -- contracts -- ID ::= {id-ms 5} + +id-cp -- connection-packages -- ID ::= {id-ms 6} + +id-aae -- auto-action-errors-- ID ::= {id-ms 7} + +id-mr -- matching-rules -- ID ::= {id-ms 8} + +id-ext -- extensions -- ID ::= {id-ms 9} + +id-alg -- algorithms -- ID ::= {id-ms 10} + +-- Modules +id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive + +id-mod-abstract-service ID ::= {id-mod 1} -- not definitive + +id-mod-attribute-types ID ::= {id-mod 2} -- not definitive + +id-mod-action-types ID ::= {id-mod 3} -- not definitive + +id-mod-upper-bounds ID ::= {id-mod 4} -- not definitive + +id-mod-matching-rules ID ::= {id-mod 5} -- not definitive + +-- Objects +id-ot-ms ID ::= {id-ot 0} + +id-ot-ms-user ID ::= {id-ot 1} + +-- Port types +id-pt-retrieval-88 ID ::= {id-pt 0} + +id-pt-retrieval-94 ID ::= {id-pt 1} + +id-pt-ms-submission ID ::= {id-pt 2} + +-- Contracts +id-crt-ms-access-88 ID ::= {id-crt 0} + +id-crt-ms-access-94 ID ::= {id-crt 1} + +-- Connection-packages +id-cp-ms-connection ID ::= {id-cp 0} + +-- Attribute-types +id-att-ac-correlated-report-list ID ::= {id-att 42} + +id-att-ac-report-subject-entry ID ::= {id-att 76} + +id-att-ac-report-summary ID ::= {id-att 43} + +id-att-ac-uncorrelated-report-list ID ::= {id-att 44} + +id-att-auto-action-error ID ::= {id-att 46} + +id-att-auto-action-registration-identifier ID ::= {id-att 47} + +id-att-auto-action-subject-entry ID ::= {id-att 48} + +id-att-auto-action-type ID ::= {id-att 49} + +id-att-certificate-selectors ID ::= {id-att 80} + +id-att-child-sequence-numbers ID ::= {id-att 0} + +id-att-content ID ::= {id-att 1} + +id-att-content-confidentiality-algorithm-identifier ID ::= {id-att 2} + +id-att-content-correlator ID ::= {id-att 3} + +id-att-content-identifier ID ::= {id-att 4} + +id-att-content-integrity-check ID ::= {id-att 5} + +id-att-content-length ID ::= {id-att 6} + +id-att-content-returned ID ::= {id-att 7} + +id-att-content-type ID ::= {id-att 8} + +id-att-conversion-with-loss-prohibited ID ::= {id-att 9} + +id-att-converted-EITs ID ::= {id-att 10} + +id-att-creation-time ID ::= {id-att 11} + +id-att-deferred-delivery-cancellation-time ID ::= {id-att 50} + +id-att-deferred-delivery-time ID ::= {id-att 51} + +id-att-deletion-time ID ::= {id-att 52} + +id-att-delivered-EITs ID ::= {id-att 12} + +id-att-delivery-flags ID ::= {id-att 13} + +id-att-dl-exempted-recipients ID ::= {id-att 78} + +id-att-dl-expansion-history ID ::= {id-att 14} + +id-att-dl-expansion-prohibited ID ::= {id-att 53} + +id-att-entry-type ID ::= {id-att 16} + +id-att-internal-trace-information ID ::= {id-att 54} + +id-att-latest-delivery-time ID ::= {id-att 55} + +id-att-locally-originated ID ::= {id-att 77} + +id-att-marked-for-deletion ID ::= {id-att 56} + +id-att-message-delivery-envelope ID ::= {id-att 18} + +id-att-message-delivery-time ID ::= {id-att 20} + +id-att-message-group-name ID ::= {id-att 57} + +id-att-message-identifier ID ::= {id-att 19} + +id-att-message-notes ID ::= {id-att 58} + +id-att-message-origin-authentication-check ID ::= {id-att 21} + +id-att-message-security-label ID ::= {id-att 22} + +id-att-message-submission-envelope ID ::= {id-att 59} + +id-att-message-submission-time ID ::= {id-att 23} + +id-att-message-token ID ::= {id-att 24} + +id-att-ms-originated ID ::= {id-att 60} + +id-att-ms-submission-error ID ::= {id-att 61} + +id-att-multiple-originator-certificates ID ::= {id-att 81} + +id-att-original-EITs ID ::= {id-att 25} + +id-att-originally-intended-recipient-name ID ::= {id-att 17} + +id-att-originating-MTA-certificate ID ::= {id-att 62} + +id-att-originator-certificate ID ::= {id-att 26} + +id-att-originator-name ID ::= {id-att 27} + +id-att-originator-report-request ID ::= {id-att 63} + +id-att-originator-return-address ID ::= {id-att 64} + +id-att-other-recipient-names ID ::= {id-att 28} + +id-att-parent-sequence-number ID ::= {id-att 29} + +id-att-per-message-indicators ID ::= {id-att 65} + +id-att-per-recipient-message-submission-fields ID ::= {id-att 66} + +id-att-per-recipient-probe-submission-fields ID ::= {id-att 67} + +id-att-per-recipient-report-delivery-fields ID ::= {id-att 30} + +id-att-priority ID ::= {id-att 31} + +id-att-probe-origin-authentication-check ID ::= {id-att 68} + +id-att-probe-submission-envelope ID ::= {id-att 69} + +id-att-proof-of-delivery-request ID ::= {id-att 32} + +id-att-proof-of-submission ID ::= {id-att 70} + +id-att-recipient-certificate ID ::= {id-att 82} + +id-att-recipient-names ID ::= {id-att 71} + +id-att-recipient-reassignment-prohibited ID ::= {id-att 72} + +id-att-redirection-history ID ::= {id-att 33} + +id-att-report-delivery-envelope ID ::= {id-att 34} + +id-att-reporting-DL-name ID ::= {id-att 35} + +id-att-reporting-MTA-certificate ID ::= {id-att 36} + +id-att-report-origin-authentication-check ID ::= {id-att 37} + +id-att-retrieval-status ID ::= {id-att 15} + +id-att-security-classification ID ::= {id-att 38} + +id-att-sequence-number ID ::= {id-att 39} + +id-att-signature-verification-status ID ::= {id-att 79} + +id-att-storage-period ID ::= {id-att 73} + +id-att-storage-time ID ::= {id-att 74} + +id-att-subject-submission-identifier ID ::= {id-att 40} + +id-att-this-recipient-name ID ::= {id-att 41} + +id-att-trace-information ID ::= {id-att 75} + +-- Auto-action-types +id-act-ipm-auto-forward ID ::= + {id-act 0} -- Reserved for use in + +-- ITU-T Rec. X.420 | +-- ISO/IEC 10021-7 +id-act-auto-alert ID ::= {id-act 1} + +id-act-auto-correlate-reports ID ::= {id-act 2} + +id-act-auto-delete ID ::= {id-act 3} + +id-act-auto-modify ID ::= {id-act 4} + +-- Auto-action errors +id-aae-auto-alert-error ID ::= {id-aae 0} + +-- Matching-rules +id-mr-content-correlator-match ID ::= {id-mr 1} + +id-mr-content-identifier-match ID ::= {id-mr 2} + +id-mr-ms-single-substring-list-elements-match ID ::= {id-mr 3} + +id-mr-ms-single-substring-list-match ID ::= {id-mr 4} + +id-mr-ms-single-substring-match ID ::= {id-mr 5} + +id-mr-ms-substrings-match ID ::= {id-mr 6} + +id-mr-msstring-case-sensitive-match ID ::= {id-mr 7} + +id-mr-msstring-list-elements-match ID ::= {id-mr 8} + +id-mr-msstring-list-match ID ::= {id-mr 9} + +id-mr-msstring-match ID ::= {id-mr 10} + +id-mr-msstring-ordering-match ID ::= {id-mr 11} + +id-mr-mts-identifier-match ID ::= {id-mr 12} + +id-mr-oraddress-elements-match ID ::= {id-mr 13} + +id-mr-oraddress-match ID ::= {id-mr 14} + +id-mr-oraddress-substring-elements-match ID ::= {id-mr 15} + +id-mr-orname-elements-match ID ::= {id-mr 16} + +id-mr-orname-match ID ::= {id-mr 17} + +id-mr-orname-single-element-match ID ::= {id-mr 18} + +id-mr-orname-substring-elements-match ID ::= {id-mr 19} + +id-mr-redirection-or-dl-expansion-elements-match ID ::= {id-mr 20} + +id-mr-redirection-or-dl-expansion-match ID ::= {id-mr 21} + +id-mr-redirection-or-dl-expansion-single-element-match ID ::= {id-mr 25} + +id-mr-redirection-or-dl-expansion-substring-elements-match ID ::= {id-mr 22} + +id-mr-redirection-reason-match ID ::= {id-mr 23} + +id-mr-value-count-match ID ::= {id-mr 24} + +-- Extensions +id-ext-modify-capability ID ::= {id-ext 0} + +id-ext-modify-retrieval-status-capability ID ::= {id-ext 1} + +id-ext-originator-certificate-selectors-override ID ::= {id-ext 2} + +id-ext-originator-token ID ::= {id-ext 3} + +id-ext-protected-change-credentials ID ::= {id-ext 4} + +id-ext-protected-change-credentials-capability ID ::= {id-ext 5} + +-- Algorithms +id-alg-password-xor ID ::= {id-alg 0} + +END -- of MSObjectIdentifiers + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn new file mode 100644 index 0000000000..6494fbd3ef --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MSUpperBounds.asn @@ -0,0 +1,77 @@ +-- Module MSUpperBounds (X.413:06/1999) +MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4) + version-1994(0)} DEFINITIONS ::= +BEGIN + +-- Exports everything +IMPORTS -- nothing -- ; + +-- Upper Bounds +ub-alert-addresses INTEGER ::= 16 + +ub-attribute-values INTEGER ::= 32767 -- (215 - 1) the largest integer + +-- representable in 16 bits +ub-attributes-supported INTEGER ::= 1024 + +ub-auto-action-errors INTEGER ::= 32767 -- (215 - 1) the largest integer + +-- representable in 16 bits +ub-auto-actions INTEGER ::= 128 + +ub-auto-registrations INTEGER ::= 1024 + +ub-default-registrations INTEGER ::= 1024 + +ub-entry-classes INTEGER ::= 128 + +ub-entry-types INTEGER ::= 16 + +ub-error-reasons INTEGER ::= 16 + +ub-extensions INTEGER ::= 32 + +ub-group-depth INTEGER ::= 64 + +ub-group-descriptor-length INTEGER ::= 256 + +ub-group-part-length INTEGER ::= 128 + +ub-information-bases INTEGER ::= 16 + +ub-matching-rules INTEGER ::= 1024 + +ub-message-groups INTEGER ::= 8192 + +ub-message-notes-length INTEGER ::= 1024 + +ub-messages INTEGER ::= 2147483647 -- (231 - 1) the largest integer + +-- representable in 32 bits +ub-modifications INTEGER ::= + 32767 -- (215 - 1) the largest integer + +-- representable in 16 bits +ub-msstring-match INTEGER ::= 512 + +ub-per-auto-action INTEGER ::= 32767 -- (215 - 1) the largest integer + +-- representable in 16 bits +ub-per-entry INTEGER ::= 1024 + +ub-service-information-length INTEGER ::= 2048 + +ub-summaries INTEGER ::= 16 + +ub-supplementary-info-length INTEGER ::= 256 + +ub-ua-registration-identifier-length INTEGER ::= 32 + +ub-ua-registrations INTEGER ::= 128 + +ub-restrictions INTEGER ::= 16 + +END -- of MSUpperBounds + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn new file mode 100644 index 0000000000..38035c77ae --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MTAAbstractService.asn @@ -0,0 +1,481 @@ +-- Module MTAAbstractService (X.411:06/1999) +MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mta-abstract-service(2) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + -- Remote Operations + CONNECTION-PACKAGE, CONTRACT + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + emptyUnbind + --== + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)} + -- MTS Abstract Service Parameters + ABSTRACT-ERROR, ABSTRACT-OPERATION, administration, AdministrationDomainName, + certificate-selectors, certificate-selectors-override, Content, + ContentIdentifier, ContentLength, ContentType, + content-confidentiality-algorithm-identifier, content-correlator, + content-integrity-check, conversion-with-loss-prohibited, + ConvertedEncodedInformationTypes, CountryName, DeferredDeliveryTime, + delivery, dl-exempted-recipients, dl-expansion-history, + dl-expansion-prohibited, ExplicitConversion, EXTENSION, ExtensionField{}, + GlobalDomainIdentifier, InitiatorCredentials, latest-delivery-time, + message-origin-authentication-check, message-security-label, message-token, + MHS-OBJECT, MTAName, MTSIdentifier, multiple-originator-certificates, + ORAddressAndOptionalDirectoryName, OriginalEncodedInformationTypes, + originator-and-DL-expansion-history, originator-certificate, + originator-return-address, PerMessageIndicators, physical-delivery-modes, + physical-delivery-report-request, physical-forwarding-address, + physical-forwarding-address-request, physical-forwarding-prohibited, + physical-rendition-attributes, PORT, Priority, PrivateDomainIdentifier, + PrivateExtensions, probe-origin-authentication-check, proof-of-delivery, + proof-of-delivery-request, recipient-certificate, + recipient-number-for-advice, recipient-reassignment-prohibited, + redirection-history, registered-mail-type, reporting-DL-name, + reporting-MTA-certificate, reporting-MTA-name, ReportType, + report-origin-authentication-check, requested-delivery-method, + ResponderCredentials, SecurityContext, submission, + SupplementaryInformation, Time + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- IPM Information Objects + IPMPerRecipientEnvelopeExtensions + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- Object Identifiers + id-cp-mta-connect, id-ct-mta-transfer, id-ot-mta, id-pt-transfer + --== + FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0) + object-identifiers(0) version-1999(1)} + -- Upper Bounds + ub-bit-options, ub-integer-options, ub-recipients, ub-transfers + --== + FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) + upper-bounds(3) version-1999(1)}; + +-- Objects +mta MHS-OBJECT ::= {BOTH {mta-transfer} + ID id-ot-mta +} + +-- Contracts +mta-transfer CONTRACT ::= { + CONNECTION mta-connect + OPERATIONS OF {transfer} + ID id-ct-mta-transfer +} + +-- Connection package +mta-connect CONNECTION-PACKAGE ::= { + BIND mta-bind + UNBIND mta-unbind + ID id-cp-mta-connect +} + +-- Ports +transfer PORT ::= { + OPERATIONS {message-transfer | probe-transfer | report-transfer} + ID id-pt-transfer +} + +-- MTA-bind and MTA-unbind +mta-bind ABSTRACT-OPERATION ::= { + ARGUMENT MTABindArgument + RESULT MTABindResult + ERRORS {mta-bind-error} +} + +mta-unbind ABSTRACT-OPERATION ::= emptyUnbind + +MTABindArgument ::= CHOICE { + unauthenticated NULL, -- if no authentication is required + authenticated + [1] SET {-- if authentication is required--initiator-name + [0] MTAName, + initiator-credentials + [1] InitiatorCredentials + (WITH COMPONENTS { + ..., + protected ABSENT + }), + security-context + [2] SecurityContext OPTIONAL + } +} + +MTABindResult ::= CHOICE { + unauthenticated NULL, -- if no authentication is required + authenticated + [1] SET {-- if authentication is required--responder-name + [0] MTAName, + responder-credentials + [1] ResponderCredentials + (WITH COMPONENTS { + ..., + protected ABSENT + })} +} + +mta-bind-error ABSTRACT-ERROR ::= { + PARAMETER + INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3), + unacceptable-security-context(4), + inadequate-association-confidentiality(5)}(0..ub-integer-options) +} + +-- Transfer Port +message-transfer ABSTRACT-OPERATION ::= {ARGUMENT Message +} + +probe-transfer ABSTRACT-OPERATION ::= {ARGUMENT Probe +} + +report-transfer ABSTRACT-OPERATION ::= {ARGUMENT Report +} + +Message ::= SEQUENCE {envelope MessageTransferEnvelope, + content Content +} + +Probe ::= ProbeTransferEnvelope + +Report ::= SEQUENCE { + envelope ReportTransferEnvelope, + content ReportTransferContent +} + +-- Message Transfer Envelope +MessageTransferEnvelope ::= SET { + COMPONENTS OF PerMessageTransferFields, + per-recipient-fields + [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientMessageTransferFields +} + +PerMessageTransferFields ::= SET { + message-identifier MessageIdentifier, + originator-name OriginatorName, + original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL, + content-type ContentType, + content-identifier ContentIdentifier OPTIONAL, + priority Priority DEFAULT normal, + per-message-indicators PerMessageIndicators DEFAULT {}, + deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL, + per-domain-bilateral-information + [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation + OPTIONAL, + trace-information TraceInformation, + extensions + [3] SET OF ExtensionField{{MessageTransferExtensions}} DEFAULT {} +} + +MessageTransferExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + recipient-reassignment-prohibited | dl-expansion-prohibited | + conversion-with-loss-prohibited | latest-delivery-time | + originator-return-address | originator-certificate | + content-confidentiality-algorithm-identifier | + message-origin-authentication-check | message-security-label | + content-correlator | dl-exempted-recipients | certificate-selectors | + multiple-originator-certificates | dl-expansion-history | + internal-trace-information | PrivateExtensions, ...} + +PerRecipientMessageTransferFields ::= SET { + recipient-name RecipientName, + originally-specified-recipient-number + [0] OriginallySpecifiedRecipientNumber, + per-recipient-indicators [1] PerRecipientIndicators, + explicit-conversion [2] ExplicitConversion OPTIONAL, + extensions + [3] SET OF ExtensionField{{PerRecipientMessageTransferExtensions}} + DEFAULT {} +} + +PerRecipientMessageTransferExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + originator-requested-alternate-recipient | requested-delivery-method | + physical-forwarding-prohibited | physical-forwarding-address-request | + physical-delivery-modes | registered-mail-type | recipient-number-for-advice + | physical-rendition-attributes | physical-delivery-report-request | + message-token | content-integrity-check | proof-of-delivery-request | + certificate-selectors-override | recipient-certificate | redirection-history + | IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...} + +-- Probe Transfer Envelope +ProbeTransferEnvelope ::= SET { + COMPONENTS OF PerProbeTransferFields, + per-recipient-fields + [2] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeTransferFields +} + +PerProbeTransferFields ::= SET { + probe-identifier ProbeIdentifier, + originator-name OriginatorName, + original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL, + content-type ContentType, + content-identifier ContentIdentifier OPTIONAL, + content-length [0] ContentLength OPTIONAL, + per-message-indicators PerMessageIndicators DEFAULT {}, + per-domain-bilateral-information + [1] SEQUENCE SIZE (1..ub-transfers) OF PerDomainBilateralInformation + OPTIONAL, + trace-information TraceInformation, + extensions + [3] SET OF ExtensionField{{ProbeTransferExtensions}} DEFAULT {} +} + +ProbeTransferExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + recipient-reassignment-prohibited | dl-expansion-prohibited | + conversion-with-loss-prohibited | originator-certificate | + message-security-label | content-correlator | + probe-origin-authentication-check | internal-trace-information | + PrivateExtensions, ...} + +PerRecipientProbeTransferFields ::= SET { + recipient-name RecipientName, + originally-specified-recipient-number + [0] OriginallySpecifiedRecipientNumber, + per-recipient-indicators [1] PerRecipientIndicators, + explicit-conversion [2] ExplicitConversion OPTIONAL, + extensions + [3] SET OF ExtensionField{{PerRecipientProbeTransferExtensions}} + DEFAULT {} +} + +PerRecipientProbeTransferExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + originator-requested-alternate-recipient | requested-delivery-method | + physical-rendition-attributes | redirection-history | PrivateExtensions, + ...} + +-- Report Transfer Envelope +ReportTransferEnvelope ::= SET { + report-identifier ReportIdentifier, + report-destination-name ReportDestinationName, + trace-information TraceInformation, + extensions + [1] SET OF ExtensionField{{ReportTransferEnvelopeExtensions}} DEFAULT {} +} + +ReportTransferEnvelopeExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + message-security-label | redirection-history | + originator-and-DL-expansion-history | reporting-DL-name | + reporting-MTA-certificate | report-origin-authentication-check | + internal-trace-information | reporting-MTA-name | PrivateExtensions, + ...} + +-- Report Transfer Content +ReportTransferContent ::= SET { + COMPONENTS OF PerReportTransferFields, + per-recipient-fields + [0] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportTransferFields +} + +PerReportTransferFields ::= SET { + subject-identifier SubjectIdentifier, + subject-intermediate-trace-information + SubjectIntermediateTraceInformation OPTIONAL, + original-encoded-information-types + OriginalEncodedInformationTypes OPTIONAL, + content-type ContentType OPTIONAL, + content-identifier ContentIdentifier OPTIONAL, + returned-content [1] Content OPTIONAL, + additional-information [2] AdditionalInformation OPTIONAL, + extensions + [3] SET OF ExtensionField{{ReportTransferContentExtensions}} DEFAULT {} +} + +ReportTransferContentExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + content-correlator | PrivateExtensions, ...} + +PerRecipientReportTransferFields ::= SET { + actual-recipient-name [0] ActualRecipientName, + originally-specified-recipient-number + [1] OriginallySpecifiedRecipientNumber, + per-recipient-indicators [2] PerRecipientIndicators, + last-trace-information [3] LastTraceInformation, + originally-intended-recipient-name + [4] OriginallyIntendedRecipientName OPTIONAL, + supplementary-information [5] SupplementaryInformation OPTIONAL, + extensions + [6] SET OF ExtensionField{{PerRecipientReportTransferExtensions}} + DEFAULT {} +} + +PerRecipientReportTransferExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + redirection-history | physical-forwarding-address | recipient-certificate | + proof-of-delivery | PrivateExtensions, ...} + +-- Envelope & Report Content Fields +MessageIdentifier ::= MTSIdentifier + +OriginatorName ::= ORAddressAndOptionalDirectoryName + +PerDomainBilateralInformation ::= SEQUENCE { + COMPONENTS OF BILATERAL.&id, + bilateral-information BILATERAL.&Type +} + +BILATERAL ::= CLASS {&id BilateralDomain UNIQUE, + &Type +}WITH SYNTAX {&Type, + IDENTIFIED BY &id +} + +BilateralDomain ::= SEQUENCE { + country-name CountryName, + domain + CHOICE {administration-domain-name AdministrationDomainName, + private-domain + SEQUENCE {administration-domain-name + [0] AdministrationDomainName, + private-domain-identifier + [1] PrivateDomainIdentifier}} +} + +RecipientName ::= ORAddressAndOptionalDirectoryName + +OriginallySpecifiedRecipientNumber ::= INTEGER(1..ub-recipients) + +PerRecipientIndicators ::= BIT STRING { + responsibility(0), + -- responsible 'one', not-responsible 'zero' + originating-MTA-report(1), + originating-MTA-non-delivery-report(2), + -- either originating-MTA-report, or originating-MTA-non-delivery-report, + -- or both, shall be 'one': + -- originating-MTA-report bit 'one' requests a 'report'; + -- originating-MTA-non-delivery-report bit 'one' requests a 'non-delivery-report'; + -- both bits 'one' requests an 'audited-report'; + -- bits 0 - 2 'don't care' for Report Transfer Content + originator-report(3), + originator-non-delivery-report(4), + -- at most one bit shall be 'one': + -- originator-report bit 'one' requests a 'report'; + -- originator-non-delivery-report bit 'one' requests a 'non-delivery-report'; + -- both bits 'zero' requests 'no-report' + reserved-5(5), reserved-6(6), reserved-7(7) + +-- reserved- bits 5 - 7 shall be 'zero' --}(SIZE (8..ub-bit-options)) + +ProbeIdentifier ::= MTSIdentifier + +ReportIdentifier ::= MTSIdentifier + +ReportDestinationName ::= ORAddressAndOptionalDirectoryName + +SubjectIdentifier ::= MessageOrProbeIdentifier + +MessageOrProbeIdentifier ::= MTSIdentifier + +SubjectIntermediateTraceInformation ::= TraceInformation + +-- AdditionalInformation is retained for backwards compatibility only, +-- and use in new systems is strongly deprecated +ADDITIONAL ::= CLASS {&Type +} + +AdditionalInformation ::= + ADDITIONAL.&Type -- maximum ub-additional-info octets including all encoding + +ActualRecipientName ::= ORAddressAndOptionalDirectoryName + +LastTraceInformation ::= SET { + arrival-time [0] ArrivalTime, + converted-encoded-information-types + ConvertedEncodedInformationTypes OPTIONAL, + report-type [1] ReportType +} + +OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName + +-- Extension Fields +originator-requested-alternate-recipient EXTENSION ::= { + OriginatorRequestedAlternateRecipient, + IDENTIFIED BY standard-extension:2 +} + +OriginatorRequestedAlternateRecipient ::= ORAddressAndOptionalDirectoryName + +trace-information EXTENSION ::= { + TraceInformation, + IDENTIFIED BY standard-extension:37 +} + +internal-trace-information EXTENSION ::= { + InternalTraceInformation, + IDENTIFIED BY standard-extension:38 +} + +InternalTraceInformation ::= + SEQUENCE SIZE (1..ub-transfers) OF InternalTraceInformationElement + +InternalTraceInformationElement ::= SEQUENCE { + global-domain-identifier GlobalDomainIdentifier, + mta-name MTAName, + mta-supplied-information MTASuppliedInformation +} + +MTASuppliedInformation ::= SET { + arrival-time [0] ArrivalTime, + routing-action [2] RoutingAction, + attempted CHOICE {mta MTAName, + domain GlobalDomainIdentifier} OPTIONAL, + -- additional-actions --COMPONENTS OF InternalAdditionalActions +} + +InternalAdditionalActions ::= AdditionalActions + +-- Common Parameter Types +TraceInformation ::= + [APPLICATION 9] SEQUENCE SIZE (1..ub-transfers) OF TraceInformationElement + +TraceInformationElement ::= SEQUENCE { + global-domain-identifier GlobalDomainIdentifier, + domain-supplied-information DomainSuppliedInformation +} + +DomainSuppliedInformation ::= SET { + arrival-time [0] ArrivalTime, + routing-action [2] RoutingAction, + attempted-domain GlobalDomainIdentifier OPTIONAL, + -- additional-actions --COMPONENTS OF AdditionalActions +} + +AdditionalActions ::= SET { + deferred-time [1] DeferredTime OPTIONAL, + converted-encoded-information-types + ConvertedEncodedInformationTypes OPTIONAL, + other-actions [3] OtherActions DEFAULT {} +} + +RoutingAction ::= ENUMERATED {relayed(0), rerouted(1)} + +DeferredTime ::= Time + +ArrivalTime ::= Time + +OtherActions ::= BIT STRING {redirected(0), dl-operation(1) +}(SIZE (0..ub-bit-options)) + +END -- of MTA Abstract Service + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn new file mode 100644 index 0000000000..68a5118bc8 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService.asn @@ -0,0 +1,2366 @@ +-- Module MTSAbstractService (X.411:06/1999) +MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + -- Remote Operations + CONNECTION-PACKAGE, CONTRACT, ERROR, OPERATION, OPERATION-PACKAGE, + ROS-OBJECT-CLASS + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + emptyUnbind + --== + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)} + -- MTA Abstract Service + internal-trace-information, trace-information + --== + FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mta-abstract-service(2) version-1999(1)} + -- MS Abstract Service Extension + forwarding-request + --== + FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0) + abstract-service(1) version-1999(1)} + -- IPM Information Objects + IPMPerRecipientEnvelopeExtensions + --== + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- Object Identifiers + id-att-physicalRendition-basic, id-cp-mts-connect, id-ct-mts-access, + id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, id-pt-administration, + id-pt-delivery, id-pt-submission, id-tok-asymmetricToken + --== + FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0) + object-identifiers(0) version-1999(1)} + -- Operation and Error Codes + err-control-violates-registration, + err-deferred-delivery-cancellation-rejected, err-delivery-control-violated, + err-element-of-service-not-subscribed, err-inconsistent-request, + err-message-submission-identifier-invalid, + err-new-credentials-unacceptable, + err-old-credentials-incorrectly-specified, err-operation-refused, + err-originator-invalid, err-recipient-improperly-specified, + err-register-rejected, err-remote-bind-error, err-security-error, + err-submission-control-violated, err-unsupported-critical-function, + op-cancel-deferred-delivery, op-change-credentials, op-delivery-control, + op-message-delivery, op-message-submission, op-probe-submission, + op-register, op-report-delivery, op-submission-control + --== + FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0) + mts-access-protocol(1) version-1999(1)} + -- Directory Definitions + Name + --== + FROM InformationFramework + PresentationAddress + --== + FROM SelectedAttributeTypes + ALGORITHM, AlgorithmIdentifier, Certificates, ENCRYPTED{}, SIGNATURE{}, + SIGNED{} + --== + FROM AuthenticationFramework + + -- Certificate Extensions + CertificateAssertion + --== + FROM CertificateExtensions + + -- Upper Bounds + ub-bit-options, ub-built-in-content-type, + ub-built-in-encoded-information-types, ub-certificates, + ub-common-name-length, ub-content-id-length, ub-content-length, + ub-content-types, ub-country-name-alpha-length, + ub-country-name-numeric-length, ub-deliverable-class, ub-diagnostic-codes, + ub-dl-expansions, ub-domain-defined-attributes, + ub-domain-defined-attribute-type-length, + ub-domain-defined-attribute-value-length, ub-domain-name-length, + ub-encoded-information-types, ub-extension-attributes, ub-extension-types, + ub-e163-4-number-length, ub-e163-4-sub-address-length, + ub-generation-qualifier-length, ub-given-name-length, ub-initials-length, + ub-integer-options, ub-local-id-length, ub-mta-name-length, + ub-mts-user-types, ub-numeric-user-id-length, ub-organization-name-length, + ub-organizational-units, ub-organizational-unit-name-length, + ub-orig-and-dl-expansions, ub-password-length, ub-pds-name-length, + ub-pds-parameter-length, ub-pds-physical-address-lines, + ub-postal-code-length, ub-privacy-mark-length, ub-queue-size, + ub-reason-codes, ub-recipients, ub-recipient-number-for-advice-length, + ub-redirections, ub-redirection-classes, ub-restrictions, + ub-security-categories, ub-security-labels, ub-security-problems, + ub-supplementary-info-length, ub-surname-length, ub-terminal-id-length, + ub-tsap-id-length, ub-unformatted-address-length, + ub-universal-generation-qualifier-length, ub-universal-given-name-length, + ub-universal-initials-length, ub-universal-surname-length, + ub-x121-address-length + --== + FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) + upper-bounds(3) version-1999(1)}; + +operationObject1 OPERATION ::= {LINKED {operationObject2} +} + +operationObject2 OPERATION ::= {LINKED {operationObject3} +} + +operationObject3 OPERATION ::= {LINKED {operationObject4} +} + +operationObject4 OPERATION ::= {LINKED {...} +} + +-- Objects +MHS-OBJECT ::= ROS-OBJECT-CLASS + +mts MHS-OBJECT ::= { + INITIATES {mts-forced-access-contract} + RESPONDS {mts-access-contract} + ID id-ot-mts +} + +mts-user MHS-OBJECT ::= { + INITIATES {mts-access-contract} + RESPONDS {mts-forced-access-contract} + ID id-ot-mts-user +} + +-- Contracts +mts-access-contract CONTRACT ::= { + CONNECTION mts-connect + INITIATOR CONSUMER OF {submission | delivery | administration} + ID id-ct-mts-access +} + +mts-forced-access-contract CONTRACT ::= { + CONNECTION mts-connect + RESPONDER CONSUMER OF {submission | delivery | administration} + ID id-ct-mts-forced-access +} + +-- Connection package +mts-connect CONNECTION-PACKAGE ::= { + BIND mts-bind + UNBIND mts-unbind + ID id-cp-mts-connect +} + +-- Ports +PORT ::= OPERATION-PACKAGE + +submission PORT ::= { + OPERATIONS {operationObject1, ...} + CONSUMER INVOKES + {message-submission | probe-submission | cancel-deferred-delivery, ...} + SUPPLIER INVOKES {submission-control, ...} + ID id-pt-submission +} + +delivery PORT ::= { + OPERATIONS {operationObject1, ...} + CONSUMER INVOKES {delivery-control, ...} + SUPPLIER INVOKES {message-delivery | report-delivery, ...} + ID id-pt-delivery +} + +administration PORT ::= { + OPERATIONS {change-credentials, ...} + CONSUMER INVOKES {register, ...} + SUPPLIER INVOKES {operationObject1, ...} + ID id-pt-administration +} + +-- MTS-bind and MTS-unbind +ABSTRACT-OPERATION ::= OPERATION + +ABSTRACT-ERROR ::= ERROR + +mts-bind ABSTRACT-OPERATION ::= { + ARGUMENT MTSBindArgument + RESULT MTSBindResult + ERRORS {mts-bind-error} +} + +MTSBindArgument ::= SET { + initiator-name ObjectName, + messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL, + initiator-credentials [2] InitiatorCredentials, + security-context [3] SecurityContext OPTIONAL, + ..., + extensions + [5] SET OF ExtensionField{{MTSBindExtensions}} DEFAULT {} +} + +MTSBindExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +MTSBindResult ::= SET { + responder-name ObjectName, + messages-waiting [1] EXPLICIT MessagesWaiting OPTIONAL, + responder-credentials [2] ResponderCredentials, + ..., + extensions + [5] SET OF ExtensionField{{MTSBindResultExtensions}} DEFAULT {} +} + +MTSBindResultExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +mts-bind-error ABSTRACT-ERROR ::= { + PARAMETER + INTEGER {busy(0), authentication-error(2), unacceptable-dialogue-mode(3), + unacceptable-security-context(4), + inadequate-association-confidentiality(5)}(0..ub-integer-options) +} + +mts-unbind ABSTRACT-OPERATION ::= emptyUnbind + +-- Association Control Parameters +ObjectName ::= CHOICE { + user-agent ORAddressAndOptionalDirectoryName, + mTA [0] MTAName, + message-store [4] ORAddressAndOptionalDirectoryName +} + +MessagesWaiting ::= SET { + urgent [0] DeliveryQueue, + normal [1] DeliveryQueue, + non-urgent [2] DeliveryQueue +} + +DeliveryQueue ::= SET { + messages [0] INTEGER(0..ub-queue-size), + octets [1] INTEGER(0..ub-content-length) OPTIONAL +} + +InitiatorCredentials ::= Credentials + +ResponderCredentials ::= Credentials + +Credentials ::= CHOICE { + simple Password, + strong [0] StrongCredentials, + ..., + protected [1] ProtectedPassword +} + +Password ::= CHOICE { + ia5-string IA5String(SIZE (0..ub-password-length)), + octet-string OCTET STRING(SIZE (0..ub-password-length)) +} + +StrongCredentials ::= SET { + bind-token [0] Token OPTIONAL, + certificate [1] Certificates OPTIONAL, + ..., + certificate-selector [2] CertificateAssertion OPTIONAL +} + +ProtectedPassword ::= SET { + signature + SIGNATURE{SET {password Password, + time1 [0] UTCTime OPTIONAL, + time2 [1] UTCTime OPTIONAL, + random1 [2] BIT STRING OPTIONAL, + random2 [3] BIT STRING OPTIONAL}}, + time1 [0] UTCTime OPTIONAL, + time2 [1] UTCTime OPTIONAL, + random1 [2] BIT STRING OPTIONAL, + random2 [3] BIT STRING OPTIONAL +} + +SecurityContext ::= SET SIZE (1..ub-security-labels) OF SecurityLabel + +-- Submission Port +message-submission ABSTRACT-OPERATION ::= { + ARGUMENT MessageSubmissionArgument + RESULT MessageSubmissionResult + ERRORS + {submission-control-violated | element-of-service-not-subscribed | + originator-invalid | recipient-improperly-specified | + inconsistent-request | security-error | unsupported-critical-function | + remote-bind-error} + LINKED {operationObject1, ...} + INVOKE PRIORITY {4 | 6 | 7} + CODE op-message-submission +} + +MessageSubmissionArgument ::= SEQUENCE { + envelope MessageSubmissionEnvelope, + content Content +} + +MessageSubmissionResult ::= SET { + message-submission-identifier MessageSubmissionIdentifier, + message-submission-time [0] MessageSubmissionTime, + content-identifier ContentIdentifier OPTIONAL, + extensions + [1] SET OF ExtensionField{{MessageSubmissionResultExtensions}} DEFAULT {} +} + +MessageSubmissionResultExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + originating-MTA-certificate | proof-of-submission | PrivateExtensions, + ...} + +probe-submission ABSTRACT-OPERATION ::= { + ARGUMENT ProbeSubmissionArgument + RESULT ProbeSubmissionResult + ERRORS + {submission-control-violated | element-of-service-not-subscribed | + originator-invalid | recipient-improperly-specified | + inconsistent-request | security-error | unsupported-critical-function | + remote-bind-error} + LINKED {operationObject1, ...} + INVOKE PRIORITY {5} + CODE op-probe-submission +} + +ProbeSubmissionArgument ::= ProbeSubmissionEnvelope + +ProbeSubmissionResult ::= SET { + probe-submission-identifier ProbeSubmissionIdentifier, + probe-submission-time [0] ProbeSubmissionTime, + content-identifier ContentIdentifier OPTIONAL, + extensions + [1] SET OF ExtensionField{{ProbeResultExtensions}} DEFAULT {} +} + +ProbeResultExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions, +-- at most one instance of each extension type +cancel-deferred-delivery ABSTRACT-OPERATION ::= { + ARGUMENT CancelDeferredDeliveryArgument + RESULT CancelDeferredDeliveryResult + ERRORS + {deferred-delivery-cancellation-rejected | + message-submission-identifier-invalid | remote-bind-error} + LINKED {operationObject1, ...} + INVOKE PRIORITY {3} + CODE op-cancel-deferred-delivery +} + +CancelDeferredDeliveryArgument ::= MessageSubmissionIdentifier + +CancelDeferredDeliveryResult ::= NULL + +submission-control ABSTRACT-OPERATION ::= { + ARGUMENT SubmissionControlArgument + RESULT SubmissionControlResult + ERRORS {security-error | remote-bind-error} + LINKED {operationObject1, ...} + INVOKE PRIORITY {3} + CODE op-submission-control +} + +SubmissionControlArgument ::= SubmissionControls + +SubmissionControlResult ::= Waiting + +submission-control-violated ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-submission-control-violated +} + +element-of-service-not-subscribed ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-element-of-service-not-subscribed +} + +deferred-delivery-cancellation-rejected ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-deferred-delivery-cancellation-rejected +} + +originator-invalid ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-originator-invalid +} + +recipient-improperly-specified ABSTRACT-ERROR ::= { + PARAMETER ImproperlySpecifiedRecipients + CODE err-recipient-improperly-specified +} + +ImproperlySpecifiedRecipients ::= + SEQUENCE SIZE (1..ub-recipients) OF RecipientName + +message-submission-identifier-invalid ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-message-submission-identifier-invalid +} + +inconsistent-request ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-inconsistent-request +} + +security-error ABSTRACT-ERROR ::= { + PARAMETER SecurityProblem + CODE err-security-error +} + +SecurityProblem ::= INTEGER { + assemby-instructions-conflict-with-security-services(0), + authentication-problem(1), authentication-failure-on-subject-message(2), + confidentiality-association-problem(3), decryption-failed(4), + decryption-key-unobtainable(5), failure-of-proof-of-message(6), + forbidden-user-security-label-register(7), + incompatible-change-with-original-security-context(8), + integrity-failure-on-subject-message(9), invalid-security-label(10), + invalid-security-label-update(11), key-failure(12), + mandatory-parameter-absence(13), operation-security-failure(14), + redirection-prohibited(15), refused-alternate-recipient-name(16), + repudiation-failure-of-message(17), + responder-credentials-checking-problem(18), security-context-failure(19), + security-context-problem(20), security-policy-violation(21), + security-services-refusal(22), token-decryption-failed(23), token-error(24), + unable-to-aggregate-security-labels(25), unauthorised-dl-name(26), + unauthorised-entry-class(27), + unauthorised-originally-intended-recipient-name(28), + unauthorised-originator-name(29), unauthorised-recipient-name(30), + unauthorised-security-label-update(31), unauthorised-user-name(32), + unknown-security-label(33), unsupported-algorithm-identifier(34), + unsupported-security-policy(35)}(0..ub-security-problems) + +unsupported-critical-function ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-unsupported-critical-function +} + +remote-bind-error ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-remote-bind-error +} + +-- Submission Port Parameters +MessageSubmissionIdentifier ::= MTSIdentifier + +MessageSubmissionTime ::= Time + +ProbeSubmissionIdentifier ::= MTSIdentifier + +ProbeSubmissionTime ::= Time + +SubmissionControls ::= + Controls + (WITH COMPONENTS { + ..., + permissible-content-types ABSENT, + permissible-encoded-information-types ABSENT + }) + +Waiting ::= SET { + waiting-operations [0] Operations DEFAULT {}, + waiting-messages [1] WaitingMessages DEFAULT {}, + waiting-content-types + [2] SET SIZE (0..ub-content-types) OF ContentType DEFAULT {}, + waiting-encoded-information-types EncodedInformationTypes OPTIONAL +} + +Operations ::= BIT STRING { + probe-submission-or-report-delivery(0), + message-submission-or-message-delivery(1)}(SIZE (0..ub-bit-options)) + +-- holding 'one', not-holding 'zero' +WaitingMessages ::= BIT STRING { + long-content(0), low-priority(1), other-security-labels(2) +}(SIZE (0..ub-bit-options)) + +-- Delivery Port +message-delivery ABSTRACT-OPERATION ::= { + ARGUMENT MessageDeliveryArgument + RESULT MessageDeliveryResult + ERRORS + {delivery-control-violated | security-error | + unsupported-critical-function} + LINKED {operationObject1, ...} + INVOKE PRIORITY {4 | 6 | 7} + CODE op-message-delivery +} + +MessageDeliveryArgument ::= SEQUENCE { + COMPONENTS OF MessageDeliveryEnvelope, + content Content +} + +MessageDeliveryResult ::= SET { + recipient-certificate [0] RecipientCertificate OPTIONAL, + proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL, + ..., + extensions + [2] SET OF ExtensionField{{MessageDeliveryResultExtensions}} DEFAULT {} +} + +MessageDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +report-delivery ABSTRACT-OPERATION ::= { + ARGUMENT ReportDeliveryArgument + RESULT ReportDeliveryResult + ERRORS + {delivery-control-violated | security-error | + unsupported-critical-function} + LINKED {operationObject1, ...} + INVOKE PRIORITY {5} + CODE op-report-delivery +} + +ReportDeliveryArgument ::= SET { + COMPONENTS OF ReportDeliveryEnvelope, + returned-content [0] Content OPTIONAL +} + +ReportDeliveryResult ::= CHOICE { + empty-result NULL, + ..., + extensions + SET SIZE (1..MAX) OF ExtensionField{{ReportDeliveryResultExtensions}} +} + +ReportDeliveryResultExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +delivery-control ABSTRACT-OPERATION ::= { + ARGUMENT DeliveryControlArgument + RESULT DeliveryControlResult + ERRORS + {control-violates-registration | security-error | operation-refused} + LINKED {operationObject1, ...} + INVOKE PRIORITY {3} + CODE op-delivery-control +} + +DeliveryControlArgument ::= SET { + COMPONENTS OF DeliveryControls, + extensions + [6] SET OF ExtensionField{{DeliveryControlExtensions}} DEFAULT {} +} + +DeliveryControlExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +DeliveryControlResult ::= SET { + COMPONENTS OF Waiting, + extensions + [6] SET OF ExtensionField{{DeliveryControlResultExtensions}} DEFAULT {} +} + +DeliveryControlResultExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +delivery-control-violated ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-delivery-control-violated +} + +control-violates-registration ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-control-violates-registration +} + +operation-refused ABSTRACT-ERROR ::= { + PARAMETER RefusedOperation + CODE err-operation-refused +} + +RefusedOperation ::= SET { + refused-argument + CHOICE {built-in-argument [1] RefusedArgument, + refused-extension EXTENSION.&id}, + refusal-reason [2] RefusalReason +} + +RefusedArgument ::= INTEGER { + user-name(0), user-address(1), deliverable-content-types(2), + deliverable-maximum-content-length(3), + deliverable-encoded-information-types-constraints(4), + deliverable-security-labels(5), recipient-assigned-redirections(6), + restricted-delivery(7), + retrieve-registrations(8), -- value 9 reserved for possible future extension to Register arguments + restrict(10), permissible-operations(11), permissible-lowest-priority(12), + permissible-encoded-information-types(13), permissible-content-types(14), + permissible-maximum-content-length(15), permissible-security-context(16) +}(0..ub-integer-options) + +RefusalReason ::= INTEGER { + facility-unavailable(0), facility-not-subscribed(1), + parameter-unacceptable(2)}(0..ub-integer-options) + +-- Delivery Port Parameters +RecipientCertificate ::= Certificates + +ProofOfDelivery ::= + SIGNATURE + {SEQUENCE {algorithm-identifier + ProofOfDeliveryAlgorithmIdentifier, + delivery-time MessageDeliveryTime, + this-recipient-name ThisRecipientName, + originally-intended-recipient-name + OriginallyIntendedRecipientName OPTIONAL, + content Content, + content-identifier ContentIdentifier OPTIONAL, + message-security-label + MessageSecurityLabel OPTIONAL}} + +ProofOfDeliveryAlgorithmIdentifier ::= AlgorithmIdentifier + +DeliveryControls ::= Controls + +Controls ::= SET { + restrict [0] BOOLEAN DEFAULT TRUE, + -- update 'TRUE', remove 'FALSE' + permissible-operations [1] Operations OPTIONAL, + permissible-maximum-content-length [2] ContentLength OPTIONAL, + permissible-lowest-priority Priority OPTIONAL, + permissible-content-types [4] ContentTypes OPTIONAL, + permissible-encoded-information-types + PermissibleEncodedInformationTypes OPTIONAL, + permissible-security-context [5] SecurityContext OPTIONAL +} + +-- Note - The Tags [0], [1] and [2] are altered for the Register operation only. +PermissibleEncodedInformationTypes ::= + EncodedInformationTypesConstraints + +-- Administration Port +register ABSTRACT-OPERATION ::= { + ARGUMENT RegisterArgument + RESULT RegisterResult + ERRORS + {register-rejected | remote-bind-error | operation-refused | + security-error} + LINKED {operationObject1, ...} + INVOKE PRIORITY {5} + CODE op-register +} + +RegisterArgument ::= SET { + user-name UserName OPTIONAL, + user-address [0] UserAddress OPTIONAL, + deliverable-class + SET SIZE (1..ub-deliverable-class) OF DeliverableClass OPTIONAL, + default-delivery-controls [2] EXPLICIT DefaultDeliveryControls OPTIONAL, + redirections [3] Redirections OPTIONAL, + restricted-delivery [4] RestrictedDelivery OPTIONAL, + retrieve-registrations [5] RegistrationTypes OPTIONAL, + extensions + [6] SET OF ExtensionField{{RegisterExtensions}} DEFAULT {} +} + +RegisterExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +RegisterResult ::= CHOICE { + empty-result NULL, + non-empty-result + SET {registered-information + [0] RegisterArgument + (WITH COMPONENTS { + ..., + retrieve-registrations ABSENT + }) OPTIONAL, + extensions + [1] SET OF ExtensionField{{RegisterResultExtensions}} DEFAULT {} + } +} + +RegisterResultExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +change-credentials ABSTRACT-OPERATION ::= { + ARGUMENT ChangeCredentialsArgument + RESULT NULL + ERRORS + {new-credentials-unacceptable | old-credentials-incorrectly-specified | + remote-bind-error | security-error} + LINKED {operationObject1, ...} + INVOKE PRIORITY {5} + CODE op-change-credentials +} + +ChangeCredentialsArgument ::= SET { + old-credentials [0] Credentials(WITH COMPONENTS { + simple + }), + new-credentials [1] Credentials(WITH COMPONENTS { + simple + }) +} + +register-rejected ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-register-rejected +} + +new-credentials-unacceptable ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-new-credentials-unacceptable +} + +old-credentials-incorrectly-specified ABSTRACT-ERROR ::= { + PARAMETER NULL + CODE err-old-credentials-incorrectly-specified +} + +-- Administration Port Parameters +UserName ::= ORAddressAndOptionalDirectoryName + +UserAddress ::= CHOICE { + x121 + [0] SEQUENCE {x121-address + NumericString(SIZE (1..ub-x121-address-length)) OPTIONAL, + tsap-id + PrintableString(SIZE (1..ub-tsap-id-length)) OPTIONAL + }, + presentation [1] PSAPAddress +} + +PSAPAddress ::= PresentationAddress + +DeliverableClass ::= + MessageClass + (WITH COMPONENTS { + ..., + priority ABSENT, + -- The 'objects' component shall always be defaulted. + -- objects ABSENT, + -- A component with a DEFAULT clause cannot be ABSENT + applies-only-to ABSENT + }) + +DefaultDeliveryControls ::= + Controls + (WITH COMPONENTS { + ..., + + -- The 'restrict' component shall always be defaulted. + -- restrict ABSENT, + -- A component with a DEFAULT clause cannot be ABSENT + permissible-security-context ABSENT + }) + +Redirections ::= SEQUENCE SIZE (1..ub-redirections) OF RecipientRedirection + +RecipientRedirection ::= SET { + redirection-classes + [0] SET SIZE (1..ub-redirection-classes) OF RedirectionClass OPTIONAL, + recipient-assigned-alternate-recipient + [1] RecipientAssignedAlternateRecipient OPTIONAL +} + +RedirectionClass ::= MessageClass + +MessageClass ::= SET { + content-types [0] ContentTypes OPTIONAL, + maximum-content-length [1] ContentLength OPTIONAL, + encoded-information-types-constraints + [2] EncodedInformationTypesConstraints OPTIONAL, + security-labels [3] SecurityContext OPTIONAL, + priority [4] SET OF Priority OPTIONAL, + objects + [5] ENUMERATED {messages(0), reports(1), both(2), ... + } DEFAULT both, + applies-only-to [6] SEQUENCE OF Restriction OPTIONAL, -- Not considered in the case of Reports + extensions + [7] SET OF ExtensionField{{MessageClassExtensions}} DEFAULT {} +} + +EncodedInformationTypesConstraints ::= SEQUENCE { + unacceptable-eits [0] ExtendedEncodedInformationTypes OPTIONAL, + acceptable-eits [1] ExtendedEncodedInformationTypes OPTIONAL, + exclusively-acceptable-eits [2] ExtendedEncodedInformationTypes OPTIONAL +} + +MessageClassExtensions EXTENSION ::= {PrivateExtensions, ...} + +-- May contain private extensions and future standardised extensions +RecipientAssignedAlternateRecipient ::= + ORAddressAndOrDirectoryName + +RestrictedDelivery ::= SEQUENCE SIZE (1..ub-restrictions) OF Restriction + +Restriction ::= SET { + permitted BOOLEAN DEFAULT TRUE, + source-type + BIT STRING {originated-by(0), redirected-by(1), dl-expanded-by(2)} + DEFAULT {originated-by, redirected-by, dl-expanded-by}, + source-name ExactOrPattern OPTIONAL +} + +ExactOrPattern ::= CHOICE { + exact-match [0] ORName, + pattern-match [1] ORName +} + +RegistrationTypes ::= SEQUENCE { + standard-parameters + [0] BIT STRING {user-name(0), user-address(1), deliverable-class(2), + default-delivery-controls(3), redirections(4), + restricted-delivery(5)} OPTIONAL, + extensions [1] SET OF EXTENSION.&id({RegisterExtensions}) OPTIONAL +} + +-- Message Submission Envelope +MessageSubmissionEnvelope ::= SET { + COMPONENTS OF PerMessageSubmissionFields, + per-recipient-fields + [1] SEQUENCE SIZE (1..ub-recipients) OF + PerRecipientMessageSubmissionFields +} + +PerMessageSubmissionFields ::= SET { + originator-name OriginatorName, + original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL, + content-type ContentType, + content-identifier ContentIdentifier OPTIONAL, + priority Priority DEFAULT normal, + per-message-indicators PerMessageIndicators DEFAULT {}, + deferred-delivery-time [0] DeferredDeliveryTime OPTIONAL, + extensions + [2] SET OF ExtensionField{{PerMessageSubmissionExtensions}} DEFAULT {} +} + +PerMessageSubmissionExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + recipient-reassignment-prohibited | dl-expansion-prohibited | + conversion-with-loss-prohibited | latest-delivery-time | + originator-return-address | originator-certificate | + content-confidentiality-algorithm-identifier | + message-origin-authentication-check | message-security-label | + proof-of-submission-request | content-correlator | dl-exempted-recipients | + certificate-selectors | multiple-originator-certificates | + forwarding-request -- for MS Abstract Service only -- | PrivateExtensions, + ...} + +PerRecipientMessageSubmissionFields ::= SET { + recipient-name RecipientName, + originator-report-request [0] OriginatorReportRequest, + explicit-conversion [1] ExplicitConversion OPTIONAL, + extensions + [2] SET OF ExtensionField{{PerRecipientMessageSubmissionExtensions}} + DEFAULT {} +} + +PerRecipientMessageSubmissionExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + originator-requested-alternate-recipient | requested-delivery-method | + physical-forwarding-prohibited | physical-forwarding-address-request | + physical-delivery-modes | registered-mail-type | recipient-number-for-advice + | physical-rendition-attributes | physical-delivery-report-request | + message-token | content-integrity-check | proof-of-delivery-request | + certificate-selectors-override | recipient-certificate | + IPMPerRecipientEnvelopeExtensions | PrivateExtensions, ...} + +-- Probe Submission Envelope +ProbeSubmissionEnvelope ::= SET { + COMPONENTS OF PerProbeSubmissionFields, + per-recipient-fields + [3] SEQUENCE SIZE (1..ub-recipients) OF PerRecipientProbeSubmissionFields +} + +PerProbeSubmissionFields ::= SET { + originator-name OriginatorName, + original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL, + content-type ContentType, + content-identifier ContentIdentifier OPTIONAL, + content-length [0] ContentLength OPTIONAL, + per-message-indicators PerMessageIndicators DEFAULT {}, + extensions + [2] SET OF ExtensionField{{PerProbeSubmissionExtensions}} DEFAULT {} +} + +PerProbeSubmissionExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + recipient-reassignment-prohibited | dl-expansion-prohibited | + conversion-with-loss-prohibited | originator-certificate | + message-security-label | content-correlator | + probe-origin-authentication-check | PrivateExtensions, ...} + +PerRecipientProbeSubmissionFields ::= SET { + recipient-name RecipientName, + originator-report-request [0] OriginatorReportRequest, + explicit-conversion [1] ExplicitConversion OPTIONAL, + extensions + [2] SET OF ExtensionField{{PerRecipientProbeSubmissionExtensions}} + DEFAULT {} +} + +PerRecipientProbeSubmissionExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + originator-requested-alternate-recipient | requested-delivery-method | + physical-rendition-attributes | PrivateExtensions, ...} + +-- Message Delivery Envelope +MessageDeliveryEnvelope ::= SEQUENCE { + message-delivery-identifier MessageDeliveryIdentifier, + message-delivery-time MessageDeliveryTime, + other-fields OtherMessageDeliveryFields +} + +OtherMessageDeliveryFields ::= SET { + content-type DeliveredContentType, + originator-name DeliveredOriginatorName, + original-encoded-information-types + [1] OriginalEncodedInformationTypes OPTIONAL, + priority Priority DEFAULT normal, + delivery-flags [2] DeliveryFlags OPTIONAL, + other-recipient-names [3] OtherRecipientNames OPTIONAL, + this-recipient-name [4] ThisRecipientName, + originally-intended-recipient-name + [5] OriginallyIntendedRecipientName OPTIONAL, + converted-encoded-information-types + [6] ConvertedEncodedInformationTypes OPTIONAL, + message-submission-time [7] MessageSubmissionTime, + content-identifier [8] ContentIdentifier OPTIONAL, + extensions + [9] SET OF ExtensionField{{MessageDeliveryExtensions}} DEFAULT {} +} + +MessageDeliveryExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + conversion-with-loss-prohibited | requested-delivery-method | + physical-forwarding-prohibited | physical-forwarding-address-request | + physical-delivery-modes | registered-mail-type | recipient-number-for-advice + | physical-rendition-attributes | originator-return-address | + physical-delivery-report-request | originator-certificate | message-token | + content-confidentiality-algorithm-identifier | content-integrity-check | + message-origin-authentication-check | message-security-label | + proof-of-delivery-request | dl-exempted-recipients | certificate-selectors | + certificate-selectors-override | multiple-originator-certificates | + recipient-certificate | IPMPerRecipientEnvelopeExtensions | + redirection-history | dl-expansion-history | trace-information | + internal-trace-information | PrivateExtensions, ...} + +-- Report Delivery Envelope +ReportDeliveryEnvelope ::= SET { + COMPONENTS OF PerReportDeliveryFields, + per-recipient-fields + SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportDeliveryFields +} + +PerReportDeliveryFields ::= SET { + subject-submission-identifier SubjectSubmissionIdentifier, + content-identifier ContentIdentifier OPTIONAL, + content-type ContentType OPTIONAL, + original-encoded-information-types OriginalEncodedInformationTypes OPTIONAL, + extensions + [1] SET OF ExtensionField{{ReportDeliveryExtensions}} DEFAULT {} +} + +ReportDeliveryExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + message-security-label | content-correlator | redirection-history | + originator-and-DL-expansion-history | reporting-DL-name | + reporting-MTA-certificate | report-origin-authentication-check | + trace-information | internal-trace-information | reporting-MTA-name | + PrivateExtensions, ...} + +PerRecipientReportDeliveryFields ::= SET { + actual-recipient-name [0] ActualRecipientName, + report-type [1] ReportType, + converted-encoded-information-types + ConvertedEncodedInformationTypes OPTIONAL, + originally-intended-recipient-name + [2] OriginallyIntendedRecipientName OPTIONAL, + supplementary-information [3] SupplementaryInformation OPTIONAL, + extensions + [4] SET OF ExtensionField{{PerRecipientReportDeliveryExtensions}} + DEFAULT {} +} + +PerRecipientReportDeliveryExtensions EXTENSION ::= + {-- May contain the following extensions, private extensions, and future standardised extensions, + -- at most one instance of each extension type: + redirection-history | physical-forwarding-address | recipient-certificate | + proof-of-delivery | PrivateExtensions, ...} + +ReportType ::= CHOICE { + delivery [0] DeliveryReport, + non-delivery [1] NonDeliveryReport +} + +DeliveryReport ::= SET { + message-delivery-time [0] MessageDeliveryTime, + type-of-MTS-user [1] TypeOfMTSUser DEFAULT public +} + +NonDeliveryReport ::= SET { + non-delivery-reason-code [0] NonDeliveryReasonCode, + non-delivery-diagnostic-code [1] NonDeliveryDiagnosticCode OPTIONAL +} + +-- Envelope Fields +OriginatorName ::= ORAddressAndOrDirectoryName + +DeliveredOriginatorName ::= ORAddressAndOptionalDirectoryName + +OriginalEncodedInformationTypes ::= EncodedInformationTypes + +ContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType + +ContentType ::= CHOICE { + built-in BuiltInContentType, + extended ExtendedContentType +} + +BuiltInContentType ::= [APPLICATION 6] INTEGER { + unidentified(0), + external(1), -- identified by the object-identifier of the EXTERNAL content + interpersonal-messaging-1984(2), interpersonal-messaging-1988(22), + edi-messaging(35), voice-messaging(40)}(0..ub-built-in-content-type) + +ExtendedContentType ::= RELATIVE-OID + +DeliveredContentType ::= CHOICE { + built-in [0] BuiltInContentType, + extended ExtendedContentType +} + +ContentIdentifier ::= + [APPLICATION 10] PrintableString(SIZE (1..ub-content-id-length)) + +PerMessageIndicators ::= [APPLICATION 8] BIT STRING { + disclosure-of-other-recipients(0), -- disclosure-of-other-recipients-requested 'one', + + -- disclosure-of-other-recipients-prohibited 'zero'; + -- ignored for Probe-submission + implicit-conversion-prohibited(1), -- implicit-conversion-prohibited 'one', + + -- implicit-conversion-allowed 'zero' + alternate-recipient-allowed(2), -- alternate-recipient-allowed 'one', + + -- alternate-recipient-prohibited 'zero' + content-return-request(3), -- content-return-requested 'one', + + -- content-return-not-requested 'zero'; + -- ignored for Probe-submission + reserved(4), -- bit reserved by MOTIS 1986 + bit-5(5), + bit-6(6), -- notification type-1 : bit 5 'zero' and bit 6 'one' + + -- notification type-2 : bit 5 'one' and bit 6 'zero' + -- notification type-3 : bit 5 'one' and bit 6 'one' + -- the mapping between notification type 1, 2, 3 + -- and the content specific notification types are defined + -- in relevant content specifications + service-message(7) -- the message content is for service purposes; + + +-- it may be a notification related to a service message; +-- used only by bilateral agreement --}(SIZE (0..ub-bit-options)) + +RecipientName ::= ORAddressAndOrDirectoryName + +OriginatorReportRequest ::= BIT STRING {report(3), non-delivery-report(4) + +-- at most one bit shall be 'one': +-- report bit 'one' requests a 'report'; +-- non-delivery-report bit 'one' requests a 'non-delivery-report'; +-- both bits 'zero' requests 'no-report' --}(SIZE (0..ub-bit-options)) + +ExplicitConversion ::= INTEGER { + ia5-text-to-teletex(0), + -- values 1 to 7 are no longer defined + ia5-text-to-g3-facsimile(8), ia5-text-to-g4-class-1(9), + ia5-text-to-videotex(10), teletex-to-ia5-text(11), + teletex-to-g3-facsimile(12), teletex-to-g4-class-1(13), + teletex-to-videotex(14), + -- value 15 is no longer defined + videotex-to-ia5-text(16), videotex-to-teletex(17)}(0..ub-integer-options) + +DeferredDeliveryTime ::= Time + +Priority ::= [APPLICATION 7] ENUMERATED {normal(0), non-urgent(1), urgent(2)} + +ContentLength ::= INTEGER(0..ub-content-length) + +MessageDeliveryIdentifier ::= MTSIdentifier + +MessageDeliveryTime ::= Time + +DeliveryFlags ::= BIT STRING { + implicit-conversion-prohibited(1) -- implicit-conversion-prohibited 'one', + + -- implicit-conversion-allowed 'zero' --}(SIZE (0..ub-bit-options)) + +OtherRecipientNames ::= SEQUENCE SIZE (1..ub-recipients) OF OtherRecipientName + +OtherRecipientName ::= ORAddressAndOptionalDirectoryName + +ThisRecipientName ::= ORAddressAndOptionalDirectoryName + +OriginallyIntendedRecipientName ::= ORAddressAndOptionalDirectoryName + +ConvertedEncodedInformationTypes ::= EncodedInformationTypes + +SubjectSubmissionIdentifier ::= MTSIdentifier + +ActualRecipientName ::= ORAddressAndOrDirectoryName + +TypeOfMTSUser ::= INTEGER { + public(0), private(1), ms(2), dl(3), pdau(4), physical-recipient(5), other(6) +}(0..ub-mts-user-types) + +NonDeliveryReasonCode ::= INTEGER { + transfer-failure(0), unable-to-transfer(1), conversion-not-performed(2), + physical-rendition-not-performed(3), physical-delivery-not-performed(4), + restricted-delivery(5), directory-operation-unsuccessful(6), + deferred-delivery-not-performed(7), transfer-failure-for-security-reason(8) +}(0..ub-reason-codes) + +NonDeliveryDiagnosticCode ::= INTEGER { + unrecognised-OR-name(0), ambiguous-OR-name(1), mts-congestion(2), + loop-detected(3), recipient-unavailable(4), maximum-time-expired(5), + encoded-information-types-unsupported(6), content-too-long(7), + conversion-impractical(8), implicit-conversion-prohibited(9), + implicit-conversion-not-subscribed(10), invalid-arguments(11), + content-syntax-error(12), size-constraint-violation(13), + protocol-violation(14), content-type-not-supported(15), + too-many-recipients(16), no-bilateral-agreement(17), + unsupported-critical-function(18), conversion-with-loss-prohibited(19), + line-too-long(20), page-split(21), pictorial-symbol-loss(22), + punctuation-symbol-loss(23), alphabetic-character-loss(24), + multiple-information-loss(25), recipient-reassignment-prohibited(26), + redirection-loop-detected(27), dl-expansion-prohibited(28), + no-dl-submit-permission(29), dl-expansion-failure(30), + physical-rendition-attributes-not-supported(31), + undeliverable-mail-physical-delivery-address-incorrect(32), + undeliverable-mail-physical-delivery-office-incorrect-or-invalid(33), + undeliverable-mail-physical-delivery-address-incomplete(34), + undeliverable-mail-recipient-unknown(35), + undeliverable-mail-recipient-deceased(36), + undeliverable-mail-organization-expired(37), + undeliverable-mail-recipient-refused-to-accept(38), + undeliverable-mail-recipient-did-not-claim(39), + undeliverable-mail-recipient-changed-address-permanently(40), + undeliverable-mail-recipient-changed-address-temporarily(41), + undeliverable-mail-recipient-changed-temporary-address(42), + undeliverable-mail-new-address-unknown(43), + undeliverable-mail-recipient-did-not-want-forwarding(44), + undeliverable-mail-originator-prohibited-forwarding(45), + secure-messaging-error(46), unable-to-downgrade(47), + unable-to-complete-transfer(48), transfer-attempts-limit-reached(49), + incorrect-notification-type(50), + dl-expansion-prohibited-by-security-policy(51), + forbidden-alternate-recipient(52), security-policy-violation(53), + security-services-refusal(54), unauthorised-dl-member(55), + unauthorised-dl-name(56), + unauthorised-originally-intended-recipient-name(57), + unauthorised-originator-name(58), unauthorised-recipient-name(59), + unreliable-system(60), authentication-failure-on-subject-message(61), + decryption-failed(62), decryption-key-unobtainable(63), + double-envelope-creation-failure(64), + double-enveloping-message-restoring-failure(65), + failure-of-proof-of-message(66), integrity-failure-on-subject-message(67), + invalid-security-label(68), key-failure(69), mandatory-parameter-absence(70), + operation-security-failure(71), repudiation-failure-of-message(72), + security-context-failure(73), token-decryption-failed(74), token-error(75), + unknown-security-label(76), unsupported-algorithm-identifier(77), + unsupported-security-policy(78)}(0..ub-diagnostic-codes) + +SupplementaryInformation ::= + PrintableString(SIZE (1..ub-supplementary-info-length)) + +-- Extension Fields +EXTENSION ::= CLASS { + &id ExtensionType UNIQUE, + &Type OPTIONAL, + &absent &Type OPTIONAL, + &recommended Criticality DEFAULT {} +} +WITH SYNTAX { + [&Type + [IF ABSENT &absent],] + [RECOMMENDED CRITICALITY &recommended,] + IDENTIFIED BY &id +} + +ExtensionType ::= CHOICE { + standard-extension [0] INTEGER(0..ub-extension-types), + private-extension [3] OBJECT IDENTIFIER +} + +Criticality ::= BIT STRING {for-submission(0), for-transfer(1), for-delivery(2) +}(SIZE (0..ub-bit-options)) -- critical 'one', non-critical 'zero' + + +ExtensionField{EXTENSION:ChosenFrom} ::= SEQUENCE { + type EXTENSION.&id({ChosenFrom}), + criticality [1] Criticality DEFAULT {}, + value [2] EXTENSION.&Type({ChosenFrom}{@type}) DEFAULT NULL:NULL +} + +PrivateExtensions EXTENSION ::= + {-- Any value shall be relayed and delivered if not Critical (see Table 27) + -- except those values whose semantics the MTA obeys which are defined to be removed when obeyed. + -- Shall be IDENTIFIED BY ExtensionType.private-extension --...} + +recipient-reassignment-prohibited EXTENSION ::= { + RecipientReassignmentProhibited + IF ABSENT recipient-reassignment-allowed, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:1 +} + +RecipientReassignmentProhibited ::= ENUMERATED { + recipient-reassignment-allowed(0), recipient-reassignment-prohibited(1) +} + +originator-requested-alternate-recipient EXTENSION ::= { + OriginatorRequestedAlternateRecipient, + RECOMMENDED CRITICALITY {for-submission}, + IDENTIFIED BY standard-extension:2 +} + +OriginatorRequestedAlternateRecipient ::= ORAddressAndOrDirectoryName + +-- OriginatorRequestedAlternateRecipient as defined here differs from the field of the same name +-- defined in Figure 4, since on submission the OR-address need not be present, but on +-- transfer the OR-address must be present. +dl-expansion-prohibited EXTENSION ::= { + DLExpansionProhibited + IF ABSENT dl-expansion-allowed, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:3 +} + +DLExpansionProhibited ::= ENUMERATED { + dl-expansion-allowed(0), dl-expansion-prohibited(1)} + +conversion-with-loss-prohibited EXTENSION ::= { + ConversionWithLossProhibited + IF ABSENT conversion-with-loss-allowed, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:4 +} + +ConversionWithLossProhibited ::= ENUMERATED { + conversion-with-loss-allowed(0), conversion-with-loss-prohibited(1) +} + +latest-delivery-time EXTENSION ::= { + LatestDeliveryTime, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:5 +} + +LatestDeliveryTime ::= Time + +requested-delivery-method EXTENSION ::= { + RequestedDeliveryMethod + IF ABSENT {any-delivery-method}, + IDENTIFIED BY standard-extension:6 +} + +RequestedDeliveryMethod ::= + SEQUENCE OF INTEGER { -- each different in order of preference, + -- most preferred first + any-delivery-method(0), mhs-delivery(1), physical-delivery(2), + telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5), + g4-facsimile-delivery(6), ia5-terminal-delivery(7), videotex-delivery(8), + telephone-delivery(9)}(0..ub-integer-options) + +physical-forwarding-prohibited EXTENSION ::= { + PhysicalForwardingProhibited + IF ABSENT physical-forwarding-allowed, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:7 +} + +PhysicalForwardingProhibited ::= ENUMERATED { + physical-forwarding-allowed(0), physical-forwarding-prohibited(1)} + +physical-forwarding-address-request EXTENSION ::= { + PhysicalForwardingAddressRequest + IF ABSENT physical-forwarding-address-not-requested, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:8 +} + +PhysicalForwardingAddressRequest ::= ENUMERATED { + physical-forwarding-address-not-requested(0), + physical-forwarding-address-requested(1)} + +physical-delivery-modes EXTENSION ::= { + PhysicalDeliveryModes + IF ABSENT {ordinary-mail}, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:9 +} + +PhysicalDeliveryModes ::= BIT STRING { + ordinary-mail(0), special-delivery(1), express-mail(2), + counter-collection(3), counter-collection-with-telephone-advice(4), + counter-collection-with-telex-advice(5), + counter-collection-with-teletex-advice(6), bureau-fax-delivery(7) + +-- bits 0 to 6 are mutually exclusive +-- bit 7 can be set independently of any of bits 0 to 6 --} +(SIZE (0..ub-bit-options)) + +registered-mail-type EXTENSION ::= { + RegisteredMailType + IF ABSENT non-registered-mail, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:10 +} + +RegisteredMailType ::= INTEGER { + non-registered-mail(0), registered-mail(1), + registered-mail-to-addressee-in-person(2)}(0..ub-integer-options) + +recipient-number-for-advice EXTENSION ::= { + RecipientNumberForAdvice, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:11 +} + +RecipientNumberForAdvice ::= + TeletexString(SIZE (1..ub-recipient-number-for-advice-length)) + +physical-rendition-attributes EXTENSION ::= { + PhysicalRenditionAttributes + IF ABSENT id-att-physicalRendition-basic, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:12 +} + +PhysicalRenditionAttributes ::= OBJECT IDENTIFIER + +originator-return-address EXTENSION ::= { + OriginatorReturnAddress, + IDENTIFIED BY standard-extension:13 +} + +OriginatorReturnAddress ::= ORAddress + +physical-delivery-report-request EXTENSION ::= { + PhysicalDeliveryReportRequest + IF ABSENT return-of-undeliverable-mail-by-PDS, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:14 +} + +PhysicalDeliveryReportRequest ::= INTEGER { + return-of-undeliverable-mail-by-PDS(0), return-of-notification-by-PDS(1), + return-of-notification-by-MHS(2), return-of-notification-by-MHS-and-PDS(3) +}(0..ub-integer-options) + +originator-certificate EXTENSION ::= { + OriginatorCertificate, + IDENTIFIED BY standard-extension:15 +} + +OriginatorCertificate ::= Certificates + +message-token EXTENSION ::= { + MessageToken, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:16 +} + +MessageToken ::= Token + +content-confidentiality-algorithm-identifier EXTENSION ::= { + ContentConfidentialityAlgorithmIdentifier, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:17 +} + +ContentConfidentialityAlgorithmIdentifier ::= AlgorithmIdentifier + +content-integrity-check EXTENSION ::= { + ContentIntegrityCheck, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:18 +} + +ContentIntegrityCheck ::= + SIGNATURE + {SEQUENCE {algorithm-identifier + ContentIntegrityAlgorithmIdentifier OPTIONAL, + content Content}} + +ContentIntegrityAlgorithmIdentifier ::= AlgorithmIdentifier + +message-origin-authentication-check EXTENSION ::= { + MessageOriginAuthenticationCheck, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:19 +} + +MessageOriginAuthenticationCheck ::= + SIGNATURE + {SEQUENCE {algorithm-identifier + MessageOriginAuthenticationAlgorithmIdentifier, + content Content, + content-identifier ContentIdentifier OPTIONAL, + message-security-label MessageSecurityLabel OPTIONAL}} + +MessageOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier + +message-security-label EXTENSION ::= { + MessageSecurityLabel, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:20 +} + +MessageSecurityLabel ::= SecurityLabel + +proof-of-submission-request EXTENSION ::= { + ProofOfSubmissionRequest + IF ABSENT proof-of-submission-not-requested, + RECOMMENDED CRITICALITY {for-submission}, + IDENTIFIED BY standard-extension:21 +} + +ProofOfSubmissionRequest ::= ENUMERATED { + proof-of-submission-not-requested(0), proof-of-submission-requested(1) +} + +proof-of-delivery-request EXTENSION ::= { + ProofOfDeliveryRequest + IF ABSENT proof-of-delivery-not-requested, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:22 +} + +ProofOfDeliveryRequest ::= ENUMERATED { + proof-of-delivery-not-requested(0), proof-of-delivery-requested(1)} + +content-correlator EXTENSION ::= { + ContentCorrelator, + IDENTIFIED BY standard-extension:23 +} + +ContentCorrelator ::= CHOICE {ia5text IA5String, + octets OCTET STRING +} + +probe-origin-authentication-check EXTENSION ::= { + ProbeOriginAuthenticationCheck, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:24 +} + +ProbeOriginAuthenticationCheck ::= + SIGNATURE + {SEQUENCE {algorithm-identifier + ProbeOriginAuthenticationAlgorithmIdentifier, + content-identifier ContentIdentifier OPTIONAL, + message-security-label MessageSecurityLabel OPTIONAL}} + +ProbeOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier + +redirection-history EXTENSION ::= { + RedirectionHistory, + IDENTIFIED BY standard-extension:25 +} + +RedirectionHistory ::= SEQUENCE SIZE (1..ub-redirections) OF Redirection + +Redirection ::= SEQUENCE { + intended-recipient-name IntendedRecipientName, + redirection-reason RedirectionReason +} + +IntendedRecipientName ::= SEQUENCE { + intended-recipient ORAddressAndOptionalDirectoryName, + redirection-time Time +} + +RedirectionReason ::= ENUMERATED { + recipient-assigned-alternate-recipient(0), + originator-requested-alternate-recipient(1), + recipient-MD-assigned-alternate-recipient(2), + -- The following values may not be supported by implementations of earlier versions of this Service Definition + directory-look-up(3), alias(4), ... + } + +dl-expansion-history EXTENSION ::= { + DLExpansionHistory, + IDENTIFIED BY standard-extension:26 +} + +DLExpansionHistory ::= SEQUENCE SIZE (1..ub-dl-expansions) OF DLExpansion + +DLExpansion ::= SEQUENCE { + dl ORAddressAndOptionalDirectoryName, + dl-expansion-time Time +} + +physical-forwarding-address EXTENSION ::= { + PhysicalForwardingAddress, + IDENTIFIED BY standard-extension:27 +} + +PhysicalForwardingAddress ::= ORAddressAndOptionalDirectoryName + +recipient-certificate EXTENSION ::= { + RecipientCertificate, + IDENTIFIED BY standard-extension:28 +} + +proof-of-delivery EXTENSION ::= { + ProofOfDelivery, + IDENTIFIED BY standard-extension:29 +} + +originator-and-DL-expansion-history EXTENSION ::= { + OriginatorAndDLExpansionHistory, + IDENTIFIED BY standard-extension:30 +} + +OriginatorAndDLExpansionHistory ::= + SEQUENCE SIZE (2..ub-orig-and-dl-expansions) OF OriginatorAndDLExpansion + +OriginatorAndDLExpansion ::= SEQUENCE { + originator-or-dl-name ORAddressAndOptionalDirectoryName, + origination-or-expansion-time Time +} + +reporting-DL-name EXTENSION ::= { + ReportingDLName, + IDENTIFIED BY standard-extension:31 +} + +ReportingDLName ::= ORAddressAndOptionalDirectoryName + +reporting-MTA-certificate EXTENSION ::= { + ReportingMTACertificate, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:32 +} + +ReportingMTACertificate ::= Certificates + +report-origin-authentication-check EXTENSION ::= { + ReportOriginAuthenticationCheck, + RECOMMENDED CRITICALITY {for-delivery}, + IDENTIFIED BY standard-extension:33 +} + +ReportOriginAuthenticationCheck ::= + SIGNATURE + {SEQUENCE {algorithm-identifier + ReportOriginAuthenticationAlgorithmIdentifier, + content-identifier ContentIdentifier OPTIONAL, + message-security-label MessageSecurityLabel OPTIONAL, + per-recipient + SEQUENCE SIZE (1..ub-recipients) OF PerRecipientReportFields + }} + +ReportOriginAuthenticationAlgorithmIdentifier ::= AlgorithmIdentifier + +PerRecipientReportFields ::= SEQUENCE { + actual-recipient-name ActualRecipientName, + originally-intended-recipient-name OriginallyIntendedRecipientName OPTIONAL, + report-type + CHOICE {delivery [0] PerRecipientDeliveryReportFields, + non-delivery [1] PerRecipientNonDeliveryReportFields} +} + +PerRecipientDeliveryReportFields ::= SEQUENCE { + message-delivery-time MessageDeliveryTime, + type-of-MTS-user TypeOfMTSUser, + recipient-certificate [0] RecipientCertificate OPTIONAL, + proof-of-delivery [1] ProofOfDelivery OPTIONAL +} + +PerRecipientNonDeliveryReportFields ::= SEQUENCE { + non-delivery-reason-code NonDeliveryReasonCode, + non-delivery-diagnostic-code NonDeliveryDiagnosticCode OPTIONAL +} + +originating-MTA-certificate EXTENSION ::= { + OriginatingMTACertificate, + IDENTIFIED BY standard-extension:34 +} + +OriginatingMTACertificate ::= Certificates + +proof-of-submission EXTENSION ::= { + ProofOfSubmission, + IDENTIFIED BY standard-extension:35 +} + +ProofOfSubmission ::= + SIGNATURE + {SEQUENCE {algorithm-identifier + ProofOfSubmissionAlgorithmIdentifier, + message-submission-envelope MessageSubmissionEnvelope, + content Content, + message-submission-identifier MessageSubmissionIdentifier, + message-submission-time MessageSubmissionTime}} + +ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier + +reporting-MTA-name EXTENSION ::= { + ReportingMTAName, + IDENTIFIED BY standard-extension:39 +} + +ReportingMTAName ::= SEQUENCE { + domain GlobalDomainIdentifier, + mta-name MTAName, + mta-directory-name [0] Name OPTIONAL +} + +multiple-originator-certificates EXTENSION ::= { + ExtendedCertificates, + IDENTIFIED BY standard-extension:40 +} + +ExtendedCertificates ::= SET SIZE (1..ub-certificates) OF ExtendedCertificate + +ExtendedCertificate ::= CHOICE { + directory-entry [0] Name, -- Name of a Directory entry where the certificate can be found + certificate [1] Certificates +} + +dl-exempted-recipients EXTENSION ::= { + DLExemptedRecipients, + IDENTIFIED BY standard-extension:42 +} + +DLExemptedRecipients ::= SET OF ORAddressAndOrDirectoryName + +certificate-selectors EXTENSION ::= { + CertificateSelectors, + IDENTIFIED BY standard-extension:45 +} + +CertificateSelectors ::= SET { + encryption-recipient [0] CertificateAssertion OPTIONAL, + encryption-originator [1] CertificateAssertion OPTIONAL, + content-integrity-check [2] CertificateAssertion OPTIONAL, + token-signature [3] CertificateAssertion OPTIONAL, + message-origin-authentication [4] CertificateAssertion OPTIONAL +} + +certificate-selectors-override EXTENSION ::= { + CertificateSelectors + (WITH COMPONENTS { + ..., + message-origin-authentication ABSENT + }), + IDENTIFIED BY standard-extension:46 +} + +-- Some standard-extensions are defined elsewhere: +-- 36 (forwarding-request) in ITU-T Rec. X.413 | ISO/IEC 10021-5; +-- 37 (trace-information), and 38 (internal-trace-information) in Figure 4; +-- 41 (blind-copy-recipients), 43 (body-part-encryption-token), and 44 (forwarded-content-token) in +-- ITU-T Rec. X.420 | ISO/IEC 10021-7 +-- Common Parameter Types +Content ::= + OCTET + STRING -- when the content-type has the integer value external, the value of the + +-- content octet string is the ASN.1 encoding of the external-content; +-- an external-content is a data type EXTERNAL +MTSIdentifier ::= [APPLICATION 4] SEQUENCE { + global-domain-identifier GlobalDomainIdentifier, + local-identifier LocalIdentifier +} + +LocalIdentifier ::= IA5String(SIZE (1..ub-local-id-length)) + +GlobalDomainIdentifier ::= [APPLICATION 3] SEQUENCE { + country-name CountryName, + administration-domain-name AdministrationDomainName, + private-domain-identifier PrivateDomainIdentifier OPTIONAL +} + +PrivateDomainIdentifier ::= CHOICE { + numeric NumericString(SIZE (1..ub-domain-name-length)), + printable PrintableString(SIZE (1..ub-domain-name-length)) +} + +MTAName ::= IA5String(SIZE (1..ub-mta-name-length)) + +Time ::= UTCTime + +-- OR Names +ORAddressAndOrDirectoryName ::= ORName + +ORAddressAndOptionalDirectoryName ::= ORName + +ORName ::= [APPLICATION 0] SEQUENCE { + -- address --COMPONENTS OF ORAddress, + directory-name [0] Name OPTIONAL +} + +ORAddress ::= SEQUENCE { + built-in-standard-attributes BuiltInStandardAttributes, + built-in-domain-defined-attributes BuiltInDomainDefinedAttributes OPTIONAL, + -- see also teletex-domain-defined-attributes + extension-attributes ExtensionAttributes OPTIONAL +} + +-- The OR-address is semantically absent from the OR-name if the built-in-standard-attribute +-- sequence is empty and the built-in-domain-defined-attributes and extension-attributes are both omitted. +-- Built-in Standard Attributes +BuiltInStandardAttributes ::= SEQUENCE { + country-name CountryName OPTIONAL, + administration-domain-name AdministrationDomainName OPTIONAL, + network-address [0] NetworkAddress OPTIONAL, + -- see also extended-network-address + terminal-identifier [1] TerminalIdentifier OPTIONAL, + private-domain-name [2] PrivateDomainName OPTIONAL, + organization-name [3] OrganizationName OPTIONAL, + -- see also teletex-organization-name + numeric-user-identifier [4] NumericUserIdentifier OPTIONAL, + personal-name [5] PersonalName OPTIONAL, + -- see also teletex-personal-name + organizational-unit-names [6] OrganizationalUnitNames OPTIONAL + -- see also teletex-organizational-unit-names +} + +CountryName ::= [APPLICATION 1] CHOICE { + x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)), + iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length)) +} + +AdministrationDomainName ::= [APPLICATION 2] CHOICE { + numeric NumericString(SIZE (0..ub-domain-name-length)), + printable PrintableString(SIZE (0..ub-domain-name-length)) +} + +NetworkAddress ::= X121Address + +-- see also extended-network-address +X121Address ::= NumericString(SIZE (1..ub-x121-address-length)) + +TerminalIdentifier ::= PrintableString(SIZE (1..ub-terminal-id-length)) + +PrivateDomainName ::= CHOICE { + numeric NumericString(SIZE (1..ub-domain-name-length)), + printable PrintableString(SIZE (1..ub-domain-name-length)) +} + +OrganizationName ::= PrintableString(SIZE (1..ub-organization-name-length)) + +-- see also teletex-organization-name +NumericUserIdentifier ::= NumericString(SIZE (1..ub-numeric-user-id-length)) + +PersonalName ::= SET { + surname [0] PrintableString(SIZE (1..ub-surname-length)), + given-name + [1] PrintableString(SIZE (1..ub-given-name-length)) OPTIONAL, + initials + [2] PrintableString(SIZE (1..ub-initials-length)) OPTIONAL, + generation-qualifier + [3] PrintableString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL +} + +-- see also teletex-personal-name +OrganizationalUnitNames ::= + SEQUENCE SIZE (1..ub-organizational-units) OF OrganizationalUnitName + +-- see also teletex-organizational-unit-names +OrganizationalUnitName ::= + PrintableString(SIZE (1..ub-organizational-unit-name-length)) + +-- Built-in Domain-defined Attributes +BuiltInDomainDefinedAttributes ::= + SEQUENCE SIZE (1..ub-domain-defined-attributes) OF + BuiltInDomainDefinedAttribute + +BuiltInDomainDefinedAttribute ::= SEQUENCE { + type PrintableString(SIZE (1..ub-domain-defined-attribute-type-length)), + value PrintableString(SIZE (1..ub-domain-defined-attribute-value-length)) +} + +-- Extension Attributes +ExtensionAttributes ::= + SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute + +ExtensionAttribute ::= SEQUENCE { + extension-attribute-type + [0] EXTENSION-ATTRIBUTE.&id({ExtensionAttributeTable}), + extension-attribute-value + [1] EXTENSION-ATTRIBUTE.&Type + ({ExtensionAttributeTable}{@extension-attribute-type}) +} + +EXTENSION-ATTRIBUTE ::= CLASS { + &id INTEGER(0..ub-extension-attributes) UNIQUE, + &Type +}WITH SYNTAX {&Type + IDENTIFIED BY &id +} + +ExtensionAttributeTable EXTENSION-ATTRIBUTE ::= + {common-name | teletex-common-name | universal-common-name | + teletex-organization-name | universal-organization-name | + teletex-personal-name | universal-personal-name | + teletex-organizational-unit-names | universal-organizational-unit-names | + teletex-domain-defined-attributes | universal-domain-defined-attributes | + pds-name | physical-delivery-country-name | postal-code | + physical-delivery-office-name | universal-physical-delivery-office-name | + physical-delivery-office-number | universal-physical-delivery-office-number + | extension-OR-address-components | + universal-extension-OR-address-components | physical-delivery-personal-name + | universal-physical-delivery-personal-name | + physical-delivery-organization-name | + universal-physical-delivery-organization-name | + extension-physical-delivery-address-components | + universal-extension-physical-delivery-address-components | + unformatted-postal-address | universal-unformatted-postal-address | + street-address | universal-street-address | post-office-box-address | + universal-post-office-box-address | poste-restante-address | + universal-poste-restante-address | unique-postal-name | + universal-unique-postal-name | local-postal-attributes | + universal-local-postal-attributes | extended-network-address | terminal-type + } + +-- Extension Standard Attributes +common-name EXTENSION-ATTRIBUTE ::= {CommonName + IDENTIFIED BY 1 +} + +CommonName ::= PrintableString(SIZE (1..ub-common-name-length)) + +teletex-common-name EXTENSION-ATTRIBUTE ::= {TeletexCommonName + IDENTIFIED BY 2 +} + +TeletexCommonName ::= TeletexString(SIZE (1..ub-common-name-length)) + +universal-common-name EXTENSION-ATTRIBUTE ::= { + UniversalCommonName + IDENTIFIED BY 24 +} + +UniversalCommonName ::= UniversalOrBMPString{ub-common-name-length} + +teletex-organization-name EXTENSION-ATTRIBUTE ::= { + TeletexOrganizationName + IDENTIFIED BY 3 +} + +TeletexOrganizationName ::= + TeletexString(SIZE (1..ub-organization-name-length)) + +universal-organization-name EXTENSION-ATTRIBUTE ::= { + UniversalOrganizationName + IDENTIFIED BY 25 +} + +UniversalOrganizationName ::= UniversalOrBMPString{ub-organization-name-length} + +teletex-personal-name EXTENSION-ATTRIBUTE ::= { + TeletexPersonalName + IDENTIFIED BY 4 +} + +TeletexPersonalName ::= SET { + surname [0] TeletexString(SIZE (1..ub-surname-length)), + given-name + [1] TeletexString(SIZE (1..ub-given-name-length)) OPTIONAL, + initials + [2] TeletexString(SIZE (1..ub-initials-length)) OPTIONAL, + generation-qualifier + [3] TeletexString(SIZE (1..ub-generation-qualifier-length)) OPTIONAL +} + +universal-personal-name EXTENSION-ATTRIBUTE ::= { + UniversalPersonalName + IDENTIFIED BY 26 +} + +UniversalPersonalName ::= SET { + surname [0] UniversalOrBMPString{ub-universal-surname-length}, + -- If a language is specified within surname, then that language applies to each of the following + -- optional components unless the component specifies another language. + given-name + [1] UniversalOrBMPString{ub-universal-given-name-length} OPTIONAL, + initials + [2] UniversalOrBMPString{ub-universal-initials-length} OPTIONAL, + generation-qualifier + [3] UniversalOrBMPString{ub-universal-generation-qualifier-length} + OPTIONAL +} + +teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::= { + TeletexOrganizationalUnitNames + IDENTIFIED BY 5 +} + +TeletexOrganizationalUnitNames ::= + SEQUENCE SIZE (1..ub-organizational-units) OF TeletexOrganizationalUnitName + +TeletexOrganizationalUnitName ::= + TeletexString(SIZE (1..ub-organizational-unit-name-length)) + +universal-organizational-unit-names EXTENSION-ATTRIBUTE ::= { + UniversalOrganizationalUnitNames + IDENTIFIED BY 27 +} + +UniversalOrganizationalUnitNames ::= + SEQUENCE SIZE (1..ub-organizational-units) OF UniversalOrganizationalUnitName + +-- If a unit name specifies a language, then that language applies to subordinate unit names unless +-- the subordinate specifies another language. +UniversalOrganizationalUnitName ::= + UniversalOrBMPString{ub-organizational-unit-name-length} + +UniversalOrBMPString{INTEGER:ub-string-length} ::= SET { + character-encoding + CHOICE {two-octets BMPString(SIZE (1..ub-string-length)), + four-octets UniversalString(SIZE (1..ub-string-length))}, + iso-639-language-code PrintableString(SIZE (2 | 5)) OPTIONAL +} + +pds-name EXTENSION-ATTRIBUTE ::= {PDSName + IDENTIFIED BY 7 +} + +PDSName ::= PrintableString(SIZE (1..ub-pds-name-length)) + +physical-delivery-country-name EXTENSION-ATTRIBUTE ::= { + PhysicalDeliveryCountryName + IDENTIFIED BY 8 +} + +PhysicalDeliveryCountryName ::= CHOICE { + x121-dcc-code NumericString(SIZE (ub-country-name-numeric-length)), + iso-3166-alpha2-code PrintableString(SIZE (ub-country-name-alpha-length)) +} + +postal-code EXTENSION-ATTRIBUTE ::= {PostalCode + IDENTIFIED BY 9 +} + +PostalCode ::= CHOICE { + numeric-code NumericString(SIZE (1..ub-postal-code-length)), + printable-code PrintableString(SIZE (1..ub-postal-code-length)) +} + +physical-delivery-office-name EXTENSION-ATTRIBUTE ::= { + PhysicalDeliveryOfficeName + IDENTIFIED BY 10 +} + +PhysicalDeliveryOfficeName ::= PDSParameter + +universal-physical-delivery-office-name EXTENSION-ATTRIBUTE ::= { + UniversalPhysicalDeliveryOfficeName + IDENTIFIED BY 29 +} + +UniversalPhysicalDeliveryOfficeName ::= UniversalPDSParameter + +physical-delivery-office-number EXTENSION-ATTRIBUTE ::= { + PhysicalDeliveryOfficeNumber + IDENTIFIED BY 11 +} + +PhysicalDeliveryOfficeNumber ::= PDSParameter + +universal-physical-delivery-office-number EXTENSION-ATTRIBUTE ::= { + UniversalPhysicalDeliveryOfficeNumber + IDENTIFIED BY 30 +} + +UniversalPhysicalDeliveryOfficeNumber ::= UniversalPDSParameter + +extension-OR-address-components EXTENSION-ATTRIBUTE ::= { + ExtensionORAddressComponents + IDENTIFIED BY 12 +} + +ExtensionORAddressComponents ::= PDSParameter + +universal-extension-OR-address-components EXTENSION-ATTRIBUTE ::= { + UniversalExtensionORAddressComponents + IDENTIFIED BY 31 +} + +UniversalExtensionORAddressComponents ::= UniversalPDSParameter + +physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= { + PhysicalDeliveryPersonalName + IDENTIFIED BY 13 +} + +PhysicalDeliveryPersonalName ::= PDSParameter + +universal-physical-delivery-personal-name EXTENSION-ATTRIBUTE ::= { + UniversalPhysicalDeliveryPersonalName + IDENTIFIED BY 32 +} + +UniversalPhysicalDeliveryPersonalName ::= UniversalPDSParameter + +physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= { + PhysicalDeliveryOrganizationName + IDENTIFIED BY 14 +} + +PhysicalDeliveryOrganizationName ::= PDSParameter + +universal-physical-delivery-organization-name EXTENSION-ATTRIBUTE ::= +{UniversalPhysicalDeliveryOrganizationName + IDENTIFIED BY 33 +} + +UniversalPhysicalDeliveryOrganizationName ::= UniversalPDSParameter + +extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::= +{ExtensionPhysicalDeliveryAddressComponents + IDENTIFIED BY 15 +} + +ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter + +universal-extension-physical-delivery-address-components EXTENSION-ATTRIBUTE + ::= {UniversalExtensionPhysicalDeliveryAddressComponents + IDENTIFIED BY 34 +} + +UniversalExtensionPhysicalDeliveryAddressComponents ::= UniversalPDSParameter + +unformatted-postal-address EXTENSION-ATTRIBUTE ::= { + UnformattedPostalAddress + IDENTIFIED BY 16 +} + +UnformattedPostalAddress ::= SET { + printable-address + SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF + PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL, + teletex-string + TeletexString(SIZE (1..ub-unformatted-address-length)) OPTIONAL +} + +universal-unformatted-postal-address EXTENSION-ATTRIBUTE ::= { + UniversalUnformattedPostalAddress + IDENTIFIED BY 35 +} + +UniversalUnformattedPostalAddress ::= + UniversalOrBMPString{ub-unformatted-address-length} + +street-address EXTENSION-ATTRIBUTE ::= {StreetAddress + IDENTIFIED BY 17 +} + +StreetAddress ::= PDSParameter + +universal-street-address EXTENSION-ATTRIBUTE ::= { + UniversalStreetAddress + IDENTIFIED BY 36 +} + +UniversalStreetAddress ::= UniversalPDSParameter + +post-office-box-address EXTENSION-ATTRIBUTE ::= { + PostOfficeBoxAddress + IDENTIFIED BY 18 +} + +PostOfficeBoxAddress ::= PDSParameter + +universal-post-office-box-address EXTENSION-ATTRIBUTE ::= { + UniversalPostOfficeBoxAddress + IDENTIFIED BY 37 +} + +UniversalPostOfficeBoxAddress ::= UniversalPDSParameter + +poste-restante-address EXTENSION-ATTRIBUTE ::= { + PosteRestanteAddress + IDENTIFIED BY 19 +} + +PosteRestanteAddress ::= PDSParameter + +universal-poste-restante-address EXTENSION-ATTRIBUTE ::= { + UniversalPosteRestanteAddress + IDENTIFIED BY 38 +} + +UniversalPosteRestanteAddress ::= UniversalPDSParameter + +unique-postal-name EXTENSION-ATTRIBUTE ::= {UniquePostalName + IDENTIFIED BY 20 +} + +UniquePostalName ::= PDSParameter + +universal-unique-postal-name EXTENSION-ATTRIBUTE ::= { + UniversalUniquePostalName + IDENTIFIED BY 39 +} + +UniversalUniquePostalName ::= UniversalPDSParameter + +local-postal-attributes EXTENSION-ATTRIBUTE ::= { + LocalPostalAttributes + IDENTIFIED BY 21 +} + +LocalPostalAttributes ::= PDSParameter + +universal-local-postal-attributes EXTENSION-ATTRIBUTE ::= { + UniversalLocalPostalAttributes + IDENTIFIED BY 40 +} + +UniversalLocalPostalAttributes ::= UniversalPDSParameter + +PDSParameter ::= SET { + printable-string PrintableString(SIZE (1..ub-pds-parameter-length)) OPTIONAL, + teletex-string TeletexString(SIZE (1..ub-pds-parameter-length)) OPTIONAL +} + +UniversalPDSParameter ::= UniversalOrBMPString{ub-pds-parameter-length} + +extended-network-address EXTENSION-ATTRIBUTE ::= { + ExtendedNetworkAddress + IDENTIFIED BY 22 +} + +ExtendedNetworkAddress ::= CHOICE { + e163-4-address + SEQUENCE {number + [0] NumericString(SIZE (1..ub-e163-4-number-length)), + sub-address + [1] NumericString(SIZE (1..ub-e163-4-sub-address-length)) + OPTIONAL}, + psap-address [0] PresentationAddress +} + +terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType + IDENTIFIED BY 23 +} + +TerminalType ::= INTEGER { + telex(3), teletex(4), g3-facsimile(5), g4-facsimile(6), ia5-terminal(7), + videotex(8)}(0..ub-integer-options) + +-- Extension Domain-defined Attributes +teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::= { + TeletexDomainDefinedAttributes + IDENTIFIED BY 6 +} + +TeletexDomainDefinedAttributes ::= + SEQUENCE SIZE (1..ub-domain-defined-attributes) OF + TeletexDomainDefinedAttribute + +TeletexDomainDefinedAttribute ::= SEQUENCE { + type TeletexString(SIZE (1..ub-domain-defined-attribute-type-length)), + value TeletexString(SIZE (1..ub-domain-defined-attribute-value-length)) +} + +universal-domain-defined-attributes EXTENSION-ATTRIBUTE ::= { + UniversalDomainDefinedAttributes + IDENTIFIED BY 28 +} + +UniversalDomainDefinedAttributes ::= + SEQUENCE SIZE (1..ub-domain-defined-attributes) OF + UniversalDomainDefinedAttribute + +UniversalDomainDefinedAttribute ::= SEQUENCE { + type UniversalOrBMPString{ub-domain-defined-attribute-type-length}, + value UniversalOrBMPString{ub-domain-defined-attribute-value-length} +} + +-- Encoded Information Types +EncodedInformationTypes ::= [APPLICATION 5] SET { + built-in-encoded-information-types [0] BuiltInEncodedInformationTypes, + -- non-basic-parameters --COMPONENTS OF NonBasicParameters, + extended-encoded-information-types + [4] ExtendedEncodedInformationTypes OPTIONAL +} + +-- Built-in Encoded Information Types +BuiltInEncodedInformationTypes ::= BIT STRING { + unknown(0), ia5-text(2), g3-facsimile(3), g4-class-1(4), teletex(5), + videotex(6), voice(7), sfd(8), mixed-mode(9) +}(SIZE (0..ub-built-in-encoded-information-types)) + +-- Extended Encoded Information Types +ExtendedEncodedInformationTypes ::= + SET SIZE (1..ub-encoded-information-types) OF ExtendedEncodedInformationType + +ExtendedEncodedInformationType ::= OBJECT IDENTIFIER + +-- Non-basic Parameters +NonBasicParameters ::= SET { + g3-facsimile [1] G3FacsimileNonBasicParameters DEFAULT {}, + teletex [2] TeletexNonBasicParameters DEFAULT {} +} + +G3FacsimileNonBasicParameters ::= BIT STRING { + two-dimensional(8), -- As defined in ITU-T Recommendation T.30 + fine-resolution(9), -- + unlimited-length(20), -- These bit values are chosen such that when + b4-length(21), -- encoded using ASN.1 Basic Encoding Rules + a3-width(22), -- the resulting octets have the same values + b4-width(23), -- as for T.30 encoding + t6-coding(25), -- + uncompressed(30), -- Trailing zero bits are not significant. + width-middle-864-of-1728(37), -- It is recommended that implementations + width-middle-1216-of-1728(38), -- should not encode more than 32 bits unless + resolution-type(44), -- higher numbered bits are non-zero. + resolution-400x400(45), resolution-300x300(46), resolution-8x15(47), + edi(49), dtm(50), bft(51), mixed-mode(58), character-mode(60), + twelve-bits(65), preferred-huffmann(66), full-colour(67), jpeg(68), + processable-mode-26(71)} + +TeletexNonBasicParameters ::= SET { + graphic-character-sets [0] TeletexString OPTIONAL, + control-character-sets [1] TeletexString OPTIONAL, + page-formats [2] OCTET STRING OPTIONAL, + miscellaneous-terminal-capabilities [3] TeletexString OPTIONAL, + private-use + [4] OCTET STRING + OPTIONAL -- maximum ub-teletex-private-use-length octets -- +} + +-- as defined in CCITT Recommendation T.62 +-- Token +Token ::= SEQUENCE { + token-type-identifier [0] TOKEN.&id({TokensTable}), + token + [1] TOKEN.&Type({TokensTable}{@token-type-identifier}) +} + +TOKEN ::= TYPE-IDENTIFIER + +TokensTable TOKEN ::= {asymmetric-token, ...} + +asymmetric-token TOKEN ::= { + AsymmetricToken + IDENTIFIED BY id-tok-asymmetricToken +} + +AsymmetricToken ::= + SIGNED + {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier, + name + CHOICE {recipient-name RecipientName, + mta + [3] SEQUENCE {global-domain-identifier + GlobalDomainIdentifier OPTIONAL, + mta-name MTAName + }}, + time Time, + signed-data [0] TokenData OPTIONAL, + encryption-algorithm-identifier + [1] AlgorithmIdentifier OPTIONAL, + encrypted-data + [2] ENCRYPTED{TokenData} OPTIONAL}} + +TokenData ::= SEQUENCE { + type [0] TOKEN-DATA.&id({TokenDataTable}), + value [1] TOKEN-DATA.&Type({TokenDataTable}{@type}) +} + +TOKEN-DATA ::= CLASS {&id INTEGER UNIQUE, + &Type +}WITH SYNTAX {&Type + IDENTIFIED BY &id +} + +TokenDataTable TOKEN-DATA ::= + {bind-token-signed-data | message-token-signed-data | + message-token-encrypted-data | bind-token-encrypted-data, ...} + +bind-token-signed-data TOKEN-DATA ::= {BindTokenSignedData + IDENTIFIED BY 1 +} + +BindTokenSignedData ::= RandomNumber + +RandomNumber ::= BIT STRING + +message-token-signed-data TOKEN-DATA ::= { + MessageTokenSignedData + IDENTIFIED BY 2 +} + +MessageTokenSignedData ::= SEQUENCE { + content-confidentiality-algorithm-identifier + [0] ContentConfidentialityAlgorithmIdentifier OPTIONAL, + content-integrity-check + [1] ContentIntegrityCheck OPTIONAL, + message-security-label + [2] MessageSecurityLabel OPTIONAL, + proof-of-delivery-request + [3] ProofOfDeliveryRequest OPTIONAL, + message-sequence-number [4] INTEGER OPTIONAL +} + +message-token-encrypted-data TOKEN-DATA ::= { + MessageTokenEncryptedData + IDENTIFIED BY 3 +} + +MessageTokenEncryptedData ::= SEQUENCE { + content-confidentiality-key [0] EncryptionKey OPTIONAL, + content-integrity-check [1] ContentIntegrityCheck OPTIONAL, + message-security-label [2] MessageSecurityLabel OPTIONAL, + content-integrity-key [3] EncryptionKey OPTIONAL, + message-sequence-number [4] INTEGER OPTIONAL +} + +EncryptionKey ::= BIT STRING + +bind-token-encrypted-data TOKEN-DATA ::= { + BindTokenEncryptedData + IDENTIFIED BY 4 +} + +BindTokenEncryptedData ::= EXTERNAL + +-- Security Label +SecurityLabel ::= SET { + security-policy-identifier SecurityPolicyIdentifier OPTIONAL, + security-classification SecurityClassification OPTIONAL, + privacy-mark PrivacyMark OPTIONAL, + security-categories SecurityCategories OPTIONAL +} + +SecurityPolicyIdentifier ::= OBJECT IDENTIFIER + +SecurityClassification ::= INTEGER { + unmarked(0), unclassified(1), restricted(2), confidential(3), secret(4), + top-secret(5)}(0..ub-integer-options) + +PrivacyMark ::= PrintableString(SIZE (1..ub-privacy-mark-length)) + +SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory + +SecurityCategory ::= SEQUENCE { + type [0] SECURITY-CATEGORY.&id({SecurityCategoriesTable}), + value [1] SECURITY-CATEGORY.&Type({SecurityCategoriesTable}{@type}) +} + +SECURITY-CATEGORY ::= TYPE-IDENTIFIER + +SecurityCategoriesTable SECURITY-CATEGORY ::= + {...} + +END -- of MTSAbstractService + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn new file mode 100644 index 0000000000..f66d117f35 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSAbstractService88.asn @@ -0,0 +1,150 @@ +-- Module MTSAbstractService88 (X.411:06/1999) +MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1988(1988)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS + -- Remote Operations + CONTRACT + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + -- MTS Abstract Service Parameters + operationObject1, ABSTRACT-OPERATION, change-credentials, ContentLength, + ContentTypes, Controls, control-violates-registration, + DefaultDeliveryControls, EncodedInformationTypes, message-delivery, + MHS-OBJECT, mts-connect, PORT, RecipientAssignedAlternateRecipient, + register-rejected, report-delivery, SecurityLabel, security-error, + submission, UserAddress, UserName, Waiting + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- Object Identifiers + id-ct-mts-access, id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user, + id-pt-administration, id-pt-delivery + --== + FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0) + object-identifiers(0) version-1999(1)} + -- Operation Codes + op-delivery-control, op-register + --== + FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0) + mts-access-protocol(1) version-1999(1)} + -- Upper Bounds + ub-content-types, ub-labels-and-redirections + --== + FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) + upper-bounds(3) version-1999(1)}; + +-- Objects +mts-88 MHS-OBJECT ::= { + INITIATES {mts-forced-access-contract-88} + RESPONDS {mts-access-contract-88} + ID {id-ot-mts 88} +} + +mts-user-88 MHS-OBJECT ::= { + INITIATES {mts-access-contract-88} + RESPONDS {mts-forced-access-contract-88} + ID {id-ot-mts-user 88} +} + +-- Contracts +mts-access-contract-88 CONTRACT ::= { + CONNECTION mts-connect + INITIATOR CONSUMER OF {submission | delivery-88 | administration-88} + ID {id-ct-mts-access 88} +} + +mts-forced-access-contract-88 CONTRACT ::= { + CONNECTION mts-connect + RESPONDER CONSUMER OF {submission | delivery-88 | administration-88} + ID {id-ct-mts-forced-access 88} +} + +-- Ports +delivery-88 PORT ::= { + OPERATIONS + {operationObject1, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + CONSUMER INVOKES + {delivery-control-88, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + SUPPLIER INVOKES + {message-delivery | report-delivery, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + ID {id-pt-delivery 88} +} + +administration-88 PORT ::= { + OPERATIONS + {change-credentials, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + CONSUMER INVOKES + {register-88, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + SUPPLIER INVOKES + {operationObject1, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + ID {id-pt-administration 88} +} + +-- Delivery Port +delivery-control-88 ABSTRACT-OPERATION ::= { + ARGUMENT DeliveryControls88 + RESULT Waiting + ERRORS {control-violates-registration | security-error} + LINKED + {operationObject1, + ...} -- This IOS needs to be extensible for Forward{} of X.880 + INVOKE PRIORITY {3} + CODE op-delivery-control +} + +DeliveryControls88 ::= SET { + COMPONENTS OF + Controls + (WITH COMPONENTS { + ..., + permissible-encoded-information-types ABSENT + }), + permissible-encoded-information-types-88 EncodedInformationTypes OPTIONAL +} + +-- Administration Port +register-88 ABSTRACT-OPERATION ::= { + ARGUMENT Register88 + RESULT NULL + ERRORS {register-rejected} + LINKED {operationObject1, ...} + INVOKE PRIORITY {5} + CODE op-register +} + +Register88 ::= SET { + user-name UserName OPTIONAL, + user-address [0] UserAddress OPTIONAL, + deliverable-encoded-information-types EncodedInformationTypes OPTIONAL, + deliverable-maximum-content-length [1] EXPLICIT ContentLength OPTIONAL, + default-delivery-controls + [2] EXPLICIT DefaultDeliveryControls OPTIONAL, + deliverable-content-types [3] ContentTypes OPTIONAL, + labels-and-redirections + [4] SET SIZE (1..ub-labels-and-redirections) OF LabelAndRedirection + OPTIONAL +} + +LabelAndRedirection ::= SET { + user-security-label [0] UserSecurityLabel OPTIONAL, + recipient-assigned-alternate-recipient + [1] RecipientAssignedAlternateRecipient OPTIONAL +} + +UserSecurityLabel ::= SecurityLabel + +END -- of MTSAbstractService88 + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn new file mode 100644 index 0000000000..03181c5951 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSAccessProtocol.asn @@ -0,0 +1,321 @@ +-- Module MTSAccessProtocol (X.419:06/1999) + +MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0) + mts-access-protocol(1) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +IMPORTS + -- MTS Abstract Service + administration, delivery, mts-access-contract, mts-connect, + mts-forced-access-contract, submission + --== + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + -- MTS Abstract Service (1988) + administration-88, delivery-88, mts-access-contract-88, + mts-forced-access-contract-88 + --== + FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1988(1988)} + -- Remote Operations + APPLICATION-CONTEXT + --== + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + Code + --== + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + Bind{}, InvokeId, Unbind{} + --== + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + ROS-SingleAS{} + --== + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)} + acse, association-by-RTSE, pData, transfer-by-RTSE + --== + FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} + acse-abstract-syntax + --== + FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t + remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)} + -- Reliable Transfer + RTORQapdu, RTOACapdu, RTORJapdu + FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)} + -- Object Identifiers + id-ac-mts-access-88, id-ac-mts-access-94, id-ac-mts-forced-access-88, + id-ac-mts-forced-access-94, id-ac-mts-forced-reliable-access-88, + id-ac-mts-forced-reliable-access-94, id-ac-mts-reliable-access-88, + id-ac-mts-reliable-access-94, id-as-mase-88, id-as-mase-94, id-as-mdse-88, + id-as-mdse-94, id-as-msse, id-as-mts, id-as-mts-rtse + --== + FROM MHSProtocolObjectIdentifiers {joint-iso-itu-t mhs(6) protocols(0) + modules(0) object-identifiers(0) version-1994(0)}; + +RTSE-apdus ::= CHOICE { + rtorq-apdu [16] IMPLICIT RTORQapdu, + rtoac-apdu [17] IMPLICIT RTOACapdu, + rtorj-apdu [18] IMPLICIT RTORJapdu, + rttp-apdu RTTPapdu, + rttr-apdu RTTRapdu, + rtab-apdu [22] IMPLICIT RTABapdu +} + +RTTPapdu ::= -- priority-- INTEGER + +RTTRapdu ::= OCTET STRING + +RTABapdu ::= SET { + abortReason [0] IMPLICIT AbortReason OPTIONAL, + reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL, + -- 8 bits maximum, only if abortReason is invalidParameter + userdataAB + [2] TYPE-IDENTIFIER.&Type + OPTIONAL -- only in normal mode and if abortReason-- + -- is userError +} + +AbortReason ::= INTEGER { + localSystemProblem(0), + invalidParameter(1), -- reflectedParameter supplied + unrecognizedActivity(2), + temporaryProblem(3), + -- the RTSE cannot accept a session for a period of time + protocolError(4), -- RTSE level protocol error + permanentProblem(5), --provider-abort solely in normal mode + userError(6), -- user-abort solely in normal mode + transferCompleted(7) -- activity can't be discarded--} + +-- APPLICATION CONTEXTS +-- 1994 Application Contexts omitting RTSE +-- MTS-user initiated +mts-access-94 APPLICATION-CONTEXT ::= { + CONTRACT mts-access-contract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax | + message-administration-abstract-syntax-94 | + mts-bind-unbind-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-access-94 +} + +-- MTS initiated +mts-forced-access-94 APPLICATION-CONTEXT ::= { + CONTRACT mts-forced-access-contract + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax | + message-administration-abstract-syntax-94 | + mts-bind-unbind-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-forced-access-94 +} + +-- 1994 Application Contexts including RTSE in normal mode +-- MTS-user initiated +mts-reliable-access-94 APPLICATION-CONTEXT ::= { + CONTRACT mts-access-contract + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax | + message-administration-abstract-syntax-94 | + mts-bind-unbind-rtse-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-reliable-access-94 +} + +-- MTS initiated +mts-forced-reliable-access-94 APPLICATION-CONTEXT ::= { + CONTRACT mts-forced-access-contract + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax | + message-administration-abstract-syntax-94 | + mts-bind-unbind-rtse-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-94 +} + +-- 1988 Application Contexts omitting RTSE +-- MTS-user initiated +mts-access-88 APPLICATION-CONTEXT ::= { + CONTRACT mts-access-contract-88 + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax-88 | + message-administration-abstract-syntax-88 | + mts-bind-unbind-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-access-88 +} + +-- MTS initiated +mts-forced-access-88 APPLICATION-CONTEXT ::= { + CONTRACT mts-forced-access-contract-88 + ESTABLISHED BY acse + INFORMATION TRANSFER BY pData + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax-88 | + message-administration-abstract-syntax-88 | + mts-bind-unbind-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-forced-access-88 +} + +-- 1988 Application Contexts including RTSE in normal mode +-- MTS-user initiated +mts-reliable-access-88 APPLICATION-CONTEXT ::= { + CONTRACT mts-access-contract-88 + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax-88 | + message-administration-abstract-syntax-88 | + mts-bind-unbind-rtse-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-reliable-access-88 +} + +-- MTS initiated +mts-forced-reliable-access-88 APPLICATION-CONTEXT ::= { + CONTRACT mts-forced-access-contract-88 + ESTABLISHED BY association-by-RTSE + INFORMATION TRANSFER BY transfer-by-RTSE + ABSTRACT SYNTAXES + {acse-abstract-syntax | message-submission-abstract-syntax | + message-delivery-abstract-syntax-88 | + message-administration-abstract-syntax-88 | + mts-bind-unbind-rtse-abstract-syntax} + APPLICATION CONTEXT NAME id-ac-mts-forced-reliable-access-88 +} + +-- ABSTRACT-SYNTAXES +-- Abstract Syntax for MTS-Bind and MTS-Unbind +mts-bind-unbind-abstract-syntax ABSTRACT-SYNTAX ::= { + MTSBindUnbindPDUs + IDENTIFIED BY id-as-mts +} + +MTSBindUnbindPDUs ::= CHOICE { + bind Bind{mts-connect.&bind}, + unbind Unbind{mts-connect.&unbind} +} + +-- Abstract Syntax for MTS-Bind and MTS-Unbind with RTSE +mts-bind-unbind-rtse-abstract-syntax ABSTRACT-SYNTAX ::= { + RTSE-apdus -- With MTS Bind and MTS Unbind -- + IDENTIFIED BY id-as-mts-rtse +} + +-- Abstract Syntax for Message Submission Service Element +message-submission-abstract-syntax ABSTRACT-SYNTAX ::= { + MessageSubmissionPDUs + IDENTIFIED BY id-as-msse +} + +MessageSubmissionPDUs ::= ROS-SingleAS{{MTSInvokeIds}, submission} + +MTSInvokeIds ::= InvokeId(ALL EXCEPT absent:NULL) + +-- Remote Operations +op-message-submission Code ::= local:3 + +op-probe-submission Code ::= local:4 + +op-cancel-deferred-delivery Code ::= local:7 + +op-submission-control Code ::= local:2 + +-- Remote Errors +err-submission-control-violated Code ::= local:1 + +err-element-of-service-not-subscribed Code ::= local:4 + +err-deferred-delivery-cancellation-rejected Code ::= local:8 + +err-originator-invalid Code ::= local:2 + +err-recipient-improperly-specified Code ::= local:3 + +err-message-submission-identifier-invalid Code ::= local:7 + +err-inconsistent-request Code ::= local:11 + +err-security-error Code ::= local:12 + +err-unsupported-critical-function Code ::= local:13 + +err-remote-bind-error Code ::= local:15 + +-- Abstract Syntax for Message Delivery Service Element 1994 +message-delivery-abstract-syntax ABSTRACT-SYNTAX ::= { + MessageDeliveryPDUs + IDENTIFIED BY id-as-mdse-94 +} + +MessageDeliveryPDUs ::= ROS-SingleAS{{MTSInvokeIds}, delivery} + +-- Abstract Syntax for Message Delivery Service Element 1988 +message-delivery-abstract-syntax-88 ABSTRACT-SYNTAX ::= { + MessageDeliveryPDUs88 + IDENTIFIED BY id-as-mdse-88 +} + +MessageDeliveryPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, delivery-88} + +-- Remote Operations +op-message-delivery Code ::= local:5 + +op-report-delivery Code ::= local:6 + +op-delivery-control Code ::= local:2 + +-- Remote Errors +err-delivery-control-violated Code ::= local:1 + +err-control-violates-registration Code ::= local:14 + +err-operation-refused Code ::= local:16 + +-- Abstract Syntax for Message Administration Service Element 1994 +message-administration-abstract-syntax-94 ABSTRACT-SYNTAX ::= { + MessageAdministrationPDUs + IDENTIFIED BY id-as-mase-94 +} + +MessageAdministrationPDUs ::= ROS-SingleAS{{MTSInvokeIds}, administration} + +-- Abstract Syntax for Message Administration Service Element 1988 +message-administration-abstract-syntax-88 ABSTRACT-SYNTAX ::= { + MessageAdministrationPDUs88 + IDENTIFIED BY id-as-mase-88 +} + +MessageAdministrationPDUs88 ::= ROS-SingleAS{{MTSInvokeIds}, administration-88} + +-- Remote Operations +op-register Code ::= local:1 + +op-change-credentials Code ::= local:8 + +-- Remote Errors +err-register-rejected Code ::= local:10 + +err-new-credentials-unacceptable Code ::= local:6 + +err-old-credentials-incorrectly-specified Code ::= local:5 + +END -- of MTSAccessProtocol + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn new file mode 100644 index 0000000000..1615b241ee --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSObjectIdentifiers.asn @@ -0,0 +1,116 @@ +-- Module MTSObjectIdentifiers (X.411:06/1999) +MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0) + object-identifiers(0) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS -- nothing -- ; + +ID ::= OBJECT IDENTIFIER + +-- Message Transfer System +id-mts ID ::= + {joint-iso-itu-t mhs(6) mts(3)} -- not definitive + +-- Categories of Object Identifiers +id-mod ID ::= {id-mts 0} -- modules + +id-ot ID ::= {id-mts 1} -- object types + +id-pt ID ::= {id-mts 2} -- port types + +id-cont ID ::= {id-mts 3} -- content types + +id-eit ID ::= {id-mts 4} -- encoded information types + +id-att ID ::= {id-mts 5} -- attributes + +id-tok ID ::= {id-mts 6} -- token types + +id-sa ID ::= {id-mts 7} -- secure agent types + +id-ct ID ::= {id-mts 8} -- contracts + +id-cp ID ::= {id-mts 9} -- connection packages + +-- Modules +id-mod-object-identifiers ID ::= {id-mod 0} -- not definitive + +id-mod-mts-abstract-service ID ::= {id-mod 1} -- not definitive + +id-mod-mta-abstract-service ID ::= {id-mod 2} -- not definitive + +id-mod-upper-bounds ID ::= {id-mod 3} -- not definitive + +-- Object Types +id-ot-mts ID ::= {id-ot 0} + +id-ot-mts-user ID ::= {id-ot 1} + +id-ot-mta ID ::= {id-ot 2} + +-- Port Types +id-pt-submission ID ::= {id-pt 0} + +id-pt-delivery ID ::= {id-pt 1} + +id-pt-administration ID ::= {id-pt 2} + +id-pt-transfer ID ::= {id-pt 3} + +-- Content Types +id-cont-unidentified ID ::= + {id-cont 0} -- For use by MS and Directory + +id-cont-inner-envelope ID ::= {id-cont 1} + +-- Encoded Information Types +id-eit-unknown ID ::= {id-eit 0} + +-- Value { id-eit 1 } is no longer defined +id-eit-ia5-text ID ::= {id-eit 2} + +id-eit-g3-facsimile ID ::= {id-eit 3} + +id-eit-g4-class-1 ID ::= {id-eit 4} + +id-eit-teletex ID ::= {id-eit 5} + +id-eit-videotex ID ::= {id-eit 6} + +id-eit-voice ID ::= {id-eit 7} + +id-eit-sfd ID ::= {id-eit 8} + +id-eit-mixed-mode ID ::= {id-eit 9} + +-- Attributes +id-att-physicalRendition-basic ID ::= {id-att 0} + +id-att-physicalRendition-no-cover-page ID ::= {id-att 1} + +-- Token Types +id-tok-asymmetricToken ID ::= {id-tok 0} + +-- Secure Agent Types +id-sa-ua ID ::= {id-sa 0} + +id-sa-ms ID ::= {id-sa 1} + +-- Contracts +id-ct-mts-access ID ::= {id-ct 0} + +id-ct-mts-forced-access ID ::= {id-ct 1} + +id-ct-mta-transfer ID ::= {id-ct 2} + +-- Connection Packages +id-cp-mts-connect ID ::= {id-cp 0} + +id-cp-mta-connect ID ::= {id-cp 1} + +END -- of MTSObjectIdentifiers + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn new file mode 100644 index 0000000000..10eac962cb --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/MTSUpperBounds.asn @@ -0,0 +1,146 @@ +-- Module MTSUpperBounds (X.411:06/1999) +MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0) upper-bounds(3) + version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- Prologue +-- Exports everything +IMPORTS -- nothing -- ; + +-- Upper Bounds +ub-additional-info INTEGER ::= 1024 + +ub-bilateral-info INTEGER ::= 1024 + +ub-bit-options INTEGER ::= 16 + +ub-built-in-content-type INTEGER ::= 32767 + +ub-built-in-encoded-information-types INTEGER ::= 32 + +ub-certificates INTEGER ::= 64 + +ub-common-name-length INTEGER ::= 64 + +ub-content-correlator-length INTEGER ::= 512 + +ub-content-id-length INTEGER ::= 16 + +ub-content-length INTEGER ::= 2147483647 -- the largest integer in 32 bits + +ub-content-types INTEGER ::= 1024 + +ub-country-name-alpha-length INTEGER ::= 2 + +ub-country-name-numeric-length INTEGER ::= 3 + +ub-diagnostic-codes INTEGER ::= 32767 + +ub-deliverable-class INTEGER ::= 256 + +ub-dl-expansions INTEGER ::= 512 + +ub-domain-defined-attributes INTEGER ::= 4 + +ub-domain-defined-attribute-type-length INTEGER ::= 8 + +ub-domain-defined-attribute-value-length INTEGER ::= 128 + +ub-domain-name-length INTEGER ::= 16 + +ub-encoded-information-types INTEGER ::= 1024 + +ub-extension-attributes INTEGER ::= 256 + +ub-extension-types INTEGER ::= 256 + +ub-e163-4-number-length INTEGER ::= 15 + +ub-e163-4-sub-address-length INTEGER ::= 40 + +ub-generation-qualifier-length INTEGER ::= 3 + +ub-given-name-length INTEGER ::= 16 + +ub-initials-length INTEGER ::= 5 + +ub-integer-options INTEGER ::= 256 + +ub-labels-and-redirections INTEGER ::= 256 + +ub-local-id-length INTEGER ::= 32 + +ub-mta-name-length INTEGER ::= 32 + +ub-mts-user-types INTEGER ::= 256 + +ub-numeric-user-id-length INTEGER ::= 32 + +ub-organization-name-length INTEGER ::= 64 + +ub-organizational-unit-name-length INTEGER ::= 32 + +ub-organizational-units INTEGER ::= 4 + +ub-orig-and-dl-expansions INTEGER ::= 513 -- ub-dl-expansions plus one + +ub-password-length INTEGER ::= 62 + +ub-pds-name-length INTEGER ::= 16 + +ub-pds-parameter-length INTEGER ::= 30 + +ub-pds-physical-address-lines INTEGER ::= 6 + +ub-postal-code-length INTEGER ::= 16 + +ub-privacy-mark-length INTEGER ::= 128 + +ub-queue-size INTEGER ::= 2147483647 -- the largest integer in 32 bits + +ub-reason-codes INTEGER ::= 32767 + +ub-recipient-number-for-advice-length INTEGER ::= 32 + +ub-recipients INTEGER ::= 32767 + +ub-redirection-classes INTEGER ::= 256 + +ub-redirections INTEGER ::= 512 + +ub-restrictions INTEGER ::= 1024 + +ub-security-categories INTEGER ::= 64 + +ub-security-labels INTEGER ::= 256 + +ub-security-problems INTEGER ::= 256 + +ub-supplementary-info-length INTEGER ::= 256 + +ub-surname-length INTEGER ::= 40 + +ub-teletex-private-use-length INTEGER ::= 128 + +ub-terminal-id-length INTEGER ::= 24 + +ub-transfers INTEGER ::= 512 + +ub-tsap-id-length INTEGER ::= 16 + +ub-unformatted-address-length INTEGER ::= 180 + +ub-universal-generation-qualifier-length INTEGER ::= 16 + +ub-universal-given-name-length INTEGER ::= 40 + +ub-universal-initials-length INTEGER ::= 16 + +ub-universal-surname-length INTEGER ::= 64 + +ub-x121-address-length INTEGER ::= 16 + +END -- of MTSUpperBounds + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Notation.asn b/lib/asn1/test/asn1_SUITE_data/x420/Notation.asn new file mode 100644 index 0000000000..96dfc39b6a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Notation.asn @@ -0,0 +1,244 @@ +-- Module Notation (X.830:04/1995) + +Notation {joint-iso-itu-t genericULS(20) modules(1) notation(1)} DEFINITIONS +AUTOMATIC TAGS ::= +BEGIN + +-- EXPORTS All +IMPORTS + -- From Directory Standards: + informationFramework, selectedAttributeTypes, authenticationFramework + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + Name + FROM InformationFramework informationFramework + UniqueIdentifier + FROM SelectedAttributeTypes selectedAttributeTypes + AlgorithmIdentifier + FROM AuthenticationFramework authenticationFramework + -- From Other GULS Modules: + genericProtectingTransferSyntax + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + SyntaxStructure{} + FROM GenericProtectingTransferSyntax genericProtectingTransferSyntax; + +-- ************************************************* +-- Notation for security identity and SA-identifiers +-- ************************************************* +-- Values of the SecurityIdentity type are used to identify entities +-- which assign externally-established security association identifiers, +-- and for other security-related purposes requiring globally-unique +-- identifiers. +SecurityIdentity ::= CHOICE { + directoryName Name, + objectIdentifier OBJECT IDENTIFIER +} + +ExternalSAID ::= SEQUENCE { + localSAID INTEGER, + assignerIdentity SecurityIdentity OPTIONAL + -- Identity of the system which assigned the integer value +} + +-- ****************************************** +-- Notation for specifying security exchanges +-- ****************************************** +SECURITY-EXCHANGE ::= + CLASS + -- This information object class definition is for use when + -- specifying a particular instance of a security exchange. + { + &SE-Items SEC-EXCHG-ITEM, + -- This is an ASN.1 information object set, comprising a set + -- of security exchange items + &sE-Identifier Identifier UNIQUE + -- A local or global identifier for the particular security + -- exchange +} +WITH SYNTAX + -- The following syntax is used to specify a particular security +-- exchange. +{SE-ITEMS &SE-Items + IDENTIFIER &sE-Identifier +} + +Identifier ::= CHOICE {local INTEGER, + global OBJECT IDENTIFIER +} + +SEC-EXCHG-ITEM ::= CLASS { + &ItemType , + -- ASN.1 type for this exchange item + &itemId INTEGER, + -- Identifier for this item, e.g. 1, 2, 3, .. + &Errors SE-ERROR OPTIONAL + -- Optional list of errors which may result from + -- transfer of this item +}WITH SYNTAX {ITEM-TYPE &ItemType + ITEM-ID &itemId + [ERRORS &Errors] +} + +SE-ERROR ::= CLASS { + &ParameterType OPTIONAL, + -- ASN.1 type of a parameter to accompany the signalling + -- of the error condition back to the sender of the SEI + &errorCode Identifier UNIQUE + -- An identifier used in signalling the error condition + -- back to the sender of the SEI +}WITH SYNTAX {[PARAMETER &ParameterType] + ERROR-CODE &errorCode +} + +-- ************************************************ +-- Notation for specifying security transformations +-- ************************************************ +SECURITY-TRANSFORMATION ::= + CLASS + -- This information object class definition is for use when + -- specifying a particular instance of a security transformation. + { + &sT-Identifier OBJECT IDENTIFIER UNIQUE, + -- Identifier to be used in signalling the application + -- of the particular security transformation + &initialEncodingRules OBJECT IDENTIFIER DEFAULT {joint-iso-ccitt + asn1(1) ber-derived(2) + canonical-encoding(0)}, + -- Default initial encoding rules to generate a bit + -- string prior to applying the encoding process of a + -- security transformation. + &StaticUnprotectedParm OPTIONAL, + -- ASN.1 type for conveying static unprotected parameters + &DynamicUnprotectedParm OPTIONAL, + -- ASN.1 type for conveying dynamic unprotected parameters + &XformedDataType , + -- ASN.1 type of the ASN.1 value produced by the security + -- transformations encoding process + &QualifierType OPTIONAL + -- &QualifierType specifies the ASN.1 type of the qualifier + -- parameter used with the PROTECTED-Q notation. +} +WITH SYNTAX + -- The following syntax is used to specify a particular security +-- transformation. +{ + IDENTIFIER &sT-Identifier + [INITIAL-ENCODING-RULES &initialEncodingRules] + [STATIC-UNPROT-PARM &StaticUnprotectedParm] + [DYNAMIC-UNPROT-PARM &DynamicUnprotectedParm] + XFORMED-DATA-TYPE &XformedDataType + [QUALIFIER-TYPE &QualifierType] +} + +-- ************************************************** +-- Notation for specifying selective field protection +-- ************************************************** +PROTECTED{BaseType, PROTECTION-MAPPING:protectionReqd} ::= CHOICE { + dirEncrypt + BIT STRING + (CONSTRAINED BY { + BaseType-- dirEncrypt is for use only with the + -- dirEncryptedTransformation, + -- and generates the same encoding as the + -- X.509/9594-8 ENCRYPTED type-- }), + dirSign + SEQUENCE {baseType BaseType OPTIONAL, + -- must be present for dirSignedTransformation + -- and must be omitted for + -- dirSignatureTransformation + algorithmId AlgorithmIdentifier, + encipheredHash + BIT STRING + (CONSTRAINED BY { + BaseType-- contains enciphered hash-- + -- of a value of BaseType -- })}-- dirSign is for use only with the + -- dirSignedTransformation or + -- dirSignatureTransformation, and generates + -- the same encoding as the corresponding + -- X.509/9594-8 SIGNED or SIGNATURE type--, + noTransform [0] BaseType, + -- noTransform invokes no security transformation. + -- Subject to security policy, noTransform may be used + -- if adequate protection is provided by lower layers + -- and any application relays through which the data + -- may pass are trusted to maintain the required + -- protection. This alternative may only be used + -- if protectionReqd.&bypassPermitted is TRUE, + direct [1] SyntaxStructure{{protectionReqd.&SecurityTransformation}}, + -- direct generates a protecting transfer syntax + -- value, which is encoded using the same encoding + -- rules as the surrounding ASN.1 (The type + -- SyntaxStructure is imported from Rec. X.833 | + -- ISO/IEC 11586-3) + embedded + [2] EMBEDDED PDV + (WITH COMPONENTS { + identification (WITH COMPONENTS { + presentation-context-id , + context-negotiation (WITH COMPONENTS { + transfer-syntax (CONSTRAINED BY { + OBJECT + IDENTIFIER: + protectionReqd. + &protTransferSyntax}) + }), + transfer-syntax (CONSTRAINED BY { + OBJECT IDENTIFIER: + protectionReqd. + &protTransferSyntax}) + }), + data-value (CONTAINING BaseType ) + + -- The data value encoded is a value of type BaseType + }) +} + +PROTECTED-Q{BaseType, PROTECTION-MAPPING:protectionReqd, + PROTECTION-MAPPING.&SecurityTransformation.&QualifierType:qualifier} + ::= + PROTECTED{BaseType, protectionReqd} + (CONSTRAINED BY { + protectionReqd.&SecurityTransformation.&QualifierType:qualifier + -- The value of qualifier must be made available to + -- the security transformation used + }) + +-- BaseType is the type to be protected, and protectionReqd is an +-- object of class PROTECTION-MAPPING. The use of PROTECTED requires +-- the importation into the user's module of the PROTECTED parameterized +-- type, together with the necessary PROTECTION-MAPPING object +-- definition. +-- ******************************************* +-- Notation for specifying protection mappings +-- ******************************************* +PROTECTION-MAPPING ::= CLASS { + &SecurityTransformation SECURITY-TRANSFORMATION, + -- &SecurityTransformation specifies an ASN.1 object set of the + -- SECURITY-TRANSFORMATION class. Use of the particular + -- protection mapping implies use of one of the specified + -- transformations, with the choice being left to the + -- encoding system. Rules for selecting between these security + -- transformations may be specified in comments. + &protTransferSyntax OBJECT IDENTIFIER DEFAULT {joint-iso-itu-t + genericULS(20) + generalTransferSyntax(2)}, + -- Identifies the particular protecting transfer syntax to + -- be used in an EMDEDDED PDV encoding for the embedded + -- option. + &bypassPermitted BOOLEAN DEFAULT FALSE + -- Indicates if bypassing of protection is permitted +} +WITH SYNTAX { + SECURITY-TRANSFORMATION &SecurityTransformation + [PROTECTING-TRANSFER-SYNTAX &protTransferSyntax] + [BYPASS-PERMITTED &bypassPermitted] +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + +-- content of stack: +-- diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn new file mode 100644 index 0000000000..b4f91f50c5 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/ObjectIdentifiers.asn @@ -0,0 +1,46 @@ +-- Module ObjectIdentifiers (X.830:04/1995) + +ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} DEFINITIONS AUTOMATIC TAGS ::= +BEGIN + +-- EXPORTS All +genericULS OBJECT IDENTIFIER ::= + {joint-iso-itu-t genericULS(20)} + +-- Categories of information object +modules OBJECT IDENTIFIER ::= + {genericULS 1} + +generalTransferSyntax OBJECT IDENTIFIER ::= {genericULS 2} + +specificTransferSyntax OBJECT IDENTIFIER ::= {genericULS 3} + +securityExchanges OBJECT IDENTIFIER ::= {genericULS 4} + +securityTransformations OBJECT IDENTIFIER ::= {genericULS 5} + +-- ASN.1 modules +objectIdentifiers OBJECT IDENTIFIER ::= {modules 0} + +notation OBJECT IDENTIFIER ::= {modules 1} + +gulsSecurityExchanges OBJECT IDENTIFIER ::= {modules 2} + +gulsSecurityTransformations OBJECT IDENTIFIER ::= {modules 3} + +dirProtectionMappings OBJECT IDENTIFIER ::= {modules 4} + +gulsProtectionMappings OBJECT IDENTIFIER ::= {modules 5} + +seseAPDUs OBJECT IDENTIFIER ::= {modules 6} + +genericProtectingTransferSyntax OBJECT IDENTIFIER ::= {modules 7} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + +-- content of stack: +-- diff --git a/lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn b/lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn new file mode 100644 index 0000000000..2044feb155 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/OperationalBindingManagement.asn @@ -0,0 +1,263 @@ +-- Module OperationalBindingManagement (X.501:08/1997) +OperationalBindingManagement {joint-iso-itu-t ds(5) module(1) + opBindingManagement(18) 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 + directoryShadowAbstractService, hierarchicalOperationalBindings, dop, + directoryAbstractService, distributedOperations, enhancedSecurity + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + shadowOperationalBinding + FROM DirectoryShadowAbstractService directoryShadowAbstractService + hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding + FROM HierarchicalOperationalBindings hierarchicalOperationalBindings + OPERATION, ERROR + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + APPLICATION-CONTEXT + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} + id-op-establishOperationalBinding, id-op-modifyOperationalBinding, + id-op-terminateOperationalBinding, id-err-operationalBindingError + FROM DirectoryOperationalBindingManagementProtocol dop + directoryBind, directoryUnbind, securityError, CommonResultsSeq, + SecurityParameters + FROM DirectoryAbstractService directoryAbstractService + OPTIONALLY-PROTECTED-SEQ{} + FROM EnhancedSecurity enhancedSecurity + AccessPoint + FROM DistributedOperations distributedOperations; + +--PROTECTED +-- FROM Notation { joint-iso-ccitt genericULS (20) modules (1) notation (1) } +-- bind and unbind +dSAOperationalBindingManagementBind OPERATION ::= + directoryBind + +dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind + +-- operations, arguments and results +establishOperationalBinding OPERATION ::= { + ARGUMENT EstablishOperationalBindingArgument + RESULT EstablishOperationalBindingResult + ERRORS {operationalBindingError | securityError} + CODE id-op-establishOperationalBinding +} + +EstablishOperationalBindingArgument ::= + OPTIONALLY-PROTECTED-SEQ + {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}), + bindingID [1] OperationalBindingID OPTIONAL, + accessPoint [2] AccessPoint, + -- symmetric, Role A initiates, or Role B initiates - + initiator + CHOICE {symmetric + [3] OPERATIONAL-BINDING.&both.&EstablishParam + ({OpBindingSet}{@bindingType}), + roleA-initiates + [4] OPERATIONAL-BINDING.&roleA.&EstablishParam + ({OpBindingSet}{@bindingType}), + roleB-initiates + [5] OPERATIONAL-BINDING.&roleB.&EstablishParam + ({OpBindingSet}{@bindingType})} OPTIONAL, + agreement + [6] OPERATIONAL-BINDING.&Agreement + ({OpBindingSet}{@bindingType}), + valid [7] Validity DEFAULT {}, + securityParameters [8] SecurityParameters OPTIONAL}} + +OperationalBindingID ::= SEQUENCE {identifier INTEGER, + version INTEGER +} + +Validity ::= SEQUENCE { + validFrom [0] CHOICE {now [0] NULL, + time [1] Time} DEFAULT now:NULL, + validUntil + [1] CHOICE {explicitTermination [0] NULL, + time [1] Time + } DEFAULT explicitTermination:NULL +} + +Time ::= CHOICE {utcTime UTCTime, + generalizedTime GeneralizedTime +} + +EstablishOperationalBindingResult ::= + OPTIONALLY-PROTECTED-SEQ + {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}), + bindingID [1] OperationalBindingID OPTIONAL, + accessPoint [2] AccessPoint, + -- symmetric, Role A replies , or Role B replies + initiator + CHOICE {symmetric + [3] OPERATIONAL-BINDING.&both.&EstablishParam + ({OpBindingSet}{@bindingType}), + roleA-replies + [4] OPERATIONAL-BINDING.&roleA.&EstablishParam + ({OpBindingSet}{@bindingType}), + roleB-replies + [5] OPERATIONAL-BINDING.&roleB.&EstablishParam + ({OpBindingSet}{@bindingType})} OPTIONAL, + COMPONENTS OF CommonResultsSeq}} + +modifyOperationalBinding OPERATION ::= { + ARGUMENT ModifyOperationalBindingArgument + RESULT ModifyOperationalBindingResult + ERRORS {operationalBindingError | securityError} + CODE id-op-modifyOperationalBinding +} + +ModifyOperationalBindingArgument ::= + OPTIONALLY-PROTECTED-SEQ + {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}), + bindingID [1] OperationalBindingID, + accessPoint [2] AccessPoint OPTIONAL, + -- symmetric, Role A initiates, or Role B initiates + initiator + CHOICE {symmetric + [3] OPERATIONAL-BINDING.&both.&ModifyParam + ({OpBindingSet}{@bindingType}), + roleA-initiates + [4] OPERATIONAL-BINDING.&roleA.&ModifyParam + ({OpBindingSet}{@bindingType}), + roleB-initiates + [5] OPERATIONAL-BINDING.&roleB.&ModifyParam + ({OpBindingSet}{@bindingType})} OPTIONAL, + newBindingID [6] OperationalBindingID, + newAgreement + [7] OPERATIONAL-BINDING.&Agreement + ({OpBindingSet}{@bindingType}) OPTIONAL, + valid [8] Validity OPTIONAL, + securityParameters [9] SecurityParameters OPTIONAL}} + +ModifyOperationalBindingResult ::= CHOICE { + null [0] NULL, + protected + [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newBindingID OperationalBindingID, + bindingType + OPERATIONAL-BINDING.&id + ({OpBindingSet}), + newAgreement + OPERATIONAL-BINDING.&Agreement + ({OpBindingSet}{@bindingType}), + valid Validity OPTIONAL, + COMPONENTS OF CommonResultsSeq + }} +} + +terminateOperationalBinding OPERATION ::= { + ARGUMENT TerminateOperationalBindingArgument + RESULT TerminateOperationalBindingResult + ERRORS {operationalBindingError | securityError} + CODE id-op-terminateOperationalBinding +} + +TerminateOperationalBindingArgument ::= + OPTIONALLY-PROTECTED-SEQ + {SEQUENCE {bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}), + bindingID [1] OperationalBindingID, + -- symmetric, Role A initiates, or Role B initiates + initiator + CHOICE {symmetric + [2] OPERATIONAL-BINDING.&both.&TerminateParam + ({OpBindingSet}{@bindingType}), + roleA-initiates + [3] OPERATIONAL-BINDING.&roleA.&TerminateParam + ({OpBindingSet}{@bindingType}), + roleB-initiates + [4] OPERATIONAL-BINDING.&roleB.&TerminateParam + ({OpBindingSet}{@bindingType})} OPTIONAL, + terminateAt [5] Time OPTIONAL, + securityParameters [6] SecurityParameters OPTIONAL}} + +TerminateOperationalBindingResult ::= CHOICE { + null [0] NULL, + protected + [1] OPTIONALLY-PROTECTED-SEQ{SEQUENCE {bindingID OperationalBindingID, + bindingType + OPERATIONAL-BINDING.&id + ({OpBindingSet}), + terminateAt + GeneralizedTime OPTIONAL, + COMPONENTS OF CommonResultsSeq + }} +} + +-- errors and parameters +operationalBindingError ERROR ::= { + PARAMETER OPTIONALLY-PROTECTED-SEQ {OpBindingErrorParam} + CODE id-err-operationalBindingError +} + +OpBindingErrorParam ::= SEQUENCE { + problem + [0] ENUMERATED {invalidID(0), duplicateID(1), unsupportedBindingType(2), + notAllowedForRole(3), parametersMissing(4), + roleAssignment(5), invalidStartTime(6), invalidEndTime(7), + invalidAgreement(8), currentlyNotDecidable(9), + modificationNotAllowed(10)}, + bindingType [1] OPERATIONAL-BINDING.&id({OpBindingSet}) OPTIONAL, + agreementProposal + [2] OPERATIONAL-BINDING.&Agreement({OpBindingSet}{@bindingType}) OPTIONAL, + retryAt [3] Time OPTIONAL, + COMPONENTS OF CommonResultsSeq +} + +-- information object classes +OPERATIONAL-BINDING ::= CLASS { + &Agreement , + &Cooperation OP-BINDING-COOP, + &both OP-BIND-ROLE OPTIONAL, + &roleA OP-BIND-ROLE OPTIONAL, + &roleB OP-BIND-ROLE OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + AGREEMENT &Agreement + APPLICATION CONTEXTS &Cooperation + [SYMMETRIC &both] + [ASYMMETRIC + [ROLE-A &roleA] + [ROLE-B &roleB]] + ID &id +} + +OP-BINDING-COOP ::= CLASS { + &applContext APPLICATION-CONTEXT, + &Operations OPERATION OPTIONAL +}WITH SYNTAX {&applContext + [APPLIES TO &Operations] +} + +OP-BIND-ROLE ::= CLASS { + &establish BOOLEAN DEFAULT FALSE, + &EstablishParam OPTIONAL, + &modify BOOLEAN DEFAULT FALSE, + &ModifyParam OPTIONAL, + &terminate BOOLEAN DEFAULT FALSE, + &TerminateParam OPTIONAL +} +WITH SYNTAX { + [ESTABLISHMENT-INITIATOR &establish] + [ESTABLISHMENT-PARAMETER &EstablishParam] + [MODIFICATION-INITIATOR &modify] + [MODIFICATION-PARAMETER &ModifyParam] + [TERMINATION-INITIATOR &terminate] + [TERMINATION-PARAMETER &TerminateParam] +} + +OpBindingSet OPERATIONAL-BINDING ::= + {shadowOperationalBinding | hierarchicalOperationalBinding | + nonSpecificHierarchicalOperationalBinding} + +END -- OperationalBindingManagement + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn new file mode 100644 index 0000000000..ac449b59c7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7.asn @@ -0,0 +1,342 @@ +-- Module PKCS7 (X.420:06/1999) +-- The ASN.1 in version 1.5 of the PKCS#7 document is not defined in an ASN.1 module. This prevents an IMPORT of it into other ASN.1 modules. +-- This Annex contains a module of PKCS#7 ASN.1 definitions conforming to current ASN.1 standards rather than the obsolescent (and now deprecated) 1988/90 version of ASN.1 used in version 1.5 of PKCS#7. +-- Extensions to PKCS#7 defined in RFC 2630 are included. +-- If differences are found between the ASN.1 in the following module and that in PKCS#7, the latter is definitive. +PKCS7 {iso member-body usa(840) rsadsi(113549) pkcs(1) 7 + module(0) -- module not currently defined in PKCS#7 --} DEFINITIONS IMPLICIT +TAGS ::= +BEGIN + +IMPORTS + -- Directory Information Framework + Attribute, Name + --== + FROM InformationFramework {joint-iso-itu-t ds(5) module(1) + informationFramework(1) 3} + -- Directory Authentication Framework + AlgorithmIdentifier, AttributeCertificate, Certificate, CertificateList, + CertificateSerialNumber, HASH{}, SIGNED{} + --== + FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) + authenticationFramework(7) 3}; + +-- In PKCS#7 the HASHED parameterised type applies the hash function to the +-- contents octets component of a DER encoding of a value of the parameter. +-- The ENCRYPTED parameterised type is redefined here because PKCS#7 encrypted values are +-- defined as OCTET STRING, instead of BIT STRING as in the Directory Authentication Framework +ENCRYPTED{ToBeEnciphered} ::= + OCTET STRING + (CONSTRAINED BY { + -- must be the result of applying an encipherment procedure to the contents octets component + -- of a definite-length BER-encoding of a value of --ToBeEnciphered}) + +ContentInfo ::= SEQUENCE { + content-type PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}), + pkcs7-content [0] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}) +} + +PKCS7-CONTENT-TYPE ::= TYPE-IDENTIFIER + +PKCS7ContentTable PKCS7-CONTENT-TYPE ::= + {data | signed-data | enveloped-data | signed-and-enveloped-data | + digested-data | encrypted-data | authenticated-data, ...} + +-- Data +data PKCS7-CONTENT-TYPE ::= {Data + IDENTIFIED BY id-data +} + +Data ::= OCTET STRING + +-- Signed Data +signed-data PKCS7-CONTENT-TYPE ::= {SignedData + IDENTIFIED BY id-signed-data +} + +SignedData ::= SEQUENCE { + version Version, + digestAlgorithms DigestAlgorithmIdentifiers, + contentInfo ContentInfo, + certificates [0] CertificateSet OPTIONAL, + crls [1] CertificateRevocationLists OPTIONAL, + signerInfos SignerInfos +} + +Version ::= INTEGER + +DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier + +DigestAlgorithmIdentifier ::= AlgorithmIdentifier + +CertificateSet ::= SET OF CertificateChoice + +CertificateChoice ::= CHOICE { + certificate Certificate, + extendedCertificate [0] ExtendedCertificate, -- Obsolete + attributeCertificate [1] AttributeCertificate +} + +CertificateRevocationLists ::= SET OF CertificateList + +SignerInfos ::= SET OF SignerInfo + +SignerInfo ::= SEQUENCE { + version Version, + signerIdentifier SignerIdentifier, + digestAlgorithm DigestAlgorithmIdentifier, + authenticatedAttributes [0] Attributes OPTIONAL, + digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier, + encryptedDigest EncryptedDigest, + unauthenticatedAttributes [1] Attributes OPTIONAL +} + +SignerIdentifier ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + subjectKeyIdentifier [2] SubjectKeyIdentifier +} + +IssuerAndSerialNumber ::= SEQUENCE { + issuer Name, + serialNumber CertificateSerialNumber +} + +SubjectKeyIdentifier ::= OCTET STRING + +DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier + +EncryptedDigest ::= ENCRYPTED{DigestInfo} + +DigestInfo ::= SEQUENCE { + digestAlgorithm DigestAlgorithmIdentifier, + digest Digest +} + +Digest ::= + HASH + {CHOICE {content + [1] PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}), + authenticated-attributes [0] EXPLICIT Attributes}} + +-- Enveloped Data +enveloped-data PKCS7-CONTENT-TYPE ::= { + EnvelopedData + IDENTIFIED BY id-enveloped-data +} + +EnvelopedData ::= SEQUENCE { + version Version, + originatorInfo [0] OriginatorInfo OPTIONAL, + recipientInfos RecipientInfos, + encryptedContentInfo EncryptedContentInfo, + unprotectedAttributes [1] Attributes OPTIONAL +} + +OriginatorInfo ::= SEQUENCE { + certificates [0] CertificateSet OPTIONAL, + crls [1] CertificateRevocationLists OPTIONAL +} + +RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo + +RecipientInfo ::= CHOICE { + keyTransportRecipientInfo KeyTransportRecipientInfo, + keyAgreementRecipientInfo [1] KeyAgreementRecipientInfo, + keyEncryptionKeyRecipientInfo [2] KeyEncryptionKeyRecipientInfo +} + +KeyTransportRecipientInfo ::= SEQUENCE { + version Version, + recipientIdentifier RecipientIdentifier, + keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, + encryptedKey EncryptedKey +} + +RecipientIdentifier ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + subjectKeyIdentifier [0] SubjectKeyIdentifier +} + +KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier + +EncryptedKey ::= OCTET STRING + +KeyAgreementRecipientInfo ::= SEQUENCE { + version Version, + originator [0] OriginatorIdentifierOrKey, + userKeyingMaterial [1] EXPLICIT OCTET STRING OPTIONAL, + keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, + recipientEncryptedKeys RecipientEncryptedKeys +} + +OriginatorIdentifierOrKey ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + subjectKeyIdentifier [0] SubjectKeyIdentifier, + originatorPublicKey [1] OriginatorPublicKey +} + +OriginatorPublicKey ::= SEQUENCE { + algorithm AlgorithmIdentifier, + publicKey BIT STRING +} + +RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey + +RecipientEncryptedKey ::= SEQUENCE { + recipientIdentifier KeyAgreementRecipientIdentifier, + encryptedKey EncryptedKey +} + +KeyAgreementRecipientIdentifier ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + recipientKeyIdentifier [0] RecipientKeyIdentifier +} + +RecipientKeyIdentifier ::= SEQUENCE { + subjectKeyIdentifier SubjectKeyIdentifier, + date GeneralizedTime OPTIONAL, + otherKeyAttribute OtherKeyAttribute OPTIONAL +} + +OtherKeyAttribute ::= SEQUENCE { + keyAttributeIdentifier OTHER-KEY-ATTRIBUTE.&id({OtherKeyAttributeTable}), + keyAttribute + OTHER-KEY-ATTRIBUTE.&Type + ({OtherKeyAttributeTable}{@keyAttributeIdentifier}) OPTIONAL +} + +OTHER-KEY-ATTRIBUTE ::= TYPE-IDENTIFIER + +OtherKeyAttributeTable OTHER-KEY-ATTRIBUTE ::= + {...} + +KeyEncryptionKeyRecipientInfo ::= SEQUENCE { + version Version, + keyEncryptionKeyIdentifier KeyEncryptionKeyIdentifier, + keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, + encryptedKey EncryptedKey +} + +KeyEncryptionKeyIdentifier ::= SEQUENCE { + keyIdentifier OCTET STRING, + date GeneralizedTime OPTIONAL, + otherKeyAttribute OtherKeyAttribute OPTIONAL +} + +EncryptedContentInfo ::= SEQUENCE { + contentType PKCS7-CONTENT-TYPE.&id({PKCS7ContentTable}), + contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, + encryptedContent + [0] ENCRYPTED{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable}{@.contentType})} + OPTIONAL +} + +ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier + +-- Signed and Enveloped Data +signed-and-enveloped-data PKCS7-CONTENT-TYPE ::= { + SignedAndEnvelopedData + IDENTIFIED BY id-signed-and-enveloped-data +} + +SignedAndEnvelopedData ::= SEQUENCE { + version Version, + recipientInfos SET SIZE (1..MAX) OF KeyTransportRecipientInfo, + digestAlgorithms DigestAlgorithmIdentifiers, + encryptedContentInfo EncryptedContentInfo, + certificates [0] CertificateSet OPTIONAL, + crls [1] CertificateRevocationLists OPTIONAL, + signerInfos + SET SIZE (1..MAX) OF + SignerInfo + (WITH COMPONENTS { + ..., + signerIdentifier (WITH COMPONENTS { + issuerAndSerialNumber PRESENT + }), + authenticatedAttributes ABSENT, + unauthenticatedAttributes ABSENT + }) +} + +-- Digested Data +digested-data PKCS7-CONTENT-TYPE ::= { + DigestedData + IDENTIFIED BY id-digested-data +} + +DigestedData ::= SEQUENCE { + version Version, + digestAlgorithm DigestAlgorithmIdentifier, + contentInfo ContentInfo, + digest HASH{PKCS7-CONTENT-TYPE.&Type({PKCS7ContentTable})} +} + +-- Encrypted Data +encrypted-data PKCS7-CONTENT-TYPE ::= { + EncryptedData + IDENTIFIED BY id-encrypted-data +} + +EncryptedData ::= SEQUENCE { + version Version, + encryptedContentInfo EncryptedContentInfo, + unprotectedAttributes [1] Attributes OPTIONAL +} + +-- Authenticated Data +authenticated-data PKCS7-CONTENT-TYPE ::= { + AuthenticatedData + IDENTIFIED BY id-authenticated-data +} + +AuthenticatedData ::= SEQUENCE { + version Version, + originatorInfo [0] OriginatorInfo OPTIONAL, + recipientInfos RecipientInfos, + macAlgorithm MessageAuthenticationCodeAlgorithmIdentifier, + digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL, + contentInfo ContentInfo, + authenticatedAttributes [2] Attributes OPTIONAL, + messageAuthenticationCode MessageAuthenticationCode, + unauthenticatedAttributes [3] Attributes OPTIONAL +} + +MessageAuthenticationCodeAlgorithmIdentifier ::= AlgorithmIdentifier + +MessageAuthenticationCode ::= OCTET STRING + +-- Object Identifiers +id-pkcs OBJECT IDENTIFIER ::= + {iso member-body usa(840) rsadsi(113549) pkcs(1)} + +id-data OBJECT IDENTIFIER ::= {id-pkcs 7 1} + +id-signed-data OBJECT IDENTIFIER ::= {id-pkcs 7 2} + +id-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 3} + +id-signed-and-enveloped-data OBJECT IDENTIFIER ::= {id-pkcs 7 4} + +id-digested-data OBJECT IDENTIFIER ::= {id-pkcs 7 5} + +id-encrypted-data OBJECT IDENTIFIER ::= {id-pkcs 7 6} + +id-authenticated-data OBJECT IDENTIFIER ::= {id-pkcs 9 16 1 2} + +-- Definitions from PKCS#6 +ExtendedCertificate ::= + SIGNED{ExtendedCertificateInfo} + +ExtendedCertificateInfo ::= SEQUENCE { + version Version, + certificate Certificate, + attributes Attributes +} + +Attributes ::= SET OF Attribute + +END -- of PKCS#7 + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn new file mode 100644 index 0000000000..525ee3c5ec --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/PKCS7BodyPartType.asn @@ -0,0 +1,31 @@ +-- Module PKCS7BodyPartType (X.420:06/1999) +PKCS7BodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) + pkcs7-body-part-type(16)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +IMPORTS + -- PKCS#7 + ContentInfo + FROM PKCS7 {iso(1) member-body(2) usa(840) rsadsi(113549) pkcs(1) + 7 module(0)} + -- module not formally defined in the PKCS#7document, therefore defined in Annex O + -- IPMS Information Objects + EXTENDED-BODY-PART-TYPE + FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) + information-objects(2) version-1999(1)} + -- IPMS Object Identifiers + id-et-pkcs7 + --== + FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) + object-identifiers(0) version-1999(1)}; + +-- PKCS7 body part +pkcs7-body-part EXTENDED-BODY-PART-TYPE ::= { + DATA {ContentInfo + IDENTIFIED BY id-et-pkcs7} +} + +END -- of PKCS7BodyPartType + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn new file mode 100644 index 0000000000..5512f1590b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Protected-Part-Descriptors.asn @@ -0,0 +1,74 @@ +-- Module Protected-Part-Descriptors (T.415:03/1993) + +Protected-Part-Descriptors {2 8 1 5 13} DEFINITIONS ::= +BEGIN + +EXPORTS + Sealed-Doc-Prof-Descriptor, Enciphered-Doc-Prof-Descriptor, + Preenciphered-Bodypart-Descriptor, Postenciphered-Bodypart-Descriptor; + +IMPORTS Protected-Part-Identifier + FROM Identifiers-and-Expressions; -- see 7.8 + +Sealed-Doc-Prof-Descriptor ::= SEQUENCE { + sealed-doc-prof-identifier Protected-Part-Identifier, + sealed-doc-prof-information Document-Profile-Attribute-Names +} + +Document-Profile-Attribute-Names ::= BIT STRING { + generic-layout-structure(0), specific-layout-structure(1), + generic-logical-structure(2), specific-logical-structure(3), + layout-styles(4), presentation-styles(5), sealed-profiles(6), + enciphered-profiles(7), pre-enciphered-body-parts(8), + post-enciphered-body-parts(9), external-document-class(10), + resource-document(11), resources(12), document-application-profile(13), + document-application-profile-defaults(14), document-architecture-class(15), + content-architecture-classes(16), interchange-format-class(17), + oda-version(18), alternative-feature-sets(19), profile-character-sets(20), + comments-character-sets(21), alternative-representation-character-sets(22), + page-dimensions(23), medium-types(24), layout-paths(25), protections(26), + block-alignments(27), fill-orders(28), transparencies(29), colours(30), + colours-of-layout-object(31), object-colour-tables(32), + content-background-colours(33), content-foreground-colours(34), + content-colour-tables(35), borders(36), page-positions(37), + types-of-coding(38), coding-attributes(39), presentation-features(40), + number-of-objects-per-page(41), unit-scaling(42), fonts-list(43), + colour-characteristics(44), colour-spaces-list(45), + assured-reproduction-areas(86), title(46), subject(47), + document-reference(48), document-type(49), abstract(50), keywords(51), + document-date-and-time(52), creation-date-and-time(53), + local-filing-date-and-time(54), expiry-date-and-time(55), + start-date-and-time(56), purge-date-and-time(57), release-date-and-time(58), + revision-history(59), organizations(60), preparers(61), owners(62), + authors(63), copyright(64), status(65), user-specific-codes(66), + distribution-list(67), additional-information(68), + references-to-other-documents(69), superseded-documents(70), + local-file-references(71), document-size(72), number-of-pages(73), + languages(74), authorization(75), security-classification(76), + access-rights(77), sealed-information-encoding(78), oda-security-label(79), + sealed-document-profiles(80), pre-sealed-document-body-parts(81), + post-sealed-document-body-parts(82), enciphered-document-profiles(83), + pre-enciphered-document-body-parts(84), + post-enciphered-document-body-parts(85)} + +Enciphered-Doc-Prof-Descriptor ::= SEQUENCE { + enciphered-doc-prof-identifier Protected-Part-Identifier, + enciphered-doc-prof-information Enciphered-Information +} + +Preenciphered-Bodypart-Descriptor ::= SEQUENCE { + preenciphered-bodypart-identifier Protected-Part-Identifier, + preenciphered-bodypart-info Enciphered-Information +} + +Postenciphered-Bodypart-Descriptor ::= SEQUENCE { + postenciphered-bodypart-identifier Protected-Part-Identifier, + postenciphered-bodypart-info Enciphered-Information +} + +Enciphered-Information ::= OCTET STRING + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn b/lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn new file mode 100644 index 0000000000..d6e88a2e47 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/ProtocolObjectIdentifiers.asn @@ -0,0 +1,140 @@ +-- Module ProtocolObjectIdentifiers (X.519 TC2:08/1997) + +ProtocolObjectIdentifiers {joint-iso-itu-t ds(5) module(1) + protocolObjectIdentifiers(4) 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-rosObject, id-contract, id-package, id-ac, id-as + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3}; + +-- ROS Objects +id-rosObject-dua OBJECT IDENTIFIER ::= {id-rosObject 1} + +id-rosObject-directory OBJECT IDENTIFIER ::= {id-rosObject 2} + +id-rosObject-dapDSA OBJECT IDENTIFIER ::= {id-rosObject 3} + +id-rosObject-dspDSA OBJECT IDENTIFIER ::= {id-rosObject 4} + +id-rosObject-dopDSA OBJECT IDENTIFIER ::= {id-rosObject 7} + +id-rosObject-initiatingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 8} + +id-rosObject-respondingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 9} + +id-rosObject-initiatingSupplierDSA OBJECT IDENTIFIER ::= {id-rosObject 10} + +id-rosObject-respondingConsumerDSA OBJECT IDENTIFIER ::= {id-rosObject 11} + +-- contracts +id-contract-dap OBJECT IDENTIFIER ::= {id-contract 1} + +id-contract-dsp OBJECT IDENTIFIER ::= {id-contract 2} + +id-contract-shadowConsumer OBJECT IDENTIFIER ::= {id-contract 3} + +id-contract-shadowSupplier OBJECT IDENTIFIER ::= {id-contract 4} + +id-contract-dop OBJECT IDENTIFIER ::= {id-contract 5} + +-- packages +id-package-read OBJECT IDENTIFIER ::= {id-package 1} + +id-package-search OBJECT IDENTIFIER ::= {id-package 2} + +id-package-modify OBJECT IDENTIFIER ::= {id-package 3} + +id-package-chainedRead OBJECT IDENTIFIER ::= {id-package 4} + +id-package-chainedSearch OBJECT IDENTIFIER ::= {id-package 5} + +id-package-chainedModify OBJECT IDENTIFIER ::= {id-package 6} + +id-package-shadowConsumer OBJECT IDENTIFIER ::= {id-package 7} + +id-package-shadowSupplier OBJECT IDENTIFIER ::= {id-package 8} + +id-package-operationalBindingManagement OBJECT IDENTIFIER ::= {id-package 9} + +id-package-dapConnection OBJECT IDENTIFIER ::= {id-package 10} + +id-package-dspConnection OBJECT IDENTIFIER ::= {id-package 11} + +id-package-dispConnection OBJECT IDENTIFIER ::= {id-package 12} + +id-package-dopConnection OBJECT IDENTIFIER ::= {id-package 13} + +-- application contexts +id-ac-directoryAccessAC OBJECT IDENTIFIER ::= + {id-ac 1} + +id-ac-directorySystemAC OBJECT IDENTIFIER ::= {id-ac 2} + +id-ac-directoryOperationalBindingManagementAC OBJECT IDENTIFIER ::= {id-ac 3} + +id-ac-shadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 4} + +id-ac-shadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 5} + +id-ac-reliableShadowSupplierInitiatedAC OBJECT IDENTIFIER ::= {id-ac 6} + +id-ac-reliableShadowConsumerInitiatedAC OBJECT IDENTIFIER ::= {id-ac 7} + +id-ac-shadowSupplierInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 8} + +id-ac-shadowConsumerInitiatedAsynchronousAC OBJECT IDENTIFIER ::= {id-ac 9} + +id-ac-directoryAccessWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 10} + +id-ac-directorySystemWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 11} + +id-ac-shadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 12} + +id-ac-shadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::= {id-ac 13} + +id-ac-reliableShadowSupplierInitiatedWith2or3seAC OBJECT IDENTIFIER ::= + {id-ac 14} + +id-ac-reliableShadowConsumerInitiatedWith2or3seAC OBJECT IDENTIFIER ::= + {id-ac 15} + +id-ac-directoryOperationalBindingManagementWith2or3seAC OBJECT IDENTIFIER ::= + {id-ac 16} + +-- ASEs (obsolete) +-- id-ase-readASE OBJECT IDENTIFIER ::= {id-ase 1} +-- id-ase-searchASE OBJECT IDENTIFIER ::= {id-ase 2} +-- id-ase-modifyASE OBJECT IDENTIFIER ::= {id-ase 3} +-- id-ase-chainedReadASE OBJECT IDENTIFIER ::= {id-ase 4} +-- id-ase-chainedSearchASE OBJECT IDENTIFIER ::= {id-ase 5} +-- id-ase-chainedModifyASE OBJECT IDENTIFIER ::= {id-ase 6} +-- id-ase-operationalBindingManagementASE OBJECT IDENTIFIER ::= {id-ase 7} +-- id-ase-shadowConsumerASE OBJECT IDENTIFIER ::= {id-ase 8} +-- id-ase-shadowSupplierASE OBJECT IDENTIFIER ::= {id-ase 9} +-- abstract syntaxes +id-as-directoryAccessAS OBJECT IDENTIFIER ::= + {id-as 1} + +id-as-directorySystemAS OBJECT IDENTIFIER ::= {id-as 2} + +id-as-directoryShadowAS OBJECT IDENTIFIER ::= {id-as 3} + +id-as-directoryOperationalBindingManagementAS OBJECT IDENTIFIER ::= {id-as 4} + +id-as-directoryReliableShadowAS OBJECT IDENTIFIER ::= {id-as 5} + +id-as-reliableShadowBindingAS OBJECT IDENTIFIER ::= {id-as 6} + +id-as-2or3se OBJECT IDENTIFIER ::= {id-as 7} + +END -- ProtocolObjectIdentifiers + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn new file mode 100644 index 0000000000..258c5f0b23 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Coding-Attributes.asn @@ -0,0 +1,75 @@ +-- Module Raster-Gr-Coding-Attributes (T.417:03/1993) + +Raster-Gr-Coding-Attributes {2 8 1 7 3} DEFINITIONS ::= +BEGIN + +EXPORTS + Raster-Gr-Coding-Attributes, Compression, Tile-Type, + Bits-Per-Colour-Component, Subsampling; + +IMPORTS Coordinate-Pair + FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2}; + +Raster-Gr-Coding-Attributes ::= SET { + number-of-pels-per-line [0] IMPLICIT INTEGER OPTIONAL, + number-of-lines [1] IMPLICIT INTEGER OPTIONAL, + compression [2] IMPLICIT Compression OPTIONAL, + number-of-discarded-pels [3] IMPLICIT INTEGER OPTIONAL, + bits-per-colour-component [4] Bits-Per-Colour-Component OPTIONAL, + interleaving-format + [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)} OPTIONAL, + number-of-pels-per-tile-line [6] IMPLICIT INTEGER OPTIONAL, + number-of-lines-per-tile [7] IMPLICIT INTEGER OPTIONAL, + tiling-offset [8] IMPLICIT Coordinate-Pair OPTIONAL, + tile-types [9] IMPLICIT SEQUENCE OF Tile-Type OPTIONAL, + subsampling [10] IMPLICIT Subsampling OPTIONAL, + jpeg-coding-mode + [11] IMPLICIT INTEGER {-- Huffman coding + baseline(0), huffman-extended-sequential-DCT(1), + huffman-progressive-DCT(2), + huffman-spatial-lossless(3), + -- arithmetic coding + arithmetic-extended-sequential-DCT(9), + arithmetic-progressive-DCT(10), + arithmetic-spatial-lossless(11)}, + jpeg-quantization-table + [12] IMPLICIT INTEGER {associated(0), default(1)} OPTIONAL, + jpeg-huffman-table + [13] IMPLICIT INTEGER {associated(0), preferred(1)}, + -- basic and default value is "associated". + jbig-differential-layer + [17] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1), + dl-encoded-with-tp(2), dl-encoded-with-dp(3), + dl-encoded-with-dp-and-private-dp-table(4), + dl-encoded-with-tp-and-dp(5), + dl-encoded-with-tp-dp-and-private-dp-table(6)} + OPTIONAL, + number-of-lines-per-stripe [18] IMPLICIT INTEGER OPTIONAL +} + +Compression ::= INTEGER {uncompressed(0), compressed(1)} + +Tile-Type ::= INTEGER { + null-background(0), null-foreground(1), t6-encoded(2), + t4-one-dimensional-encoded(3), t4-two-dimensional-encoded(4), + bitmap-encoded(5), t6-encoded-msb(6), t4-one-dimensional-encoded-msb(7), + t4-two-dimensional-encoded-msb(8), jbig-bits-per-component-eq-1(9), + jpeg(10), jbig-bits-per-component-gr-1(11)} + +Bits-Per-Colour-Component ::= CHOICE { + single-integer INTEGER, + component-list SEQUENCE OF INTEGER +} + +Subsampling ::= OCTET STRING + +-- The value OCTET STRING shall be chosen from the +-- following table: +-- Semantic Meaning JPEG notations Octet strings +-- 4:1:1 ((2,2),(1,1),(1,1)) '221111'H +-- 2:1:1 or 4:2:2 ((2,1),(1,1),(1,1)) '211111'H +-- 1:1:1 ((1,1),(1,1),(1,1)) '111111'H +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn new file mode 100644 index 0000000000..c8f3a2ff33 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Presentation-Attributes.asn @@ -0,0 +1,92 @@ +-- Module Raster-Gr-Presentation-Attributes (T.417:03/1993) + +Raster-Gr-Presentation-Attributes {2 8 1 7 2} DEFINITIONS ::= +BEGIN + +EXPORTS + Raster-Graphics-Attributes, Clipping, Measure-Pair, One-Of-Four-Angles, + One-Of-Two-Angles, Pel-Transmission-Density, Pel-Spacing, Spacing-Ratio, + Image-Dimensions, Coordinate-Pair; + +Raster-Graphics-Attributes ::= SET { + pel-path [0] IMPLICIT One-Of-Four-Angles OPTIONAL, + line-progression [1] IMPLICIT One-Of-Two-Angles OPTIONAL, + pel-transmission-density [2] IMPLICIT Pel-Transmission-Density OPTIONAL, + initial-offset [3] IMPLICIT Measure-Pair OPTIONAL, + clipping [4] IMPLICIT Clipping OPTIONAL, + pel-spacing [5] Pel-Spacing OPTIONAL, + spacing-ratio [6] IMPLICIT Spacing-Ratio OPTIONAL, + image-dimensions [7] Image-Dimensions OPTIONAL +} + +One-Of-Four-Angles ::= INTEGER { + d0(0), -- d0 + d90(1), -- d90 + d180(2), --d180 + d270(3) -- d270--} + +One-Of-Two-Angles ::= INTEGER {d90(1), -- d90 + d270(3) -- d270 --} + +Pel-Transmission-Density ::= INTEGER { + p5(2), -- 5 BMU (240 pels/25.4 mm) + p4(3), -- 4 BMU (300 pels/25.4 mm) + p3(4), -- 3 BMU (400 pels/25.4 mm) + p2(5), -- 2 BMU (600 pels/25.4 mm) + p1(6), -- 1 BMU (1200 pels/25.4 mm) + colour-grey-scale-p12(10), -- 12 BMU (100 pels/25.4 mm) + colour-grey-scale-p6(11), -- 6 BMU (200 pels/25.4 mm) + colour-grey-scale-p4(13), -- 4 BMU (300 pels/25.4 mm) + colour-grey-scale-p3(14), -- 3 BMU (400 pels/25.4 mm) + colour-grey-scale-p2(15), -- 2 BMU (600 pels/25.4 mm) + colour-grey-scale-p1(16), -- 1 BMU (1200 pels/25.4 mm) + p6(1)} -- 6 BMU (200 pels/25.4 mm) + +-- default and basic value is p6 (1) +Measure-Pair ::= SEQUENCE { + horizontal [0] IMPLICIT INTEGER, + vertical [0] IMPLICIT INTEGER +} + +Clipping ::= SEQUENCE { + first-coordinate-pair [0] IMPLICIT Coordinate-Pair OPTIONAL, + second-coordinate-pair [1] IMPLICIT Coordinate-Pair OPTIONAL +} + +Coordinate-Pair ::= SEQUENCE {x-coordinate INTEGER, + y-coordinate INTEGER +} + +Pel-Spacing ::= CHOICE { + spacing + [0] IMPLICIT SEQUENCE {length [0] INTEGER, + pel-spaces [0] INTEGER}, + null [1] IMPLICIT NULL +} + +Spacing-Ratio ::= SEQUENCE { + line-spacing-value INTEGER, + pel-spacing-value INTEGER +} + +Image-Dimensions ::= CHOICE { + width-controlled + [0] IMPLICIT SEQUENCE {minimum-width [0] INTEGER, + preferred-width [0] INTEGER}, + height-controlled + [1] IMPLICIT SEQUENCE {minimum-height INTEGER, + preferred-height INTEGER}, + area-controlled + [2] IMPLICIT SEQUENCE {minimum-width INTEGER, + preferred-width INTEGER, + minimum-height INTEGER, + preferred-height INTEGER, + aspect-ratio-flag INTEGER {fixed(0), variable(1)} + }, + automatic [3] IMPLICIT NULL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn new file mode 100644 index 0000000000..365144ff35 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Raster-Gr-Profile-Attributes.asn @@ -0,0 +1,76 @@ +-- Module Raster-Gr-Profile-Attributes (T.417:03/1993) + +Raster-Gr-Profile-Attributes {2 8 1 7 4} DEFINITIONS ::= +BEGIN + +EXPORTS + Ra-Gr-Presentation-Feature, Ra-Gr-Coding-Attribute, + Raster-Gr-Content-Defaults; + +IMPORTS + One-Of-Four-Angles, One-Of-Two-Angles, Pel-Transmission-Density, + Measure-Pair, Clipping, Pel-Spacing, Spacing-Ratio, Image-Dimensions, + Coordinate-Pair, Raster-Graphics-Attributes + FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2} + Compression, Tile-Type, Bits-Per-Colour-Component, Subsampling + FROM Raster-Gr-Coding-Attributes {2 8 1 7 3}; + +Ra-Gr-Coding-Attribute ::= CHOICE { + compression [0] IMPLICIT Compression, + bits-per-colour-component [4] Bits-Per-Colour-Component, + interleaving-format + [5] IMPLICIT INTEGER {pel(0), line(1), plane(2), stripe(3)}, + number-of-pels-per-tile-line [6] IMPLICIT INTEGER, + number-of-lines-per-tile [7] IMPLICIT INTEGER, + tiling-offset [8] IMPLICIT Coordinate-Pair, + tiling-types [9] IMPLICIT Tile-Type, + subsampling [10] IMPLICIT Subsampling, + jpeg-coding-mode + [11] IMPLICIT INTEGER {-- Huffman coding + huffman-baseline(0), + huffman-extended-sequential-DCT(1), + huffman-progressive-DCT(2), + huffman-spatial-lossless(3), + -- arithmetic coding + arithmetic-progressive-DCT(10), + arithmetic-spatial-lossless(11)}, + jpeg-quantization-table + [12] IMPLICIT INTEGER {associated(0), default(1)}, + jpeg-huffman-table + [13] IMPLICIT INTEGER {associated(0), preferred(1)}, + jbig-tp-for-base-layer [14] IMPLICIT INTEGER {not-used(0), used(1)}, + jbig-differential-layer + [15] IMPLICIT INTEGER {dl-not-present(0), dl-encoded-without-tp-and-dp(1), + dl-encoded-with-tp(2), dl-encoded-with-dp(3), + dl-encoded-with-dp-and-private-dp-table(4), + dl-encoded-with-tp-and-dp(5), + dl-encoded-with-tp-dp-and-private-dp-table(6)}, + number-of-lines-per-stripe [16] IMPLICIT INTEGER +} + +Ra-Gr-Presentation-Feature ::= CHOICE { + initial-offset [3] IMPLICIT Measure-Pair, + clipping [4] IMPLICIT Clipping, + pel-spacing [5] Pel-Spacing, + spacing-ratio [6] IMPLICIT Spacing-Ratio, + image-dimensions [7] Image-Dimensions, + pel-path [9] IMPLICIT One-Of-Four-Angles, + line-progression [10] IMPLICIT One-Of-Two-Angles, + pel-transmission-density [11] IMPLICIT Pel-Transmission-Density +} + +-- The tag values used above preserve compatibility +-- with Group 4 Class I facsimile data streams. +Raster-Gr-Content-Defaults ::= SET { + COMPONENTS OF Raster-Graphics-Attributes, + compression [8] IMPLICIT Compression OPTIONAL, + number-of-pels-per-tile-line [11] IMPLICIT INTEGER OPTIONAL, + number-of-lines-per-tile [12] IMPLICIT INTEGER OPTIONAL, + tiling-offset [13] IMPLICIT Coordinate-Pair OPTIONAL, + tiling-type [14] IMPLICIT Tile-Type OPTIONAL +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn b/lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn new file mode 100644 index 0000000000..d00570b7e7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Reliable-Transfer-APDU.asn @@ -0,0 +1,132 @@ +-- Module Reliable-Transfer-APDU (X.228:11/1988)
+
+Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS
+ rTSE, rTSE-abstract-syntax, RTORQapdu, RTOACapdu, RTORJapdu, RTABapdu; -- for use by Presentation Layer only
+
+IMPORTS
+ CONTRACT
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)};
+
+OPEN ::= CLASS {&Type
+}WITH SYNTAX {TYPE &Type
+}
+
+rTSE-abstract-syntax OBJECT IDENTIFIER ::=
+ {joint-iso-itu-t reliable-transfer(3) abstract-syntax(2)}
+
+rTSE CONTRACT ::= {ID {joint-iso-itu-t reliable-transfer(3) aseID(1)}
+}
+
+RTSE-apdus ::= CHOICE {
+ rtorq-apdu [16] IMPLICIT RTORQapdu,
+ rtoac-apdu [17] IMPLICIT RTOACapdu,
+ rtorj-apdu [18] IMPLICIT RTORJapdu,
+ rttp-apdu RTTPapdu,
+ rttr-apdu RTTRapdu,
+ rtab-apdu [22] IMPLICIT RTABapdu
+}
+
+-- Tags [19], [20], [21] are used by the values of the UNBIND macro of the RO-notation of
+-- Recommendation X.219. Tags [0] to [15] inclusive are reserved for the
+-- use by the APDUs of ROSE (Recommendation X229). Any occurrence of
+-- ANY in this module shall be replaced by a single ASN. 1 type (if any) in an RTSE-user
+-- protocol specification. In addition any RTSE-user protocol sharing a single named
+-- abstract syntax with the RTSE protocol shall use distinct tags for the single
+-- presentation data values in the user data parameters of the RT-CLOSE (if any) and
+-- RT- TRANSFER services. These tags shall be distinct from the tag values [16], [17],
+-- [18] and [22] and from the ASN. 1 types INTEGER and OCTET STRING.
+-- Note - The above conditions are ensured, if the RTSE-user protocol specification uses the
+-- RO-notation of Recommendation X229.
+-- In X.410-1984 mode only the components of RTORQapdu, RTOACapdu, RTORJapdu
+-- and RTABapdu are used by the presentation layer. This has the effect that the following
+-- APDU types appear in the protocol in X.410-1984 mode instead of the alternative types
+-- of the RTSE-apdus type:
+-- RTORQapdu
+-- RTOACapdu
+-- RTORJapdu
+-- RTTPapdu
+-- RTTRapdu
+-- RTABapdu
+RTORQapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ dialogueMode
+ [2] IMPLICIT INTEGER {monologue(0), twa(1)} DEFAULT monologue,
+ connectionDataRQ [3] ConnectionData,
+ applicationProtocol
+ [4] IMPLICIT INTEGER OPTIONAL --solely in X.410-1984 mode--
+}
+
+RTOACapdu ::= SET {
+ checkpointSize [0] IMPLICIT INTEGER DEFAULT 0,
+ windowSize [1] IMPLICIT INTEGER DEFAULT 3,
+ connectionDataAC [2] ConnectionData
+}
+
+RTORJapdu ::= SET {
+ refuseReason [0] IMPLICIT RefuseReason OPTIONAL, -- only in X.410-1984 mode
+ userDataRJ
+ [1] OPEN.&Type OPTIONAL -- RTSE user data, only in normal mode--
+}
+
+RTTPapdu ::= -- priority-- INTEGER
+
+RTTRapdu ::= OCTET STRING
+
+RTABapdu ::= SET {
+ abortReason [0] IMPLICIT AbortReason OPTIONAL,
+ reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL,
+ -- 8 bits maximum, only if abortReason is invalidParameter
+ userdataAB
+ [2] OPEN.&Type OPTIONAL -- only in normal mode and if abortReason--
+ -- is userError
+}
+
+ConnectionData ::= CHOICE {
+ open [0] OPEN.&Type, -- RTSE user data
+
+ -- this alternative is encoded as [0] IMPLICIT NULL
+ -- in the case of absence of RTSE user data,
+ recover [1] IMPLICIT SessionConnectionIdentifier
+}
+
+SessionConnectionIdentifier ::= SEQUENCE {
+ callingSSuserReference CallingSSuserReference,
+ commonReference CommonReference,
+ additionalReferenceInformation
+ [0] IMPLICIT AdditionalReferenceInformation OPTIONAL
+}
+
+RefuseReason ::= INTEGER {
+ rtsBusy(0), cannotRecover(1), validationFailure(2),
+ unacceptableDialogueMode(3)}
+
+CallingSSuserReference ::= CHOICE {
+ t61String T61String -- solely in X.410-1984 --,
+ octetString OCTET STRING -- solely in normal mode --
+}
+
+CommonReference ::= UTCTime
+
+AdditionalReferenceInformation ::= T61String
+
+AbortReason ::= INTEGER {
+ localSystemProblem(0),
+ invalidParameter(1), -- reflectedParameter supplied
+ unrecognizedActivity(2),
+ temporaryProblem(3),
+ -- the RTSE cannot accept a session for a period of time
+ protocolError(4), -- RTSE level protocol error
+ permanentProblem(5), --provider-abort solely in normal mode
+ userError(6), -- user-abort solely in normal mode
+ transferCompleted(7) -- activity can't be discarded--}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn new file mode 100644 index 0000000000..4a59cc403b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Abstract-Syntaxes.asn @@ -0,0 +1,103 @@ +-- Module Remote-Operations-Abstract-Syntaxes (X.882:07/1994) + +Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t remote-operations(4) + remote-operations-abstract-syntaxes(12) version1(0)} DEFINITIONS ::= +BEGIN + +-- exports everything +IMPORTS + OPERATION-PACKAGE + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + InvokeId, noInvokeId, ROS{}, Bind{}, Unbind{} + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)} + ACSE-apdu + FROM ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) + version1(1)} + RTORQapdu, RTOACapdu, RTORJapdu + FROM Reliable-Transfer-APDU {joint-iso-itu-t reliable-transfer(3) apdus(0)} + combine{}, AllOperations{}, ConsumerPerforms{}, SupplierPerforms{} + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)} + APPLICATION-CONTEXT + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)}; + +RTSE-apdus ::= CHOICE { + rtorq-apdu [16] IMPLICIT RTORQapdu, + rtoac-apdu [17] IMPLICIT RTOACapdu, + rtorj-apdu [18] IMPLICIT RTORJapdu, + rttp-apdu RTTPapdu, + rttr-apdu RTTRapdu, + rtab-apdu [22] IMPLICIT RTABapdu +} + +RTTPapdu ::= -- priority-- INTEGER + +RTTRapdu ::= OCTET STRING + +RTABapdu ::= SET { + abortReason [0] IMPLICIT AbortReason OPTIONAL, + reflectedParameter [1] IMPLICIT BIT STRING OPTIONAL, + -- 8 bits maximum, only if abortReason is invalidParameter + userdataAB + [2] TYPE-IDENTIFIER.&Type + OPTIONAL -- only in normal mode and if abortReason-- + -- is userError +} + +AbortReason ::= INTEGER { + localSystemProblem(0), + invalidParameter(1), -- reflectedParameter supplied + unrecognizedActivity(2), + temporaryProblem(3), + -- the RTSE cannot accept a session for a period of time + protocolError(4), -- RTSE level protocol error + permanentProblem(5), --provider-abort solely in normal mode + userError(6), -- user-abort solely in normal mode + transferCompleted(7) -- activity can't be discarded--} + +acse-abstract-syntax ABSTRACT-SYNTAX ::= { + ACSE-apdu + IDENTIFIED BY + {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0) + version1(1)} +} + +rtse-abstract-syntax ABSTRACT-SYNTAX ::= { + RTSE-apdus + IDENTIFIED BY {joint-iso-itu-t reliable-transfer(3) apdus(0)} +} + +AllValues{APPLICATION-CONTEXT:ac} ::= CHOICE { + bind Bind{ac.&associationContract.&connection.&bind}, + unbind Unbind{ac.&associationContract.&connection.&unbind}, + ros-singleAS + ROS-SingleAS{{ROSEInvokeIds}, + combine{{ac.&associationContract.&OperationsOf | + ac.&associationContract.&InitiatorConsumerOf | + ac.&associationContract.&ResponderConsumerOf}, { + ...}, + {-- Information Object of class OPERATION-PACKAGE to be defined -- }}} +} + +ROS-SingleAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::= + ROS{{ROSEInvokeIds}, {AllOperations {package}}, {AllOperations {package}}} + +ROS-ConsumerAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::= + ROS + {{ROSEInvokeIds}, {ConsumerPerforms {package}}, + {SupplierPerforms {package}}} + +ROS-SupplierAS{InvokeId:ROSEInvokeIds, OPERATION-PACKAGE:package} ::= + ROS + {{ROSEInvokeIds}, {SupplierPerforms {package}}, + {ConsumerPerforms {package}}} + +ROSEInvokeIds InvokeId ::= {ALL EXCEPT noInvokeId} + +END -- end of the remote-operations-abstract-syntaxes module + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn new file mode 100644 index 0000000000..e55ea3c05e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Generic-ROS-PDUs.asn @@ -0,0 +1,163 @@ +-- Module Remote-Operations-Generic-ROS-PDUs (X.880:07/1994) + +Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4) + generic-ROS-PDUs(6) version1(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- exports everything +IMPORTS + OPERATION, ERROR + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)}; + +ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::= + CHOICE { + invoke [1] Invoke{{InvokeIdSet}, {Invokable}}, + returnResult [2] ReturnResult{{Returnable}}, + returnError [3] ReturnError{{Errors {{Returnable}}}}, + reject [4] Reject +} +(CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:general-unrecognizedPDU) + +Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE { + invokeId + InvokeId(InvokeIdSet) + (CONSTRAINED BY { -- must be unambiguous --} ! + RejectProblem:invoke-duplicateInvocation), + linkedId + CHOICE {present [0] IMPLICIT present < InvokeId, + absent [1] IMPLICIT NULL + } + (CONSTRAINED BY { -- must identify an outstanding operation --} ! + RejectProblem:invoke-unrecognizedLinkedId) + (CONSTRAINED BY { -- which has one or more linked operations--} ! + RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL, + opcode + OPERATION.&operationCode + ({Operations} !RejectProblem:invoke-unrecognizedOperation), + argument + OPERATION.&ArgumentType + ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL +} +(CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:general-mistypedPDU) +(WITH COMPONENTS { + ..., + linkedId ABSENT + } | + WITH COMPONENTS { + ..., + linkedId PRESENT, + opcode (CONSTRAINED BY { -- must be in the &Linked field of the associated operation -- + } !RejectProblem:invoke-unexpectedLinkedOperation) + }) + +-- continued on the next page +ReturnResult{OPERATION:Operations} ::= SEQUENCE { + invokeId + InvokeId + (CONSTRAINED BY { -- must be that for an outstanding operation --} ! + RejectProblem:returnResult-unrecognizedInvocation) + (CONSTRAINED BY { -- which returns a result --} ! + RejectProblem:returnResult-resultResponseUnexpected), + result + SEQUENCE {opcode + OPERATION.&operationCode({Operations}) + (CONSTRAINED BY { -- identified by invokeId --} ! + RejectProblem:returnResult-unrecognizedInvocation), + result + OPERATION.&ResultType + ({Operations}{@.opcode} ! + RejectProblem:returnResult-mistypedResult)} OPTIONAL +} +(CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:general-mistypedPDU) + +ReturnError{ERROR:Errors} ::= SEQUENCE { + invokeId + InvokeId + (CONSTRAINED BY { -- must be that for an outstanding operation --} ! + RejectProblem:returnError-unrecognizedInvocation) + (CONSTRAINED BY { -- which returns an error --} ! + RejectProblem:returnError-errorResponseUnexpected), + errcode + ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError) + (CONSTRAINED BY { -- must be in the &Errors field of the associated operation -- + } !RejectProblem:returnError-unexpectedError), + parameter + ERROR.&ParameterType + ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter) + OPTIONAL +} +(CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:general-mistypedPDU) + +Reject ::= SEQUENCE { + invokeId InvokeId, + problem + CHOICE {general [0] GeneralProblem, + invoke [1] InvokeProblem, + returnResult [2] ReturnResultProblem, + returnError [3] ReturnErrorProblem} +} +(CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:general-mistypedPDU) + +GeneralProblem ::= INTEGER { + unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)} + +-- continued on the next page +InvokeProblem ::= INTEGER { + duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2), + resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5), + linkedResponseUnexpected(6), unexpectedLinkedOperation(7)} + +ReturnResultProblem ::= INTEGER { + unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2) +} + +ReturnErrorProblem ::= INTEGER { + unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2), + unexpectedError(3), mistypedParameter(4)} + +RejectProblem ::= INTEGER { + general-unrecognizedPDU(0), general-mistypedPDU(1), + general-badlyStructuredPDU(2), invoke-duplicateInvocation(10), + invoke-unrecognizedOperation(11), invoke-mistypedArgument(12), + invoke-resourceLimitation(13), invoke-releaseInProgress(14), + invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16), + invoke-unexpectedLinkedOperation(17), + returnResult-unrecognizedInvocation(20), + returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22), + returnError-unrecognizedInvocation(30), + returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32), + returnError-unexpectedError(33), returnError-mistypedParameter(34)} + +InvokeId ::= CHOICE {present INTEGER, + absent NULL +} + +noInvokeId InvokeId ::= absent:NULL + +NoInvokeId InvokeId ::= {noInvokeId} + +Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors} + +-- continued on the next page +Bind{OPERATION:operation} ::= CHOICE { + bind-invoke [16] OPERATION.&ArgumentType({operation}), + bind-result [17] OPERATION.&ResultType({operation}), + bind-error [18] OPERATION.&Errors.&ParameterType({operation}) +} + +Unbind{OPERATION:operation} ::= CHOICE { + unbind-invoke [19] OPERATION.&ArgumentType({operation}), + unbind-result [20] OPERATION.&ResultType({operation}), + unbind-error [21] OPERATION.&Errors.&ParameterType({operation}) +} + +END -- end of generic ROS PDU definitions + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn new file mode 100644 index 0000000000..671cf0e780 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects-extensions.asn @@ -0,0 +1,36 @@ +-- Module Remote-Operations-Information-Objects-extensions (X.881:07/1994) + +Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)} +DEFINITIONS ::= +BEGIN + +-- exports everything +IMPORTS + CONTRACT + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)}; + +APPLICATION-CONTEXT ::= CLASS { + &associationContract CONTRACT, + &associationRealization REALIZATION OPTIONAL, + &transferRealization REALIZATION, + &AbstractSyntaxes ABSTRACT-SYNTAX, + &applicationContextName OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + CONTRACT &associationContract + [ESTABLISHED BY &associationRealization] + INFORMATION TRANSFER BY &transferRealization + ABSTRACT SYNTAXES &AbstractSyntaxes + APPLICATION CONTEXT NAME &applicationContextName +} + +REALIZATION ::= TYPE-IDENTIFIER + +-- information objects ABSTRACT-SYNTAX and TYPE-IDENTIFIER are defined in ITU-T Rec. X.681 | +-- ISO/IEC 8824-2 +END -- end of the information-objects-extensions module + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn new file mode 100644 index 0000000000..b497e4126b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Information-Objects.asn @@ -0,0 +1,123 @@ +-- Module Remote-Operations-Information-Objects (X.880:07/1994) + +Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) + informationObjects(5) version1(0)} DEFINITIONS ::= +BEGIN + +-- exports everything +IMPORTS + emptyBind, emptyUnbind + FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t + remote-operations(4) useful-definitions(7) version1(0)}; + +OPERATION ::= CLASS { + &ArgumentType OPTIONAL, + &argumentTypeOptional BOOLEAN OPTIONAL, + &returnResult BOOLEAN DEFAULT TRUE, + &ResultType OPTIONAL, + &resultTypeOptional BOOLEAN OPTIONAL, + &Errors ERROR OPTIONAL, + &Linked OPERATION OPTIONAL, + &synchronous BOOLEAN DEFAULT FALSE, + &alwaysReturns BOOLEAN DEFAULT TRUE, + &InvokePriority Priority OPTIONAL, + &ResultPriority Priority OPTIONAL, + &operationCode Code UNIQUE OPTIONAL +} +WITH SYNTAX { + [ARGUMENT &ArgumentType + [OPTIONAL &argumentTypeOptional]] + [RESULT &ResultType + [OPTIONAL &resultTypeOptional]] + [RETURN RESULT &returnResult] + [ERRORS &Errors] + [LINKED &Linked] + [SYNCHRONOUS &synchronous] + [ALWAYS RESPONDS &alwaysReturns] + [INVOKE PRIORITY &InvokePriority] + [RESULT-PRIORITY &ResultPriority] + [CODE &operationCode] +} + +ERROR ::= CLASS { + &ParameterType OPTIONAL, + ¶meterTypeOptional BOOLEAN OPTIONAL, + &ErrorPriority Priority OPTIONAL, + &errorCode Code UNIQUE OPTIONAL +} +WITH SYNTAX { + [PARAMETER &ParameterType + [OPTIONAL ¶meterTypeOptional]] + [PRIORITY &ErrorPriority] + [CODE &errorCode] +} + +OPERATION-PACKAGE ::= CLASS { + &Both OPERATION OPTIONAL, + &Consumer OPERATION OPTIONAL, + &Supplier OPERATION OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE OPTIONAL +} +-- continued on the next page +WITH SYNTAX { + [OPERATIONS &Both] + [CONSUMER INVOKES &Supplier] + [SUPPLIER INVOKES &Consumer] + [ID &id] +} + +CONNECTION-PACKAGE ::= CLASS { + &bind OPERATION DEFAULT emptyBind, + &unbind OPERATION DEFAULT emptyUnbind, + &responderCanUnbind BOOLEAN DEFAULT FALSE, + &unbindCanFail BOOLEAN DEFAULT FALSE, + &id OBJECT IDENTIFIER UNIQUE OPTIONAL +} +WITH SYNTAX { + [BIND &bind] + [UNBIND &unbind] + [RESPONDER UNBIND &responderCanUnbind] + [FAILURE TO UNBIND &unbindCanFail] + [ID &id] +} + +CONTRACT ::= CLASS { + &connection CONNECTION-PACKAGE OPTIONAL, + &OperationsOf OPERATION-PACKAGE OPTIONAL, + &InitiatorConsumerOf OPERATION-PACKAGE OPTIONAL, + &InitiatorSupplierOf OPERATION-PACKAGE OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE OPTIONAL +} +WITH SYNTAX { + [CONNECTION &connection] + [OPERATIONS OF &OperationsOf] + [INITIATOR CONSUMER OF &InitiatorConsumerOf] + [RESPONDER CONSUMER OF &InitiatorSupplierOf] + [ID &id] +} + +ROS-OBJECT-CLASS ::= CLASS { + &Is ROS-OBJECT-CLASS OPTIONAL, + &Initiates CONTRACT OPTIONAL, + &Responds CONTRACT OPTIONAL, + &InitiatesAndResponds CONTRACT OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE +} +WITH SYNTAX { + [IS &Is] + [BOTH &InitiatesAndResponds] + [INITIATES &Initiates] + [RESPONDS &Responds] + ID &id +} + +Code ::= CHOICE {local INTEGER, + global OBJECT IDENTIFIER +} + +Priority ::= INTEGER(0..MAX) + +END -- end of Information Object specifications + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn new file mode 100644 index 0000000000..73b49c8d7a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Realizations.asn @@ -0,0 +1,81 @@ +-- Module Remote-Operations-Realizations (X.882:07/1994) + +Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4) + realizations(9) version1(0)} DEFINITIONS ::= +BEGIN + +-- exports everything +IMPORTS + REALIZATION + FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t + remote-operations(4) informationObjects-extensions(8) version1(0)}; + +RealizationParameter ::= SEQUENCE { + realization-type ENUMERATED {association-service(0), transfer-service(1)}, + concatenation BOOLEAN DEFAULT FALSE +} + +acse REALIZATION ::= { + RealizationParameter + (WITH COMPONENTS { + realization-type (association-service) + }) + IDENTIFIED BY + {joint-iso-itu-t remote-operations(4) association-realizations(10) + acse-without-concatenation(0)} +} + +acse-with-concatenation REALIZATION ::= { + RealizationParameter + (WITH COMPONENTS { + realization-type (association-service), + concatenation (TRUE) + }) + IDENTIFIED BY + {joint-iso-itu-t remote-operations(4) association-realizations(10) + acse-with-concatenation(1)} +} + +association-by-RTSE REALIZATION ::= { + RealizationParameter + (WITH COMPONENTS { + realization-type (association-service) + }) + IDENTIFIED BY + {joint-iso-itu-t remote-operations(4) association-realizations(10) + association-by-rtse(2)} +} + +pData REALIZATION ::= { + RealizationParameter(WITH COMPONENTS { + realization-type (transfer-service) + }) + IDENTIFIED BY + {joint-iso-itu-t remote-operations(4) transfer-realizations(11) + pData-without-concatenation(0)} +} + +pData-with-concatenation REALIZATION ::= { + RealizationParameter + (WITH COMPONENTS { + realization-type (transfer-service), + concatenation (TRUE) + }) + IDENTIFIED BY + {joint-iso-itu-t remote-operations(4) transfer-realizations(11) + pData-with-concatenation(1)} +} + +transfer-by-RTSE REALIZATION ::= { + RealizationParameter(WITH COMPONENTS { + realization-type (transfer-service) + }) + IDENTIFIED BY + {joint-iso-itu-t remote-operations(4) transfer-realizations(11) + rTSE-transfer(2)} +} + +END -- end of the OSI realizations module + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn new file mode 100644 index 0000000000..e526ff4600 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Remote-Operations-Useful-Definitions.asn @@ -0,0 +1,95 @@ +-- Module Remote-Operations-Useful-Definitions (X.880:07/1994) + +Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4) + useful-definitions(7) version1(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- exports everything +IMPORTS + OPERATION, ERROR, OPERATION-PACKAGE, Code + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + InvokeId, ROS{} + FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t + remote-operations(4) generic-ROS-PDUs(6) version1(0)}; + +emptyBind OPERATION ::= {ERRORS {refuse} + SYNCHRONOUS TRUE +} + +emptyUnbind OPERATION ::= {SYNCHRONOUS TRUE +} + +refuse ERROR ::= {CODE local:-1 +} + +no-op OPERATION ::= {ALWAYS RESPONDS FALSE + CODE local:-1 +} + +Forward{OPERATION:OperationSet} OPERATION ::= + {OperationSet | OperationSet.&Linked.&Linked | + OperationSet.&Linked.&Linked.&Linked.&Linked} + +Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}} + +ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::= + {Forward{{package.&Consumer}} | Forward{{package.&Both}} | + Reverse{{package.&Supplier}} | Reverse{{package.&Both}}} + +SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::= + {Forward{{package.&Supplier}} | Forward{{package.&Both}} | + Reverse{{package.&Consumer}} | Reverse{{package.&Both}}} + +AllOperations{OPERATION-PACKAGE:package} OPERATION ::= + {ConsumerPerforms{package} | SupplierPerforms{package}} + +-- continued on the next page +recode{OPERATION:operation, Code:code} OPERATION ::= { + ARGUMENT operation.&ArgumentType + OPTIONAL operation.&argumentTypeOptional + RESULT operation.&ResultType + OPTIONAL operation.&resultTypeOptional + RETURN RESULT operation.&returnResult + ERRORS {operation.&Errors} + LINKED {operation.&Linked} + SYNCHRONOUS operation.&synchronous + ALWAYS RESPONDS operation.&alwaysReturns + INVOKE PRIORITY {operation.&InvokePriority} + RESULT-PRIORITY {operation.&ResultPriority} + CODE code +} + +switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::= +{ + OPERATIONS {package.&Both} + CONSUMER INVOKES {package.&Consumer} + SUPPLIER INVOKES {package.&Supplier} + ID id +} + +combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies, + OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= { + OPERATIONS {ConsumerConsumes.&Both | ConsumerSupplies.&Both} + CONSUMER INVOKES {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier} + SUPPLIER INVOKES {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer} + ID base.&id +} + +ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= + ROS{{InvokeIdSet}, {AllOperations {package}}, {AllOperations {package}}} + +ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= + ROS + {{InvokeIdSet}, {ConsumerPerforms {package}}, + {SupplierPerforms {package}}} + +ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::= + ROS + {{InvokeIdSet}, {SupplierPerforms {package}}, + {ConsumerPerforms {package}}} + +END -- end of useful definitions. + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn b/lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn new file mode 100644 index 0000000000..07bba30690 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/SelectedAttributeTypes.asn @@ -0,0 +1,1466 @@ +-- Module SelectedAttributeTypes (X.520:08/1997) + +SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1) + selectedAttributeTypes(5) 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 + informationFramework, upperBounds, id-at, id-mr, id-avc, + directoryAbstractService, id-pr, id-not, id-cat + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS, + DistinguishedName, objectIdentifierMatch, distinguishedNameMatch, + CONTEXT, ContextAssertion, AttributeCombination, ContextCombination, + MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion + FROM InformationFramework informationFramework + G3FacsimileNonBasicParameters + FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) + mts-abstract-service(1) version-1999(1)} + ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number, + ub-locality-name, ub-state-name, ub-street-address, ub-organization-name, + ub-organizational-unit-name, ub-title, ub-description, + ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code, + ub-post-office-box, ub-physical-office-name, ub-telex-number, + ub-country-code, ub-teletex-terminal-id, ub-telephone-number, + ub-x121-address, ub-international-isdn-number, ub-destination-indicator, + ub-user-password, ub-match, ub-knowledge-information, + ub-directory-string-first-component-match, ub-localeContextSyntax, + ub-pseudonym + FROM UpperBounds upperBounds + FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions + FROM DirectoryAbstractService directoryAbstractService; + +-- Directory string type +DirectoryString{INTEGER:maxSize} ::= CHOICE { + teletexString TeletexString(SIZE (1..maxSize)), + printableString PrintableString(SIZE (1..maxSize)), + universalString UniversalString(SIZE (1..maxSize)), + bmpString BMPString(SIZE (1..maxSize)), + uTF8String UTF8String(SIZE (1..maxSize)) +} + +-- Attribute types +knowledgeInformation ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-knowledge-information} + EQUALITY MATCHING RULE caseIgnoreMatch + ID id-at-knowledgeInformation +} + +name ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-name} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-name +} + +commonName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-common-name} + ID id-at-commonName +} + +surname ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-surname} + ID id-at-surname +} + +givenName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-name} + ID id-at-givenName +} + +initials ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-name} + ID id-at-initials +} + +generationQualifier ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-name} + ID id-at-generationQualifier +} + +uniqueIdentifier ATTRIBUTE ::= { + WITH SYNTAX UniqueIdentifier + EQUALITY MATCHING RULE bitStringMatch + ID id-at-uniqueIdentifier +} + +UniqueIdentifier ::= BIT STRING + +dnQualifier ATTRIBUTE ::= { + WITH SYNTAX PrintableString + EQUALITY MATCHING RULE caseIgnoreMatch + ORDERING MATCHING RULE caseIgnoreOrderingMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-dnQualifier +} + +serialNumber ATTRIBUTE ::= { + WITH SYNTAX PrintableString(SIZE (1..ub-serial-number)) + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-serialNumber +} + +pseudonym ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-pseudonym} + ID id-at-pseudonym +} + +countryName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX CountryName + SINGLE VALUE TRUE + ID id-at-countryName +} + +CountryName ::= PrintableString(SIZE (2)) -- ISO 3166 codes only + + +localityName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-locality-name} + ID id-at-localityName +} + +collectiveLocalityName ATTRIBUTE ::= { + SUBTYPE OF localityName + COLLECTIVE TRUE + ID id-at-collectiveLocalityName +} + +stateOrProvinceName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-state-name} + ID id-at-stateOrProvinceName +} + +collectiveStateOrProvinceName ATTRIBUTE ::= { + SUBTYPE OF stateOrProvinceName + COLLECTIVE TRUE + ID id-at-collectiveStateOrProvinceName +} + +streetAddress ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-street-address} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-streetAddress +} + +collectiveStreetAddress ATTRIBUTE ::= { + SUBTYPE OF streetAddress + COLLECTIVE TRUE + ID id-at-collectiveStreetAddress +} + +houseIdentifier ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-name} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-houseIdentifier +} + +organizationName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-organization-name} + ID id-at-organizationName +} + +collectiveOrganizationName ATTRIBUTE ::= { + SUBTYPE OF organizationName + COLLECTIVE TRUE + ID id-at-collectiveOrganizationName +} + +organizationalUnitName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-organizational-unit-name} + ID id-at-organizationalUnitName +} + +collectiveOrganizationalUnitName ATTRIBUTE ::= { + SUBTYPE OF organizationalUnitName + COLLECTIVE TRUE + ID id-at-collectiveOrganizationalUnitName +} + +title ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-title} + ID id-at-title +} + +description ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-description} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-description +} + +searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide + ID id-at-searchGuide +} + +Guide ::= SET { + objectClass [0] OBJECT-CLASS.&id OPTIONAL, + criteria [1] Criteria +} + +Criteria ::= CHOICE { + type [0] CriteriaItem, + and [1] SET OF Criteria, + or [2] SET OF Criteria, + not [3] Criteria +} + +CriteriaItem ::= CHOICE { + equality [0] AttributeType, + substrings [1] AttributeType, + greaterOrEqual [2] AttributeType, + lessOrEqual [3] AttributeType, + approximateMatch [4] AttributeType +} + +enhancedSearchGuide ATTRIBUTE ::= { + WITH SYNTAX EnhancedGuide + ID id-at-enhancedSearchGuide +} + +EnhancedGuide ::= SEQUENCE { + objectClass [0] OBJECT-CLASS.&id, + criteria [1] Criteria, + subset + [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel +} + +businessCategory ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-business-category} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-businessCategory +} + +postalAddress ATTRIBUTE ::= { + WITH SYNTAX PostalAddress + EQUALITY MATCHING RULE caseIgnoreListMatch + SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch + ID id-at-postalAddress +} + +PostalAddress ::= + SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string} + +collectivePostalAddress ATTRIBUTE ::= { + SUBTYPE OF postalAddress + COLLECTIVE TRUE + ID id-at-collectivePostalAddress +} + +postalCode ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-postal-code} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-postalCode +} + +collectivePostalCode ATTRIBUTE ::= { + SUBTYPE OF postalCode + COLLECTIVE TRUE + ID id-at-collectivePostalCode +} + +postOfficeBox ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-post-office-box} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-postOfficeBox +} + +collectivePostOfficeBox ATTRIBUTE ::= { + SUBTYPE OF postOfficeBox + COLLECTIVE TRUE + ID id-at-collectivePostOfficeBox +} + +physicalDeliveryOfficeName ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {ub-physical-office-name} + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-physicalDeliveryOfficeName +} + +collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= { + SUBTYPE OF physicalDeliveryOfficeName + COLLECTIVE TRUE + ID id-at-collectivePhysicalDeliveryOfficeName +} + +telephoneNumber ATTRIBUTE ::= { + WITH SYNTAX TelephoneNumber + EQUALITY MATCHING RULE telephoneNumberMatch + SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch + ID id-at-telephoneNumber +} + +TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number)) + +-- String complying with CCITT Rec. E.123 only +collectiveTelephoneNumber ATTRIBUTE ::= { + SUBTYPE OF telephoneNumber + COLLECTIVE TRUE + ID id-at-collectiveTelephoneNumber +} + +telexNumber ATTRIBUTE ::= { + WITH SYNTAX TelexNumber + ID id-at-telexNumber +} + +TelexNumber ::= SEQUENCE { + telexNumber PrintableString(SIZE (1..ub-telex-number)), + countryCode PrintableString(SIZE (1..ub-country-code)), + answerback PrintableString(SIZE (1..ub-answerback)) +} + +collectiveTelexNumber ATTRIBUTE ::= { + SUBTYPE OF telexNumber + COLLECTIVE TRUE + ID id-at-collectiveTelexNumber +} + +facsimileTelephoneNumber ATTRIBUTE ::= { + WITH SYNTAX FacsimileTelephoneNumber + EQUALITY MATCHING RULE facsimileNumberMatch + SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch + ID id-at-facsimileTelephoneNumber +} + +facsimileNumberMatch MATCHING-RULE ::= { + SYNTAX TelephoneNumber + ID id-mr-facsimileNumberMatch +} + +facsimileNumberSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-facsimileNumberSubstringsMatch +} + +FacsimileTelephoneNumber ::= SEQUENCE { + telephoneNumber TelephoneNumber, + parameters G3FacsimileNonBasicParameters OPTIONAL +} + +collectiveFacsimileTelephoneNumber ATTRIBUTE ::= { + SUBTYPE OF facsimileTelephoneNumber + COLLECTIVE TRUE + ID id-at-collectiveFacsimileTelephoneNumber +} + +x121Address ATTRIBUTE ::= { + WITH SYNTAX X121Address + EQUALITY MATCHING RULE numericStringMatch + SUBSTRINGS MATCHING RULE numericStringSubstringsMatch + ID id-at-x121Address +} + +X121Address ::= NumericString(SIZE (1..ub-x121-address)) + +-- String as defined by ITU-T Rec. X.121 +internationalISDNNumber ATTRIBUTE ::= { + WITH SYNTAX InternationalISDNNumber + EQUALITY MATCHING RULE numericStringMatch + SUBSTRINGS MATCHING RULE numericStringSubstringsMatch + ID id-at-internationalISDNNumber +} + +InternationalISDNNumber ::= + NumericString(SIZE (1..ub-international-isdn-number)) + +-- String complying with ITU-T Rec. E.164 only +collectiveInternationalISDNNumber ATTRIBUTE ::= { + SUBTYPE OF internationalISDNNumber + COLLECTIVE TRUE + ID id-at-collectiveInternationalISDNNumber +} + +registeredAddress ATTRIBUTE ::= { + SUBTYPE OF postalAddress + WITH SYNTAX PostalAddress + ID id-at-registeredAddress +} + +destinationIndicator ATTRIBUTE ::= { + WITH SYNTAX DestinationIndicator + EQUALITY MATCHING RULE caseIgnoreMatch + SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch + ID id-at-destinationIndicator +} + +DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator)) + +communicationsService ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-at-communicationsService +} + +communicationsNetwork ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + SINGLE VALUE TRUE + ID id-at-communicationsNetwork +} + +-- alphabetical characters only +preferredDeliveryMethod ATTRIBUTE ::= { + WITH SYNTAX PreferredDeliveryMethod + SINGLE VALUE TRUE + ID id-at-preferredDeliveryMethod +} + +PreferredDeliveryMethod ::= + SEQUENCE OF + INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2), + telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5), + g4-facsimile-delivery(6), ia5-terminal-delivery(7), + videotex-delivery(8), telephone-delivery(9)} + +presentationAddress ATTRIBUTE ::= { + WITH SYNTAX PresentationAddress + EQUALITY MATCHING RULE presentationAddressMatch + SINGLE VALUE TRUE + ID id-at-presentationAddress +} + +PresentationAddress ::= SEQUENCE { + pSelector [0] OCTET STRING OPTIONAL, + sSelector [1] OCTET STRING OPTIONAL, + tSelector [2] OCTET STRING OPTIONAL, + nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING +} + +supportedApplicationContext ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-at-supportedApplicationContext +} + +protocolInformation ATTRIBUTE ::= { + WITH SYNTAX ProtocolInformation + EQUALITY MATCHING RULE protocolInformationMatch + ID id-at-protocolInformation +} + +ProtocolInformation ::= SEQUENCE { + nAddress OCTET STRING, + profiles SET OF OBJECT IDENTIFIER +} + +distinguishedName ATTRIBUTE ::= { + WITH SYNTAX DistinguishedName + EQUALITY MATCHING RULE distinguishedNameMatch + ID id-at-distinguishedName +} + +member ATTRIBUTE ::= {SUBTYPE OF distinguishedName + ID id-at-member +} + +uniqueMember ATTRIBUTE ::= { + WITH SYNTAX NameAndOptionalUID + EQUALITY MATCHING RULE uniqueMemberMatch + ID id-at-uniqueMember +} + +NameAndOptionalUID ::= SEQUENCE { + dn DistinguishedName, + uid UniqueIdentifier OPTIONAL +} + +owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName + ID id-at-owner +} + +roleOccupant ATTRIBUTE ::= { + SUBTYPE OF distinguishedName + ID id-at-roleOccupant +} + +seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName + ID id-at-seeAlso +} + +dmdName ATTRIBUTE ::= { + SUBTYPE OF name + WITH SYNTAX DirectoryString {ub-common-name} + ID id-at-dmdName +} + +dSAProblem ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-not-dSAProblem +} + +searchServiceProblem ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + SINGLE VALUE TRUE + ID id-not-searchServiceProblem +} + +serviceType ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + SINGLE VALUE TRUE + ID id-not-serviceType +} + +attributeTypeList ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-not-attributeTypeList +} + +filterItem ATTRIBUTE ::= { + WITH SYNTAX FilterItem + ID id-not-filterItem +} + +attributeCombinations ATTRIBUTE ::= { + WITH SYNTAX AttributeCombination + ID id-not-attributeCombinations +} + +contextTypeList ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-not-contextTypeList +} + +contextList ATTRIBUTE ::= { + WITH SYNTAX ContextAssertion + ID id-not-contextList +} + +hierarchySelectList ATTRIBUTE ::= { + WITH SYNTAX HierarchySelections + SINGLE VALUE TRUE + ID id-not-hierarchySelectList +} + +searchOptionsList ATTRIBUTE ::= { + WITH SYNTAX SearchControlOptions + SINGLE VALUE TRUE + ID id-not-searchOptionsList +} + +serviceControlOptionsList ATTRIBUTE ::= { + WITH SYNTAX ServiceControlOptions + SINGLE VALUE TRUE + ID id-not-serviceControlOptionsList +} + +multipleMatchingLocalities ATTRIBUTE ::= { + WITH SYNTAX MultipleMatchingLocalities + ID id-not-multipleMatchingLocalities +} + +MultipleMatchingLocalities ::= SEQUENCE { + matchingRuleUsed MATCHING-RULE.&id OPTIONAL, + attributeList SEQUENCE OF AttributeValueAssertion +} + +proposedRelaxation ATTRIBUTE ::= { + WITH SYNTAX SEQUENCE OF MRMapping + ID id-not-proposedRelaxation +} + +appliedRelaxation ATTRIBUTE ::= { + WITH SYNTAX OBJECT IDENTIFIER + EQUALITY MATCHING RULE objectIdentifierMatch + ID id-not-appliedRelaxation +} + +-- Matching rules +caseIgnoreMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-caseIgnoreMatch +} + +caseIgnoreOrderingMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-caseIgnoreOrderingMatch +} + +caseIgnoreSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-caseIgnoreSubstringsMatch +} + +SubstringAssertion ::= + SEQUENCE OF + CHOICE {initial [0] DirectoryString{ub-match}, + any [1] DirectoryString{ub-match}, + final [2] DirectoryString{ub-match}, + control Attribute + } -- Used to specify interpretation of the following items + +-- at most one initial and one final component +caseExactMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-caseExactMatch +} + +caseExactOrderingMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-caseExactOrderingMatch +} + +caseExactSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion -- only the PrintableString choice + ID id-mr-caseExactSubstringsMatch +} + +numericStringMatch MATCHING-RULE ::= { + SYNTAX NumericString + ID id-mr-numericStringMatch +} + +numericStringOrderingMatch MATCHING-RULE ::= { + SYNTAX NumericString + ID id-mr-numericStringOrderingMatch +} + +numericStringSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-numericStringSubstringsMatch +} + +caseIgnoreListMatch MATCHING-RULE ::= { + SYNTAX CaseIgnoreListMatch + ID id-mr-caseIgnoreListMatch +} + +CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match} + +caseIgnoreListSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-caseIgnoreListSubstringsMatch +} + +storedPrefixMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-storedPrefixMatch +} + +booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN + ID id-mr-booleanMatch +} + +integerMatch MATCHING-RULE ::= {SYNTAX INTEGER + ID id-mr-integerMatch +} + +integerOrderingMatch MATCHING-RULE ::= { + SYNTAX INTEGER + ID id-mr-integerOrderingMatch +} + +bitStringMatch MATCHING-RULE ::= { + SYNTAX BIT STRING + ID id-mr-bitStringMatch +} + +octetStringMatch MATCHING-RULE ::= { + SYNTAX OCTET STRING + ID id-mr-octetStringMatch +} + +octetStringOrderingMatch MATCHING-RULE ::= { + SYNTAX OCTET STRING + ID id-mr-octetStringOrderingMatch +} + +octetStringSubstringsMatch MATCHING-RULE ::= { + SYNTAX OctetSubstringAssertion + ID id-mr-octetStringSubstringsMatch +} + +OctetSubstringAssertion ::= + SEQUENCE OF + CHOICE {initial [0] OCTET STRING, + any [1] OCTET STRING, + final [2] OCTET STRING} + +-- at most one initial and one final component +telephoneNumberMatch MATCHING-RULE ::= { + SYNTAX TelephoneNumber + ID id-mr-telephoneNumberMatch +} + +telephoneNumberSubstringsMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-telephoneNumberSubstringsMatch +} + +presentationAddressMatch MATCHING-RULE ::= { + SYNTAX PresentationAddress + ID id-mr-presentationAddressMatch +} + +uniqueMemberMatch MATCHING-RULE ::= { + SYNTAX NameAndOptionalUID + ID id-mr-uniqueMemberMatch +} + +protocolInformationMatch MATCHING-RULE ::= { + SYNTAX OCTET STRING + ID id-mr-protocolInformationMatch +} + +uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime + ID id-mr-uTCTimeMatch +} + +uTCTimeOrderingMatch MATCHING-RULE ::= { + SYNTAX UTCTime + ID id-mr-uTCTimeOrderingMatch +} + +generalizedTimeMatch MATCHING-RULE ::= { + SYNTAX GeneralizedTime + -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1 + ID id-mr-generalizedTimeMatch +} + +generalizedTimeOrderingMatch MATCHING-RULE ::= { + SYNTAX GeneralizedTime + -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1 + ID id-mr-generalizedTimeOrderingMatch +} + +integerFirstComponentMatch MATCHING-RULE ::= { + SYNTAX INTEGER + ID id-mr-integerFirstComponentMatch +} + +objectIdentifierFirstComponentMatch MATCHING-RULE ::= { + SYNTAX OBJECT IDENTIFIER + ID id-mr-objectIdentifierFirstComponentMatch +} + +directoryStringFirstComponentMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-directory-string-first-component-match} + ID id-mr-directoryStringFirstComponentMatch +} + +wordMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-wordMatch +} + +keywordMatch MATCHING-RULE ::= { + SYNTAX DirectoryString {ub-match} + ID id-mr-keywordMatch +} + +systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch +} + +generalWordMatch MATCHING-RULE ::= { + SYNTAX SubstringAssertion + ID id-mr-generalWordMatch +} + +sequenceMatchType ATTRIBUTE ::= { + WITH SYNTAX + ENUMERATED {sequenceExact(0), sequenceDeletion(1), + sequenceRestrictedDeletion(2), sequencePermutation(3), + sequencePermutationAndDeletion(4), sequenceProviderDefined(5)} + SINGLE VALUE TRUE + ID id-cat-sequenceMatchType +} -- defaulting to sequenceExact, + +wordMatchTypes ATTRIBUTE ::= { + WITH SYNTAX + ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2), + wordProviderDefined(3)} + SINGLE VALUE TRUE + ID id-cat-wordMatchType +} -- defaulting to wordExact + +characterMatchTypes ATTRIBUTE ::= { + WITH SYNTAX + ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)} + SINGLE VALUE TRUE + ID id-cat-characterMatchTypes +} + +selectedContexts ATTRIBUTE ::= { + WITH SYNTAX ContextAssertion + ID id-cat-selectedContexts +} + +approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch +} + +ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch +} + +nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch +} + +ZONAL-MATCHING ::= + MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id} + +ZonalSelect ::= SEQUENCE OF AttributeType + +ZonalResult ::= ENUMERATED { + cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)} + +zonalMatch MATCHING-RULE ::= { + UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id + ID id-mr-zonalMatch +} + +-- Contexts +languageContext CONTEXT ::= { + WITH SYNTAX LanguageContextSyntax + ID id-avc-language +} + +LanguageContextSyntax ::= PrintableString(SIZE (2..3)) -- ISO 639-2 codes only + + +temporalContext CONTEXT ::= { + WITH SYNTAX TimeSpecification + ASSERTED AS TimeAssertion + ID id-avc-temporal +} + +TimeSpecification ::= SEQUENCE { + time + CHOICE {absolute + SEQUENCE {startTime [0] GeneralizedTime OPTIONAL, + endTime [1] GeneralizedTime OPTIONAL}, + periodic SET OF Period}, + notThisTime BOOLEAN DEFAULT FALSE, + timeZone TimeZone OPTIONAL +} + +Period ::= SEQUENCE { + timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL, + days + [1] CHOICE {intDay SET OF INTEGER, + bitDay + BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), + thursday(4), friday(5), saturday(6)}, + dayOf XDayOf} OPTIONAL, + weeks + [2] CHOICE {allWeeks NULL, + intWeek SET OF INTEGER, + bitWeek + BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)} + } OPTIONAL, + months + [3] CHOICE {allMonths NULL, + intMonth SET OF INTEGER, + bitMonth + BIT STRING {january(0), february(1), march(2), april(3), + may(4), june(5), july(6), august(7), + september(8), october(9), november(10), + december(11)}} OPTIONAL, + years [4] SET OF INTEGER(1000..MAX) OPTIONAL +} + +XDayOf ::= CHOICE { + first [1] NamedDay, + second [2] NamedDay, + third [3] NamedDay, + fourth [4] NamedDay, + fifth [5] NamedDay +} + +NamedDay ::= CHOICE { + intNamedDays + ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5), + friday(6), saturday(7)}, + bitNamedDays + BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4), + friday(5), saturday(6)} +} + +DayTimeBand ::= SEQUENCE { + startDayTime [0] DayTime DEFAULT {hour 0}, + endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59} +} + +DayTime ::= SEQUENCE { + hour [0] INTEGER(0..23), + minute [1] INTEGER(0..59) DEFAULT 0, + second [2] INTEGER(0..59) DEFAULT 0 +} + +TimeZone ::= INTEGER(-12..12) + +TimeAssertion ::= CHOICE { + now NULL, + at GeneralizedTime, + between + SEQUENCE {startTime [0] GeneralizedTime, + endTime [1] GeneralizedTime OPTIONAL, + entirely BOOLEAN DEFAULT FALSE} +} + +localeContext CONTEXT ::= { + WITH SYNTAX LocaleContextSyntax + ID id-avc-locale +} + +LocaleContextSyntax ::= CHOICE { + localeID1 OBJECT IDENTIFIER, + localeID2 DirectoryString{ub-localeContextSyntax} +} + +-- Object identifier assignments - +-- object identifiers assigned in other modules are shown in comments +-- Attributes +-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0} +-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1} +id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::= + {id-at 1 2} + +id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2} + +id-at-commonName OBJECT IDENTIFIER ::= {id-at 3} + +id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2} + +id-at-surname OBJECT IDENTIFIER ::= {id-at 4} + +id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2} + +id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5} + +id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2} + +id-at-countryName OBJECT IDENTIFIER ::= {id-at 6} + +id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2} + +id-at-localityName OBJECT IDENTIFIER ::= {id-at 7} + +id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2} + +id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1} + +id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2} + +id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8} + +id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2} + +id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1} + +id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::= + {id-at 8 1 2} + +id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9} + +id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2} + +id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1} + +id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2} + +id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10} + +id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2} + +id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1} + +id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2} + +id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11} + +id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2} + +id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1} + +id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::= + {id-at 11 1 2} + +id-at-title OBJECT IDENTIFIER ::= {id-at 12} + +id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2} + +id-at-description OBJECT IDENTIFIER ::= {id-at 13} + +id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2} + +id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14} + +id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2} + +id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15} + +id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2} + +id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16} + +id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2} + +id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1} + +id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2} + +id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17} + +id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2} + +id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1} + +id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2} + +id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18} + +id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2} + +id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1} + +id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2} + +id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19} + +id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2} + +id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1} + +id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= + {id-at 19 1 2} + +id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20} + +id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2} + +id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1} + +id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2} + +id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21} + +id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2} + +id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1} + +id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2} + +-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22} +-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2} +-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1} +-- id-at-encryptedCollectiveTeletexTerminalIdentifier +-- OBJECT IDENTIFIER ::= {id-at 22 1 2} +id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::= + {id-at 23} + +id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2} + +id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1} + +id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= + {id-at 23 1 2} + +id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24} + +id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2} + +id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25} + +id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2} + +id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1} + +id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::= + {id-at 25 1 2} + +id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26} + +id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2} + +id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27} + +id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2} + +id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28} + +id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2} + +id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29} + +id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2} + +id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30} + +id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2} + +id-at-member OBJECT IDENTIFIER ::= {id-at 31} + +id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2} + +id-at-owner OBJECT IDENTIFIER ::= {id-at 32} + +id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2} + +id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33} + +id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2} + +id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34} + +id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2} + +-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35} +id-at-encryptedUserPassword OBJECT IDENTIFIER ::= + {id-at 35 2} + +-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36} +id-at-encryptedUserCertificate OBJECT IDENTIFIER ::= + {id-at 36 2} + +-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37} +id-at-encryptedCACertificate OBJECT IDENTIFIER ::= + {id-at 37 2} + +-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38} +id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::= + {id-at 38 2} + +-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39} +id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::= + {id-at 39 2} + +-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40} +id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::= + {id-at 40 2} + +id-at-name OBJECT IDENTIFIER ::= {id-at 41} + +id-at-givenName OBJECT IDENTIFIER ::= {id-at 42} + +id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2} + +id-at-initials OBJECT IDENTIFIER ::= {id-at 43} + +id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2} + +id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44} + +id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2} + +id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45} + +id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2} + +id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46} + +id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2} + +id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47} + +id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2} + +id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48} + +id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2} + +id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49} + +id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2} + +id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50} + +id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2} + +id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51} + +id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2} + +--id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52} +id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::= + {id-at 52 2} + +--id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53} +id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::= + {id-at 53 2} + +id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54} + +id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2} + +-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55} +id-at-encryptedClearance OBJECT IDENTIFIER ::= + {id-at 55 2} + +-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56} +id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::= + {id-at 56 2} + +-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57} +id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::= + {id-at 57 2} + +--id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58} +id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::= + {id-at 58 2} + +-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59} +id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::= + {id-at 59 2} + +-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60} +id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::= + {id-at 60 2} + +-- id-at-family-information OBJECT IDENTIFIER {id-at 64} +id-at-pseudonym OBJECT IDENTIFIER ::= + {id-at 65} + +id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66} + +id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67} + +-- Matching rules +-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0} +-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1} +id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::= + {id-mr 2} + +id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3} + +id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4} + +id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5} + +id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6} + +id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7} + +id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8} + +id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9} + +id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10} + +id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11} + +id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12} + +id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13} + +id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14} + +id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15} + +id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16} + +id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17} + +id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18} + +id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19} + +id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20} + +id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21} + +id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22} + +id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23} + +id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24} + +id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25} + +id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26} + +id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27} + +id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28} + +id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29} + +id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30} + +id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31} + +id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32} + +id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33} + +-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34} +-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35} +-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36} +-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37} +-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38} +-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39} +-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40} +id-mr-storedPrefixMatch OBJECT IDENTIFIER ::= + {id-mr 41} + +-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42} +-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43} +--id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44} +id-mr-systemProposedMatch OBJECT IDENTIFIER ::= + {id-mr 47} + +id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48} + +id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49} + +id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50} + +id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51} + +id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52} + +id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63} + +id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64} + +-- contexts +id-avc-language OBJECT IDENTIFIER ::= {id-avc 0} + +id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1} + +id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2} + +--id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3} +--id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4} +-- Problem definitions +id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::= + {id-pr 1} + +id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2} + +id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3} + +id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4} + +id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5} + +id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6} + +id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7} + +id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8} + +id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9} + +id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10} + +id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11} + +id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12} + +id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13} + +id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14} + +id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15} + +id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16} + +id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17} + +id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18} + +id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19} + +id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20} + +id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21} + +id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22} + +id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23} + +id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24} + +id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25} + +id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26} + +id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27} + +id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28} + +id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29} + +id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30} + +id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31} + +id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32} + +-- Notification attributes +id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0} + +id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1} + +id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2} + +id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3} + +id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4} + +id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5} + +id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6} + +id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7} + +id-not-contextList OBJECT IDENTIFIER ::= {id-not 8} + +id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9} + +id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10} + +id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11} + +id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12} + +id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13} + +id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14} + +id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15} + +id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16} + +-- Control attributes +id-cat-sequenceMatchType OBJECT IDENTIFIER ::= + {id-cat 1} + +id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2} + +id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3} + +id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4} + +END -- SelectedAttributeTypes + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn b/lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn new file mode 100644 index 0000000000..2917122e94 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/SeseAPDUs.asn @@ -0,0 +1,116 @@ +-- Module SeseAPDUs (X.832:04/1995) + +SeseAPDUs {joint-iso-itu-t genericULS(20) modules(1) seseAPDUs(6)} DEFINITIONS +AUTOMATIC TAGS ::= +BEGIN + +-- EXPORTS ALL +IMPORTS + notation + FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1) + objectIdentifiers(0)} + dirAuthenticationTwoWay + FROM GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1) + gulsSecurityExchanges(2)} + SECURITY-EXCHANGE, SE-ERROR + FROM Notation notation; + +SESEapdus{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::= + CHOICE { + se-transfer SETransfer{{ValidSEs}, {InvocationIdSet}}, + se-u-abort SEUAbort{{ValidSEs}, {InvocationIdSet}}, + se-p-abort SEPAbort{{ValidSEs}, {InvocationIdSet}} +} + +SETransfer{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::= + SEQUENCE { + seIdentifier SECURITY-EXCHANGE.&sE-Identifier({ValidSEs}), + -- This identifies one of the security- + -- exchanges supported by the particular SESE + -- abstract syntax + itemIdentifier + SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs}{@seIdentifier}), + -- This identifies one of the security- + -- exchange-items of the security exchange + -- indicated by "seIdentifier" + seItem + SECURITY-EXCHANGE.&SE-Items.&ItemType + ({ValidSEs}{@seIdentifier, @itemIdentifier}), + invocationId + InvocationId(InvocationIdSet) + (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active security exchange-- + + -- if start flag is not true -- }) DEFAULT noInvocationId, + startFlag BOOLEAN DEFAULT FALSE, + -- This field is set only as the first security- + -- exchange-item of a security-exchange is + -- transferred. + endFlag BOOLEAN DEFAULT FALSE-- This field is set as the last security-exchange- +-- item of a security-exchange is transferred. It is +-- needed to accommodate those mechanisms requiring +-- n exchanges, where n is not known a priori +} + +SEUAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::= + SEQUENCE { + invocationId + InvocationId(InvocationIdSet) + (CONSTRAINED BY {-- Must be the same as the---- invocationId on an active or just-completed-- + + -- security exchange -- }) DEFAULT noInvocationId, + itemIdentifier + SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL, + -- This component will only be present + -- when the Abort is generated subsequent + -- to receipt of a SETransfer APDU. + errors SEQUENCE OF SEerror{{ValidSEs}} OPTIONAL + -- needed to handle multiple error codes +} + +SEPAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::= + SEQUENCE { + invocationId InvocationId(InvocationIdSet) OPTIONAL, + itemIdentifier + SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL, + -- This component will only be present + -- when the Abort is generated subsequent + -- to receipt of a SETransfer APDU. + problemCode ProblemCode +} + +InvocationId ::= CHOICE {present INTEGER, + absent NULL +} + +noInvocationId InvocationId ::= absent:NULL + +NoInvocationId InvocationId ::= {noInvocationId} + +SEerror{SECURITY-EXCHANGE:ValidSEs} ::= SEQUENCE { + errorCode SE-ERROR.&errorCode({Errors{{ValidSEs}}}) OPTIONAL, + errorParameter + SE-ERROR.&ParameterType({Errors{{ValidSEs}}}) OPTIONAL +} + +Errors{SECURITY-EXCHANGE:ValidSEs} SE-ERROR ::= {ValidSEs.&SE-Items.&Errors} + +ProblemCode ::= CHOICE { + general GeneralProblem, + transfer TransferProblem, + abort AbortProblem +} + +GeneralProblem ::= ENUMERATED {invalidAPDU(0)} + +TransferProblem ::= ENUMERATED { + duplicateInvocationId(0), unrecognizedSecurityExchange(1), mistypedItem(2), + inappropriateInvocationId(3), alternatingSequenceError(4)} + +AbortProblem ::= ENUMERATED { + unrecognizedInvocationId(0), abortUnexpected(1), unrecognizedError(2), + unexpectedError(3), mistypedErrorParameter(4)} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn b/lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn new file mode 100644 index 0000000000..02205bd64c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/SpkmGssTokens.asn @@ -0,0 +1,257 @@ +-- Module SpkmGssTokens (RFC 2025:10/1996) +SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) spkm(1) spkmGssTokens(10)} +-- +-- Copyright (C) The Internet Society (1996). This version of +-- this ASN.1 module is part of RFC 2025; +-- see the RFC itself for full legal notices. +-- +DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- EXPORTS ALL +IMPORTS + Name + FROM InformationFramework {joint-iso-itu-t(2) ds(5) module(1) + informationFramework(1) 3} + Certificate, CertificateList, CertificatePair, AlgorithmIdentifier, Validity + FROM AuthenticationFramework {joint-iso-itu-t(2) ds(5) module(1) + authenticationFramework(7) 3}; + +-- types +SPKM-REQ ::= SEQUENCE { + requestToken REQ-TOKEN, + certif-data [0] CertificationData OPTIONAL, + auth-data [1] AuthorizationData OPTIONAL +} + +CertificationData ::= SEQUENCE { + certificationPath [0] CertificationPath OPTIONAL, + certificateRevocationList [1] CertificateList OPTIONAL +} -- at least one of the above shall be present + +CertificationPath ::= SEQUENCE { + userKeyId [0] OCTET STRING OPTIONAL, + userCertif [1] Certificate OPTIONAL, + verifKeyId [2] OCTET STRING OPTIONAL, + userVerifCertif [3] Certificate OPTIONAL, + theCACertificates [4] SEQUENCE OF CertificatePair OPTIONAL +} -- Presence of [2] or [3] implies that [0] or [1] must also be + +-- present. Presence of [4] implies that at least one of [0], [1], +-- [2], and [3] must also be present. +REQ-TOKEN ::= SEQUENCE { + req-contents Req-contents, + algId AlgorithmIdentifier, + req-integrity Integrity -- "token" is Req-contents +} + +Integrity ::= BIT STRING + +-- If corresponding algId specifies a signing algorithm, +-- "Integrity" holds the result of applying the signing procedure +-- specified in algId to the BER-encoded octet string which results +-- from applying the hashing procedure (also specified in algId) to +-- the DER-encoded octets of "token". +-- Alternatively, if corresponding algId specifies a MACing +-- algorithm, "Integrity" holds the result of applying the MACing +-- procedure specified in algId to the DER-encoded octets of +-- "token" +Req-contents ::= SEQUENCE { + tok-id INTEGER(256), -- shall contain 0100 (hex) + context-id Random-Integer, + pvno BIT STRING, + timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2 + randSrc Random-Integer, + targ-name Name, + src-name [0] Name OPTIONAL, + req-data Context-Data, + validity [1] Validity OPTIONAL, + key-estb-set Key-Estb-Algs, + key-estb-req BIT STRING OPTIONAL, + key-src-bind OCTET STRING OPTIONAL + -- This field must be present for the case of SPKM-2 + -- unilateral authen. if the K-ALG in use does not provide + -- such a binding (but is optional for all other cases). + -- The octet string holds the result of applying the + -- mandatory hashing procedure (in MANDATORY I-ALG; + -- see Section 2.1) as follows: MD5(src || context_key), + -- where "src" is the DER-encoded octets of src-name, + -- "context-key" is the symmetric key (i.e., the + -- unprotected version of what is transmitted in + -- key-estb-req), and "||" is the concatenation operation. +} + +Random-Integer ::= BIT STRING + +Context-Data ::= SEQUENCE { + channelId ChannelId OPTIONAL, + seq-number INTEGER OPTIONAL, + options Options, + conf-alg Conf-Algs, + intg-alg Intg-Algs, + owf-alg OWF-Algs +} + +ChannelId ::= OCTET STRING + +Options ::= BIT STRING { + delegation-state(0), mutual-state(1), replay-det-state(2), sequence-state(3), + conf-avail(4), integ-avail(5), target-certif-data-required(6)} + +Conf-Algs ::= CHOICE { + algs [0] SEQUENCE OF AlgorithmIdentifier, + null [1] NULL +} + +Intg-Algs ::= SEQUENCE OF AlgorithmIdentifier + +OWF-Algs ::= SEQUENCE OF AlgorithmIdentifier + +Key-Estb-Algs ::= SEQUENCE OF AlgorithmIdentifier + +SPKM-REP-TI ::= SEQUENCE { + responseToken REP-TI-TOKEN, + certif-data CertificationData OPTIONAL + -- present if target-certif-data-required option was +} -- set to TRUE in SPKM-REQ + +REP-TI-TOKEN ::= SEQUENCE { + rep-ti-contents Rep-ti-contents, + algId AlgorithmIdentifier, + rep-ti-integ Integrity -- "token" is Rep-ti-contents +} + +Rep-ti-contents ::= SEQUENCE { + tok-id INTEGER(512), -- shall contain 0200 (hex) + context-id Random-Integer, + pvno [0] BIT STRING OPTIONAL, + timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2 + randTarg Random-Integer, + src-name [1] Name OPTIONAL, + targ-name Name, + randSrc Random-Integer, + rep-data Context-Data, + validity [2] Validity OPTIONAL, + key-estb-id AlgorithmIdentifier OPTIONAL, + key-estb-str BIT STRING OPTIONAL +} + +SPKM-REP-IT ::= SEQUENCE { + responseToken REP-IT-TOKEN, + algId AlgorithmIdentifier, + rep-it-integ Integrity -- "token" is REP-IT-TOKEN +} + +REP-IT-TOKEN ::= SEQUENCE { + tok-id INTEGER(768), -- shall contain 0300 (hex) + context-id Random-Integer, + randSrc Random-Integer, + randTarg Random-Integer, + targ-name Name, + src-name Name OPTIONAL, + key-estb-rep BIT STRING OPTIONAL +} + +SPKM-ERROR ::= SEQUENCE { + errorToken ERROR-TOKEN, + algId AlgorithmIdentifier, + integrity Integrity -- "token" is ERROR-TOKEN +} + +ERROR-TOKEN ::= SEQUENCE { + tok-id INTEGER(1024), -- shall contain 0400 (hex) + context-id Random-Integer +} + +SPKM-MIC ::= SEQUENCE {mic-header Mic-Header, + int-cksum BIT STRING +} + +Mic-Header ::= SEQUENCE { + tok-id INTEGER(257), -- shall contain 0101 (hex) + context-id Random-Integer, + int-alg [0] AlgorithmIdentifier OPTIONAL, + snd-seq [1] SeqNum OPTIONAL +} + +SeqNum ::= SEQUENCE {num INTEGER, + dir-ind BOOLEAN +} + +SPKM-WRAP ::= SEQUENCE {wrap-header Wrap-Header, + wrap-body Wrap-Body +} + +Wrap-Header ::= SEQUENCE { + tok-id INTEGER(513), -- shall contain 0201 (hex) + context-id Random-Integer, + int-alg [0] AlgorithmIdentifier OPTIONAL, + conf-alg [1] Conf-Alg OPTIONAL, + snd-seq [2] SeqNum OPTIONAL +} + +Wrap-Body ::= SEQUENCE {int-cksum BIT STRING, + data BIT STRING +} + +Conf-Alg ::= CHOICE {algId [0] AlgorithmIdentifier, + null [1] NULL +} + +SPKM-DEL ::= SEQUENCE {del-header Del-Header, + int-cksum BIT STRING +} + +Del-Header ::= SEQUENCE { + tok-id INTEGER(769), -- shall contain 0301 (hex) + context-id Random-Integer, + int-alg [0] AlgorithmIdentifier OPTIONAL, + snd-seq [1] SeqNum OPTIONAL +} + +-- other types +-- from [RFC-1508] +MechType ::= OBJECT IDENTIFIER + +InitialContextToken ::= [APPLICATION 0] IMPLICIT SEQUENCE { + thisMech MechType, + innerContextToken SPKMInnerContextToken +} -- when thisMech is SPKM-1 or SPKM-2 + +SPKMInnerContextToken ::= CHOICE { + req [0] SPKM-REQ, + rep-ti [1] SPKM-REP-TI, + rep-it [2] SPKM-REP-IT, + error [3] SPKM-ERROR, + mic [4] SPKM-MIC, + wrap [5] SPKM-WRAP, + del [6] SPKM-DEL +} + +-- from [RFC-1510] +AuthorizationData ::= + SEQUENCE OF SEQUENCE {ad-type INTEGER, + ad-data OCTET STRING} + +-- object identifier assignments +md5-DES-CBC OBJECT IDENTIFIER ::= + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + integrity(3) md5-DES-CBC(1)} + +sum64-DES-CBC OBJECT IDENTIFIER ::= + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + integrity(3) sum64-DES-CBC(2)} + +spkm-1 OBJECT IDENTIFIER ::= + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) spkm(1) spkm-1(1)} + +spkm-2 OBJECT IDENTIFIER ::= + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) spkm(1) spkm-2(2)} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn b/lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn new file mode 100644 index 0000000000..8f033eab6f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Style-Descriptors.asn @@ -0,0 +1,190 @@ +-- Module Style-Descriptors (T.415:03/1993) + +Style-Descriptors {2 8 1 5 10} DEFINITIONS ::= +BEGIN + +EXPORTS + Presentation-Style-Descriptor, Presentation-Attributes, Content-Type, + Content-Architecture-Class, Layout-Style-Descriptor, Fill-Order, + Block-Alignment; + +IMPORTS + Object-or-Class-Identifier, Style-Identifier, Category-Name, + Object-Id-Expression + FROM Identifiers-and-Expressions -- see 7.8 + + Comment-String, Transparency, Colour, Border, Layout-Object-Type, + Content-Background-Colour, Content-Foreground-Colour, Sealed + FROM Layout-Descriptors -- see 7.9 + + Colour-Expression, Colour-Table + FROM Colour-Attributes -- see 7.14 + + Character-Attributes + FROM Character-Presentation-Attributes {2 8 1 6 2 + } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6 + Raster-Graphics-Attributes + FROM Raster-Gr-Presentation-Attributes {2 8 1 7 2 + } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7 + Geometric-Graphics-Attributes + FROM Geo-Gr-Presentation-Attributes {2 8 1 8 2}; -- see ITU-T Rec. T.418 | ISO/IEC 8613-8 + +Presentation-Style-Descriptor ::= SET { + style-identifier Style-Identifier, + user-readable-comments [0] IMPLICIT Comment-String OPTIONAL, + user-visible-name [1] IMPLICIT Comment-String OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + transparency [2] IMPLICIT Transparency OPTIONAL, + presentation-attributes [3] IMPLICIT Presentation-Attributes OPTIONAL, + colour [4] IMPLICIT Colour OPTIONAL, + colour-of-layout-object [29] Colour-Expression OPTIONAL, + object-colour-table [30] IMPLICIT Colour-Table OPTIONAL, + content-background-colour [31] Content-Background-Colour OPTIONAL, + content-foreground-colour [32] Content-Foreground-Colour OPTIONAL, + content-colour-table [33] IMPLICIT Colour-Table OPTIONAL, + border [5] IMPLICIT Border OPTIONAL, + sealed [6] IMPLICIT Sealed OPTIONAL, + derived-from [7] IMPLICIT Style-Identifier OPTIONAL +} + +Presentation-Attributes ::= SET { + content-architecture-class + CHOICE {a Content-Architecture-Class, + b Content-Type} OPTIONAL, + character-attributes [0] IMPLICIT Character-Attributes OPTIONAL, + raster-graphics-attributes + [1] IMPLICIT Raster-Graphics-Attributes OPTIONAL, + geometric-graphics-attributes + [2] IMPLICIT Geometric-Graphics-Attributes OPTIONAL, + -- the following tags are reserved for additional types + -- of presentation attributes: + -- [3] videotex, for use in conjunction with CCITT Recommendations + -- [4] audio + -- [5] dynamic-graphics + ext-cont-arch-pres-attributes [6] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL +} + +Content-Type ::= [APPLICATION 2] IMPLICIT INTEGER {formatted-raster-graphics(1) +} + +-- The integer representation for content architecture class, +-- Content-Type, is only to be used if the value of the document +-- profile attribute "document application profile" is an integer. +-- The value 'formatted-raster-graphics' represents the formatted raster +-- graphics content architecture as defined in ITU-T Rec. T.417 | ISO/IEC 8613-7. +Content-Architecture-Class ::= OBJECT IDENTIFIER + +Layout-Style-Descriptor ::= SET { + style-identifier Style-Identifier, + user-readable-comments [0] IMPLICIT Comment-String OPTIONAL, + user-visible-name [1] IMPLICIT Comment-String OPTIONAL, + application-comments [25] IMPLICIT OCTET STRING OPTIONAL, + layout-directives [4] IMPLICIT Layout-Directives OPTIONAL, + sealed [6] IMPLICIT Sealed OPTIONAL, + derived-from [7] IMPLICIT Style-Identifier OPTIONAL +} + +Layout-Directives ::= SET { + indivisibility + CHOICE {to-layout-object-class [0] IMPLICIT Object-or-Class-Identifier, + to-layout-category [1] IMPLICIT Category-Name, + to-layout-object-type [2] IMPLICIT Layout-Object-Type, + null [15] IMPLICIT NULL} OPTIONAL, + separation [3] IMPLICIT Separation OPTIONAL, + offset [4] IMPLICIT Offset OPTIONAL, + fill-order [5] IMPLICIT Fill-Order OPTIONAL, + concatenation [6] IMPLICIT Concatenation OPTIONAL, + new-layout-object + CHOICE {to-layout-object-class [7] IMPLICIT Object-or-Class-Identifier, + to-layout-category [8] IMPLICIT Category-Name, + to-layout-object-type [9] IMPLICIT Layout-Object-Type, + null [16] IMPLICIT NULL} OPTIONAL, + same-layout-object [10] IMPLICIT Same-Layout-Object OPTIONAL, + layout-object-class + [11] IMPLICIT Object-or-Class-Identifier OPTIONAL, + logical-stream-category [19] IMPLICIT Category-Name OPTIONAL, + logical-stream-sub-category [20] IMPLICIT Category-Name OPTIONAL, + layout-category [12] IMPLICIT Category-Name OPTIONAL, + synchronization + CHOICE {a [13] IMPLICIT Object-or-Class-Identifier, + b [17] Object-Id-Expression, + c [18] IMPLICIT NULL} OPTIONAL, + block-alignment [14] IMPLICIT Block-Alignment OPTIONAL, + floatability-range [24] IMPLICIT Floatability-Range OPTIONAL +} + +Separation ::= SET { + leading [0] IMPLICIT INTEGER OPTIONAL, + trailing [1] IMPLICIT INTEGER OPTIONAL, + centre [2] IMPLICIT INTEGER OPTIONAL +} + +Offset ::= SET { + leading [3] IMPLICIT INTEGER OPTIONAL, + trailing [2] IMPLICIT INTEGER OPTIONAL, + left-hand [1] IMPLICIT INTEGER OPTIONAL, + right-hand [0] IMPLICIT INTEGER OPTIONAL +} + +Fill-Order ::= INTEGER {normal(0), reverse(1)} + +Concatenation ::= INTEGER {non-concatenated(0), concatenated(1)} + +Same-Layout-Object ::= SET { + logical-object + CHOICE {a [0] IMPLICIT Object-or-Class-Identifier, + b [4] Object-Id-Expression, + c [5] IMPLICIT NULL}, + layout-object + CHOICE {d [1] IMPLICIT Object-or-Class-Identifier, + to-stream-root-category [6] IMPLICIT Category-Name, + to-stream-sub-category [7] IMPLICIT Category-Name, + to-layout-category [2] IMPLICIT Category-Name, + e [3] IMPLICIT Layout-Object-Type} OPTIONAL +} + +Floatability-Range ::= SET { + forward-limit + [0] SEQUENCE {logical-object + CHOICE {a [2] IMPLICIT Object-or-Class-Identifier, + b [3] Object-Id-Expression, + c [4] IMPLICIT NULL}, + layout-object + CHOICE {to-layout-object-class + [5] IMPLICIT Object-or-Class-Identifier, + to-stream-root-category + [6] IMPLICIT Category-Name, + to-stream-sub-category + [7] IMPLICIT Category-Name, + to-layout-category + [8] IMPLICIT Category-Name, + to-layout-object-type + [9] IMPLICIT Layout-Object-Type, + d [10] IMPLICIT NULL + } OPTIONAL} OPTIONAL, + backward-limit + [1] SEQUENCE {logical-object + CHOICE {e [2] IMPLICIT Object-or-Class-Identifier, + f [3] Object-Id-Expression, + g [4] IMPLICIT NULL}, + layout-object + CHOICE {to-layout-object-class + [5] IMPLICIT Object-or-Class-Identifier, + to-stream-root-category + [6] IMPLICIT Category-Name, + to-stream-sub-category + [7] IMPLICIT Category-Name, + to-layout-category + [8] IMPLICIT Category-Name, + to-layout-object-type + [9] IMPLICIT Layout-Object-Type, + h [10] IMPLICIT NULL + } OPTIONAL} OPTIONAL +} + +Block-Alignment ::= INTEGER {right-hand(0), left-hand(1), centred(2), null(3)} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn b/lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn new file mode 100644 index 0000000000..bfcd0b5dbc --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Subprofiles.asn @@ -0,0 +1,96 @@ +-- Module Subprofiles (T.422:08/1995) + +Subprofiles {2 8 1 12 2} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS Subprofile-Descriptor, Subprofile-Identifier; + +IMPORTS + Character-Data, Date-and-Time, Document-Reference, Personal-Name, + Originators, Other-User-Information, Local-File-References, + Security-Information + FROM Document-Profile-Descriptor {2 8 1 5 6} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 + Location-Expression + FROM Location-Expressions {2 8 1 12 0}; + +Subprofile-Descriptor ::= SET { + subprofile-identifier [0] Subprofile-Identifier, + subprofile-reference [1] Subprofile-Reference OPTIONAL, + subprofile-precedence [2] INTEGER OPTIONAL, + document-fragment-reference [3] Location-Expression, + content-architecture-classes + [4] SET OF OBJECT IDENTIFIER OPTIONAL, -- shall always + + -- be present, except when used in a location expression + document-fragment-management-attributes + [5] Document-Fragment-Management-Attributes OPTIONAL +} + +Subprofile-Identifier ::= [APPLICATION 8] PrintableString + +-- only digits and spaces are used in the present version of this Specification; +-- other characters are reserved for extensions +Subprofile-Reference ::= CHOICE { + unique-reference [0] OBJECT IDENTIFIER, + descriptive-reference [1] Character-Data +} + +Document-Fragment-Management-Attributes ::= SET { + document-fragment-description [0] Document-Fragment-Description OPTIONAL, + dates-and-times [1] Dates-and-Times OPTIONAL, + originators [2] Originators OPTIONAL, + other-user-information [3] Other-User-Information OPTIONAL, + external-references [4] External-References2 OPTIONAL, + local-file-references [5] Local-File-References OPTIONAL, + languages [6] SET OF Character-Data OPTIONAL, + security-information [7] Security-Information OPTIONAL +} + +Document-Fragment-Description ::= SET { + title [0] Character-Data OPTIONAL, + subject [1] Character-Data OPTIONAL, + document-fragment-type [2] Character-Data OPTIONAL, + abstract [3] Character-Data OPTIONAL, + keywords [4] SET OF Character-Data OPTIONAL +} + +Dates-and-Times ::= SET { + document-fragment-date-and-time [0] Date-and-Time OPTIONAL, + creation-date-and-time [1] Date-and-Time OPTIONAL, + local-filing-date-and-time [2] SEQUENCE OF Date-and-Time OPTIONAL, + expiry-date-and-time [3] Date-and-Time OPTIONAL, + start-date-and-time [4] Date-and-Time OPTIONAL, + purge-date-and-time [5] Date-and-Time OPTIONAL, + release-date-and-time [6] Date-and-Time OPTIONAL, + revision-history + [7] SEQUENCE OF + SET {revision-date-and-time [0] Date-and-Time OPTIONAL, + version-identifier [1] Character-Data OPTIONAL, + revisers + [2] SET OF + SET {names [0] SET OF Personal-Name OPTIONAL, + position [1] Character-Data OPTIONAL, + organization [2] Character-Data OPTIONAL + } OPTIONAL, + version-reference + [3] Document-or-Document-Fragment-Reference OPTIONAL, + user-comments [4] Character-Data OPTIONAL} OPTIONAL +} + +External-References2 ::= SET { + references-to-other-documents-or-document-fragments + [0] SET OF Document-or-Document-Fragment-Reference OPTIONAL, + superseded-documents-or-document-fragments + [1] SET OF Document-or-Document-Fragment-Reference OPTIONAL +} + +Document-or-Document-Fragment-Reference ::= CHOICE { + document [0] Document-Reference, + document-fragment [1] Subprofile-Reference +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn b/lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn new file mode 100644 index 0000000000..9633995e3b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Temporal-Relationships.asn @@ -0,0 +1,92 @@ +-- Module Temporal-Relationships (T.424:07/1996) + +Temporal-Relationships {2 8 1 14 0} DEFINITIONS ::= +BEGIN + +EXPORTS + Temporal-Relations, Presentation-Time, Document-Presentation-Time, + Time-Scaling; + +IMPORTS + Date-and-Time + FROM Document-Profile-Descriptor {2 8 1 5 6} + -- see ITU-T Rec. T.415 | ISO/IEC 8613-5 and C.4 + Object-or-Class-Identifier + FROM Identifiers-and-Expressions {2 8 1 5 7}; + +-- see ITU-T Rec. T.415 | ISO/IEC 8613-5 +Temporal-Relations ::= SET { + synchronization-type [0] IMPLICIT Synchronization-Type, + subordinate-nodes + [1] SEQUENCE OF + SET {node-identifier [0] IMPLICIT Node-Identifier, + start-time [1] IMPLICIT Time-Delay OPTIONAL, + duration [2] Indefinite-or-Time-Delay OPTIONAL, + cyclic [3] IMPLICIT Cyclic OPTIONAL, + end-time [4] IMPLICIT Time-Delay OPTIONAL, + application-comments [5] IMPLICIT OCTET STRING OPTIONAL + } +} + +-- The value 'null' is represented by an empty set +Synchronization-Type ::= INTEGER { + parallel-last(0), parallel-first(1), parallel-selective(2), sequential(3) +} + +Node-Identifier ::= PrintableString + +-- only digits and spaces are used +-- the first digit is either 2 for a logical object class or 3 for a logical object +Cyclic ::= SET { + number-of-cycles [0] CHOICE {indefinite Indefinite, + a INTEGER}, + cycle-start-time [1] IMPLICIT Time-Delay OPTIONAL, + cycle-duration [2] Indefinite-or-Time-Delay OPTIONAL +} + +Indefinite ::= NULL + +Time-Delay ::= INTEGER {indefinite(-1)} + +Presentation-Time ::= SET { + timing + CHOICE {fixed-timing [0] IMPLICIT INTEGER, + variable-timing [1] IMPLICIT Time-Spec} OPTIONAL, + duration + CHOICE {fixed-duration + [2] CHOICE {indefinite-or-time-delay Indefinite-or-Time-Delay, + object-or-class-identifier + Object-or-Class-Identifier}, + rule-A [3] IMPLICIT Rule-Spec, + rule-B [4] IMPLICIT Rule-Spec} OPTIONAL, + cyclic [5] Cyclic OPTIONAL +} + +-- The value 'null' is represented by an empty set +Time-Spec ::= SET { + start-offset [0] IMPLICIT INTEGER OPTIONAL, + end-offset [1] IMPLICIT INTEGER OPTIONAL, + start-separation [2] IMPLICIT INTEGER OPTIONAL, + end-separation [3] IMPLICIT INTEGER OPTIONAL +} + +Rule-Spec ::= SET { + minimum-duration [0] IMPLICIT INTEGER OPTIONAL, + maximum-duration [1] IMPLICIT INTEGER OPTIONAL +} + +Indefinite-or-Time-Delay ::= CHOICE { + indefinite [0] IMPLICIT NULL, + fixed [1] Time-Delay +} + +Document-Presentation-Time ::= Date-and-Time + +Time-Scaling ::= [0] IMPLICIT SEQUENCE {a INTEGER, + b INTEGER +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn b/lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn new file mode 100644 index 0000000000..ccc64a52f5 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Text-Units.asn @@ -0,0 +1,72 @@ +-- Module Text-Units (T.415:03/1993) + +Text-Units {2 8 1 5 12} DEFINITIONS ::= +BEGIN + +EXPORTS Text-Unit, Type-Of-Coding; + +IMPORTS + Content-Portion-Identifier + FROM Identifiers-and-Expressions -- see 7.8 + + Character-Coding-Attributes + FROM Character-Coding-Attributes {2 8 1 6 3 + } -- see ITU-T Rec. T.416 | ISO/IEC 8613-6 + Raster-Gr-Coding-Attributes + FROM Raster-Gr-Coding-Attributes {2 8 1 7 3 + } -- see ITU-T Rec. T.417 | ISO/IEC 8613-7 + Geo-Gr-Coding-Attributes + FROM Geo-Gr-Coding-Attributes {2 8 1 8 3 + } -- see ITU-T Rec. T.418 | ISO/IEC 8613-8 + Videotex-Coding-Attributes + FROM Videotex-Coding-Attributes ; + +Text-Unit ::= SEQUENCE { + content-portion-attributes Content-Portion-Attributes OPTIONAL, + content-information Content-Information OPTIONAL +} + +Content-Portion-Attributes ::= SET { + content-identifier-layout Content-Portion-Identifier OPTIONAL, + content-identifier-logical [4] IMPLICIT Content-Portion-Identifier OPTIONAL, + type-of-coding Type-Of-Coding OPTIONAL, + coding-attributes + CHOICE {character-coding-attributes + [1] IMPLICIT Character-Coding-Attributes, + raster-gr-coding-attributes + [2] IMPLICIT Raster-Gr-Coding-Attributes, + geo-gr-coding-attributes + [7] IMPLICIT Geo-Gr-Coding-Attributes, + videotex-coding-attributes + [8] IMPLICIT Videotex-Coding-Attributes, + -- the use of the data item "videotex-coding-attributes" is applicable to + -- ITU-T Rec. T.410 Series only + -- the following tags are reserved for additional types + -- of coding attributes: + -- [9] audio + -- [10] dynamic-graphics + ext-cont-arch-coding-attributes [11] IMPLICIT EXTERNAL} OPTIONAL, + alternative-representation [3] IMPLICIT Alternative-Representation OPTIONAL +} + +Content-Information ::= CHOICE { + content OCTET STRING, + tiled-content Tiled-Content +} + +Tiled-Content ::= SEQUENCE OF OCTET STRING + +Type-Of-Coding ::= CHOICE { + a [0] IMPLICIT INTEGER {t6(1)}, + b [6] IMPLICIT OBJECT IDENTIFIER +} + +Alternative-Representation ::= OCTET STRING + +-- string of characters from the sets designated by the document +-- profile attribute "alternative representation character sets", +-- plus carriage return and line feed +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn b/lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn new file mode 100644 index 0000000000..c97c83a569 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/UpperBounds.asn @@ -0,0 +1,89 @@ +-- Module UpperBounds (X.520:08/1997) + +UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 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. +ub-answerback INTEGER ::= +8 + +ub-business-category INTEGER ::= 128 + +ub-common-name INTEGER ::= 64 + +ub-country-code INTEGER ::= 4 + +ub-description INTEGER ::= 1024 + +ub-destination-indicator INTEGER ::= 128 + +ub-directory-string-first-component-match INTEGER ::= 32768 + +ub-international-isdn-number INTEGER ::= 16 + +ub-knowledge-information INTEGER ::= 32768 + +ub-locality-name INTEGER ::= 128 + +ub-match INTEGER ::= 128 + +ub-name INTEGER ::= 64 + +ub-organization-name INTEGER ::= 64 + +ub-organizational-unit-name INTEGER ::= 64 + +ub-physical-office-name INTEGER ::= 128 + +ub-post-office-box INTEGER ::= 40 + +ub-postal-code INTEGER ::= 40 + +ub-postal-line INTEGER ::= 6 + +ub-postal-string INTEGER ::= 30 + +ub-privacy-mark-length INTEGER ::= 128 + +ub-schema INTEGER ::= 1024 + +ub-search INTEGER ::= 17 --This definition is missing; to be provided -- + +ub-serial-number INTEGER ::= 64 + +ub-state-name INTEGER ::= 128 + +ub-street-address INTEGER ::= 128 + +ub-surname INTEGER ::= 64 + +ub-tag INTEGER ::= 64 + +ub-telephone-number INTEGER ::= 32 + +ub-teletex-terminal-id INTEGER ::= 1024 + +ub-telex-number INTEGER ::= 14 + +ub-title INTEGER ::= 64 + +ub-user-password INTEGER ::= 128 + +ub-x121-address INTEGER ::= 15 + +ub-localeContextSyntax INTEGER ::= 128 + +ub-locale-context-syntax INTEGER ::= 64 + +ub-pseudonym INTEGER ::= 128 + +ub-content INTEGER ::= 32768 + +END -- UpperBounds + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn b/lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn new file mode 100644 index 0000000000..d9601bb7d0 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/UsefulDefinitions.asn @@ -0,0 +1,238 @@ +-- Module UsefulDefinitions (X.501:08/1997) +UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 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. +ID ::= OBJECT IDENTIFIER + +ds ID ::= {joint-iso-itu-t ds(5)} + +-- categories of information object +module ID ::= {ds 1} + +serviceElement ID ::= {ds 2} + +applicationContext ID ::= {ds 3} + +attributeType ID ::= {ds 4} + +attributeSyntax ID ::= {ds 5} + +objectClass ID ::= {ds 6} + +-- attributeSet ID ::= {ds 7} +algorithm ID ::= {ds 8} + +abstractSyntax ID ::= {ds 9} + +-- object ID ::= {ds 10} +-- port ID ::= {ds 11} +dsaOperationalAttribute ID ::= + {ds 12} + +matchingRule ID ::= {ds 13} + +knowledgeMatchingRule ID ::= {ds 14} + +nameForm ID ::= {ds 15} + +group ID ::= {ds 16} + +subentry ID ::= {ds 17} + +operationalAttributeType ID ::= {ds 18} + +operationalBinding ID ::= {ds 19} + +schemaObjectClass ID ::= {ds 20} + +schemaOperationalAttribute ID ::= {ds 21} + +administrativeRoles ID ::= {ds 23} + +accessControlAttribute ID ::= {ds 24} + +rosObject ID ::= {ds 25} + +contract ID ::= {ds 26} + +package ID ::= {ds 27} + +accessControlSchemes ID ::= {ds 28} + +certificateExtension ID ::= {ds 29} + +managementObject ID ::= {ds 30} + +attributeValueContext ID ::= {ds 31} + +-- securityExchange ID ::= {ds 32} +idmProtocol ID ::= {ds 33} + +problem ID ::= {ds 34} + +notification ID ::= {ds 35} + +matchingRestriction ID ::= + {ds 36} -- None are currently defined by this specification + +controlAttributeType ID ::= {ds 37} + +-- modules +usefulDefinitions ID ::= {module usefulDefinitions(0) 3} + +informationFramework ID ::= {module informationFramework(1) 3} + +directoryAbstractService ID ::= {module directoryAbstractService(2) 3} + +distributedOperations ID ::= {module distributedOperations(3) 3} + +protocolObjectIdentifiers ID ::= {module protocolObjectIdentifiers(4) 3} + +selectedAttributeTypes ID ::= {module selectedAttributeTypes(5) 3} + +selectedObjectClasses ID ::= {module selectedObjectClasses(6) 3} + +authenticationFramework ID ::= {module authenticationFramework(7) 3} + +algorithmObjectIdentifiers ID ::= {module algorithmObjectIdentifiers(8) 3} + +directoryObjectIdentifiers ID ::= {module directoryObjectIdentifiers(9) 3} + +upperBounds ID ::= {module upperBounds(10) 3} + +dap ID ::= {module dap(11) 3} + +dsp ID ::= {module dsp(12) 3} + +distributedDirectoryOIDs ID ::= {module distributedDirectoryOIDs(13) 3} + +directoryShadowOIDs ID ::= {module directoryShadowOIDs(14) 3} + +directoryShadowAbstractService ID ::= + {module directoryShadowAbstractService(15) 3} + +disp ID ::= {module disp(16) 3} + +dop ID ::= {module dop(17) 3} + +opBindingManagement ID ::= {module opBindingManagement(18) 3} + +opBindingOIDs ID ::= {module opBindingOIDs(19) 3} + +hierarchicalOperationalBindings ID ::= + {module hierarchicalOperationalBindings(20) 3} + +dsaOperationalAttributeTypes ID ::= {module dsaOperationalAttributeTypes(22) 3} + +schemaAdministration ID ::= {module schemaAdministration(23) 3} + +basicAccessControl ID ::= {module basicAccessControl(24) 3} + +directoryOperationalBindingTypes ID ::= + {module directoryOperationalBindingTypes(25) 3} + +certificateExtensions ID ::= {module certificateExtensions(26) 0} + +directoryManagement ID ::= {module directoryManagement(27) 1} + +enhancedSecurity ID ::= {module enhancedSecurity(28) 1} + +iDMProtocolSpecification ID ::= {module iDMProtocolSpecification(30) 4} + +directoryIDMProtocols ID ::= {module directoryIDMProtocols(31) 4} + +-- directorySecurityExchanges ID ::= {module directorySecurityExchanges (29) 1} +-- synonyms +id-oc ID ::= + objectClass + +id-at ID ::= attributeType + +id-as ID ::= abstractSyntax + +id-mr ID ::= matchingRule + +id-nf ID ::= nameForm + +id-sc ID ::= subentry + +id-oa ID ::= operationalAttributeType + +id-ob ID ::= operationalBinding + +id-doa ID ::= dsaOperationalAttribute + +id-kmr ID ::= knowledgeMatchingRule + +id-soc ID ::= schemaObjectClass + +id-soa ID ::= schemaOperationalAttribute + +id-ar ID ::= administrativeRoles + +id-aca ID ::= accessControlAttribute + +id-ac ID ::= applicationContext + +id-rosObject ID ::= rosObject + +id-contract ID ::= contract + +id-package ID ::= package + +id-acScheme ID ::= accessControlSchemes + +id-ce ID ::= certificateExtension + +id-mgt ID ::= managementObject + +id-idm ID ::= idmProtocol + +id-avc ID ::= attributeValueContext + +-- id-se ID ::= securityExchange +id-pr ID ::= problem + +id-not ID ::= notification + +id-mre ID ::= matchingRestriction + +id-cat ID ::= controlAttributeType + +-- obsolete module identifiers +-- usefulDefinition ID ::= {module 0} +-- informationFramework ID ::= {module 1} +-- directoryAbstractService ID ::= {module 2} +-- distributedOperations ID ::= {module 3} +-- protocolObjectIdentifiers ID ::= {module 4} +-- selectedAttributeTypes ID ::= {module 5} +-- selectedObjectClasses ID ::= {module 6} +-- authenticationFramework ID ::= {module 7} +-- algorithmObjectIdentifiers ID ::= {module 8} +-- directoryObjectIdentifiers ID ::= {module 9} +-- upperBounds ID ::= {module 10} +-- dap ID ::= {module 11} +-- dsp ID ::= {module 12} +-- distributedDirectoryObjectIdentifiers ID ::= {module 13} +-- unused module identifiers +-- directoryShadowOIDs ID ::= {module 14} +-- directoryShadowAbstractService ID ::= {module 15} +-- disp ID ::= {module 16} +-- dop ID ::= {module 17} +-- opBindingManagement ID ::= {module 18} +-- opBindingOIDs ID ::= {module 19} +-- hierarchicalOperationalBindings ID ::= {module 20} +-- dsaOperationalAttributeTypes ID ::= {module 22} +-- schemaAdministration ID ::= {module 23} +-- basicAccessControl ID ::= {module 24} +-- operationalBindingOIDs ID ::= {module 25} +END -- UsefulDefinitions + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn b/lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn new file mode 100644 index 0000000000..18e51cbc0d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/x420/Videotex-Coding-Attributes.asn @@ -0,0 +1,30 @@ +-- Module Videotex-Coding-Attributes (T.101:11/1994) +Videotex-Coding-Attributes DEFINITIONS ::= +BEGIN + +EXPORTS Videotex-Coding-Attributes; + +Videotex-Coding-Attributes ::= SET { + subset [0] IMPLICIT Subset OPTIONAL, + rank [1] IMPLICIT Rank OPTIONAL, + profile [2] IMPLICIT Profile OPTIONAL +} + +Subset ::= INTEGER { + undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5), profile1(81), + profile2(82), profile3(83), profile4(84), profileX1-1(85), profileX1-2(86), + profileX1-3(87), profileX1-4(88), profileX2-1(89), profileX2-2(90), + profileX2-3(91), profileX2-4(92)} + +Rank ::= INTEGER { + undefined(0), rank1(1), rank2(2), rank3(3), rank4(4), rank5(5)} + +Profile ::= INTEGER { + undefined(0), profile1(81), profile2(82), profile3(83), profile4(84), + profileX1-1(85), profileX1-2(86), profileX1-3(87), profileX1-4(88), + profileX2-1(89), profileX2-2(90), profileX2-3(91), profileX2-4(92)} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + |