diff options
Diffstat (limited to 'lib/asn1/test/asn1_SUITE_data/rfcs')
122 files changed, 32071 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/ACSE-1.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/ACSE-1.asn1 new file mode 100644 index 0000000000..3f1385323a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/ACSE-1.asn1 @@ -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/rfcs/AlgorithmInformation-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/AlgorithmInformation-2009.asn1 new file mode 100644 index 0000000000..f912966c72 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/AlgorithmInformation-2009.asn1 @@ -0,0 +1,466 @@ +AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + +DEFINITIONS EXPLICIT TAGS ::= +BEGIN +EXPORTS ALL; +IMPORTS + +KeyUsage +FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-implicit-02(59)} ; + +-- Suggested prefixes for algorithm objects are: +-- +-- mda- Message Digest Algorithms +-- sa- Signature Algorithms +-- kta- Key Transport Algorithms (Asymmetric) +-- kaa- Key Agreement Algorithms (Asymmetric) +-- kwa- Key Wrap Algorithms (Symmetric) +-- kda- Key Derivation Algorithms +-- maca- Message Authentication Code Algorithms +-- pk- Public Key +-- cea- Content (symmetric) Encryption Algorithms +-- cap- S/MIME Capabilities + +ParamOptions ::= ENUMERATED { + required, -- Parameters MUST be encoded in structure + preferredPresent, -- Parameters SHOULD be encoded in structure + preferredAbsent, -- Parameters SHOULD NOT be encoded in structure + absent, -- Parameters MUST NOT be encoded in structure + inheritable, -- Parameters are inherited if not present + optional, -- Parameters MAY be encoded in the structure + ... +} + +-- DIGEST-ALGORITHM +-- +-- Describes the basic information for ASN.1 and a digest +-- algorithm. +-- +-- &id - contains the OID identifying the digest algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- +-- Additional information such as the length of the hash could have +-- been encoded. Without a clear understanding of what information +-- is needed by applications, such extraneous information was not +-- considered to be of sufficent importance. +-- +-- Example: +-- mda-sha1 DIGEST-ALGORITHM ::= { +-- IDENTIFIER id-sha1 +-- PARAMS TYPE NULL ARE preferredAbsent +-- } + +DIGEST-ALGORITHM ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence ] +} + +-- SIGNATURE-ALGORITHM +-- +-- Describes the basic properties of a signature algorithm +-- +-- &id - contains the OID identifying the signature algorithm +-- &Value - contains a type definition for the value structure of +-- the signature; if absent, implies that no ASN.1 +-- encoding is performed on the value +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &HashSet - The set of hash algorithms used with this +-- signature algorithm +-- &PublicKeySet - the set of public key algorithms for this +-- signature algorithm +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Example: +-- sig-RSA-PSS SIGNATURE-ALGORITHM ::= { +-- IDENTIFIER id-RSASSA-PSS +-- PARAMS TYPE RSASSA-PSS-params ARE required +-- HASHES { mda-sha1 | mda-md5, ... } +-- PUBLIC-KEYS { pk-rsa | pk-rsa-pss } +-- } + +SIGNATURE-ALGORITHM ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Value OPTIONAL, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &HashSet DIGEST-ALGORITHM OPTIONAL, + &PublicKeySet PUBLIC-KEY OPTIONAL, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [VALUE &Value] + [PARAMS [TYPE &Params] ARE ¶mPresence ] + [HASHES &HashSet] + [PUBLIC-KEYS &PublicKeySet] + [SMIME-CAPS &smimeCaps] +} + +-- PUBLIC-KEY +-- +-- Describes the basic properties of a public key +-- +-- &id - contains the OID identifying the public key +-- &KeyValue - contains the type for the key value +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &keyUsage - contains the set of bits that are legal for this +-- key type. Note that is does not make any statement +-- about how bits may be paired. +-- &PrivateKey - contains a type structure for encoding the private +-- key information. +-- +-- Example: +-- pk-rsa-pss PUBLIC-KEY ::= { +-- IDENTIFIER id-RSASSA-PSS +-- KEY RSAPublicKey +-- PARAMS TYPE RSASSA-PSS-params ARE optional +-- CERT-KEY-USAGE { .... } +-- } + +PUBLIC-KEY ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &KeyValue OPTIONAL, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &keyUsage KeyUsage OPTIONAL, + &PrivateKey OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [KEY &KeyValue] + [PARAMS [TYPE &Params] ARE ¶mPresence] + [CERT-KEY-USAGE &keyUsage] + [PRIVATE-KEY &PrivateKey] +} + +-- KEY-TRANSPORT +-- +-- Describes the basic properties of a key transport algorithm +-- +-- &id - contains the OID identifying the key transport algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &PublicKeySet - specifies which public keys are used with +-- this algorithm +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Example: +-- kta-rsaTransport KEY-TRANSPORT ::= { +-- IDENTIFIER &id +-- PARAMS TYPE NULL ARE required +-- PUBLIC-KEYS { pk-rsa | pk-rsa-pss } +-- } + +KEY-TRANSPORT ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &PublicKeySet PUBLIC-KEY OPTIONAL, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + [PUBLIC-KEYS &PublicKeySet] + [SMIME-CAPS &smimeCaps] +} + +-- KEY-AGREE +-- +-- Describes the basic properties of a key agreement algorithm +-- +-- &id - contains the OID identifying the key agreement algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &PublicKeySet - specifies which public keys are used with +-- this algorithm +-- &Ukm - type of user keying material used +-- &ukmPresence - specifies the requirements to define the UKM field +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Example: +-- kaa-dh-static-ephemeral KEY-AGREE ::= { +-- IDENTIFIER id-alg-ESDH +-- PARAMS TYPE KeyWrapAlgorithm ARE required +-- PUBLIC-KEYS { +-- {IDENTIFIER dh-public-number KEY DHPublicKey +-- PARAMS TYPE DHDomainParameters ARE inheritable } +-- } +-- - - UKM should be present but is not separately ASN.1-encoded +-- UKM ARE preferredPresent +-- } + +KEY-AGREE ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &PublicKeySet PUBLIC-KEY OPTIONAL, + &Ukm OPTIONAL, + &ukmPresence ParamOptions DEFAULT absent, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + [PUBLIC-KEYS &PublicKeySet] + [UKM [TYPE &Ukm] ARE &ukmPresence] + [SMIME-CAPS &smimeCaps] +} + +-- KEY-WRAP +-- +-- Describes the basic properties of a key wrap algorithm +-- +-- &id - contains the OID identifying the key wrap algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Example: +-- kwa-cms3DESwrap KEY-WRAP ::= { +-- IDENTIFIER id-alg-CMS3DESwrap +-- PARAMS TYPE NULL ARE required +-- } + +KEY-WRAP ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + [SMIME-CAPS &smimeCaps] +} +-- KEY-DERIVATION +-- +-- Describes the basic properties of a key derivation algorithm +-- +-- &id - contains the OID identifying the key derivation algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Example: +-- kda-pbkdf2 KEY-DERIVATION ::= { +-- IDENTIFIER id-PBKDF2 +-- PARAMS TYPE PBKDF2-params ARE required +-- } + +KEY-DERIVATION ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + [SMIME-CAPS &smimeCaps] +} + +-- MAC-ALGORITHM +-- +-- Describes the basic properties of a message +-- authentication code (MAC) algorithm +-- +-- &id - contains the OID identifying the MAC algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &keyed - MAC algorithm is a keyed MAC algorithm +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Some parameters that perhaps should have been added would be +-- fields with the minimum and maximum MAC lengths for +-- those MAC algorithms that allow truncations. +-- +-- Example: +-- maca-hmac-sha1 MAC-ALGORITHM ::= { +-- IDENTIFIER hMAC-SHA1 +-- PARAMS TYPE NULL ARE preferredAbsent +-- IS KEYED MAC TRUE +-- SMIME-CAPS {IDENTIFIED BY hMAC-SHA1} +-- } + +MAC-ALGORITHM ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &keyed BOOLEAN, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + IS-KEYED-MAC &keyed + [SMIME-CAPS &smimeCaps] +} + +-- CONTENT-ENCRYPTION +-- +-- Describes the basic properties of a content encryption +-- algorithm +-- +-- &id - contains the OID identifying the content +-- encryption algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- Example: +-- cea-3DES-cbc CONTENT-ENCRYPTION ::= { +-- IDENTIFIER des-ede3-cbc +-- PARAMS TYPE IV ARE required +-- SMIME-CAPS { IDENTIFIED BY des-ede3-cbc } +-- } + +CONTENT-ENCRYPTION ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + [SMIME-CAPS &smimeCaps] +} + +-- ALGORITHM +-- +-- Describes a generic algorithm identifier +-- +-- &id - contains the OID identifying the algorithm +-- &Params - if present, contains the type for the algorithm +-- parameters; if absent, implies no parameters +-- ¶mPresence - parameter presence requirement +-- &smimeCaps - contains the object describing how the S/MIME +-- capabilities are presented. +-- +-- This would be used for cases where an algorithm of an unknown +-- type is used. In general however, one should either define +-- a more complete algorithm structure (such as the one above) +-- or use the TYPE-IDENTIFIER class. + +ALGORITHM ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Params OPTIONAL, + ¶mPresence ParamOptions DEFAULT absent, + &smimeCaps SMIME-CAPS OPTIONAL +} WITH SYNTAX { + IDENTIFIER &id + [PARAMS [TYPE &Params] ARE ¶mPresence] + [SMIME-CAPS &smimeCaps] +} + +-- AlgorithmIdentifier +-- +-- Provides the generic structure that is used to encode algorithm +-- identification and the parameters associated with the +-- algorithm. +-- +-- The first parameter represents the type of the algorithm being +-- used. +-- The second parameter represents an object set containing the +-- algorithms that may occur in this situation. +-- The initial list of required algorithms should occur to the +-- left of an extension marker; all other algorithms should +-- occur to the right of an extension marker. +-- +-- The object class ALGORITHM can be used for generic unspecified +-- items. +-- If new ALGORITHM classes are defined, the fields &id and &Params +-- need to be present as fields in the object in order to use +-- this parameterized type. +-- +-- Example: +-- SignatureAlgorithmIdentifier ::= +-- AlgorithmIdentifier{SIGNATURE-ALGORITHM, {SignatureAlgSet}} + +AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::= + SEQUENCE { + algorithm ALGORITHM-TYPE.&id({AlgorithmSet}), + parameters ALGORITHM-TYPE. + &Params({AlgorithmSet}{@algorithm}) OPTIONAL + } + +-- S/MIME Capabilities +-- +-- We have moved the SMIME-CAPS from the module for RFC 3851 to here +-- because it is used in RFC 4262 (X.509 Certificate Extension for +-- S/MIME Capabilities) +-- +-- +-- This class is used to represent an S/MIME capability. S/MIME +-- capabilities are used to represent what algorithm capabilities +-- an individual has. The classic example was the content encryption +-- algorithm RC2 where the algorithm id and the RC2 key lengths +-- supported needed to be advertised, but the IV used is not fixed. +-- Thus, for RC2 we used +-- +-- cap-RC2CBC SMIME-CAPS ::= { +-- TYPE INTEGER ( 40 | 128 ) IDENTIFIED BY rc2-cbc } +-- +-- where 40 and 128 represent the RC2 key length in number of bits. +-- +-- Another example where information needs to be shown is for +-- RSA-OAEP where only specific hash functions or mask generation +-- functions are supported, but the saltLength is specified by the +-- sender and not the recipient. In this case, one can either +-- generate a number of capability items, +-- or a new S/MIME capability type could be generated where +-- multiple hash functions could be specified. +-- +-- +-- SMIME-CAP +-- +-- This class is used to associate the type that describes the +-- capabilities with the object identifier. +-- + +SMIME-CAPS ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Type OPTIONAL +} +WITH SYNTAX { [TYPE &Type] IDENTIFIED BY &id } + +-- +-- Generic type - this is used for defining values. +-- + +-- Define a single S/MIME capability encoding + +SMIMECapability{SMIME-CAPS:CapabilitySet} ::= SEQUENCE { + capabilityID SMIME-CAPS.&id({CapabilitySet}), + parameters SMIME-CAPS.&Type({CapabilitySet} + {@capabilityID}) OPTIONAL +} + +-- Define a sequence of S/MIME capability values + +SMIMECapabilities { SMIME-CAPS:CapabilitySet } ::= + SEQUENCE SIZE (1..MAX) OF SMIMECapability{{CapabilitySet} } + +END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/AttributeCertificateVersion1-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/AttributeCertificateVersion1-2009.asn1 new file mode 100644 index 0000000000..46b431af40 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/AttributeCertificateVersion1-2009.asn1 @@ -0,0 +1,59 @@ + AttributeCertificateVersion1-2009 + {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-v1AttrCert-02(49)} + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + IMPORTS + + SIGNATURE-ALGORITHM, ALGORITHM, AlgorithmIdentifier{} + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + AttributeSet{}, Extensions{}, EXTENSION, ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57) } + + CertificateSerialNumber, UniqueIdentifier, SIGNED{} + FROM PKIX1Explicit-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) } + + GeneralNames + FROM PKIX1Implicit-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59) } + + AttCertValidityPeriod, IssuerSerial + FROM PKIXAttributeCertificate-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-attribute-cert-02(47) } ; + + -- Definition extracted from X.509-1997 [X.509-97], but + -- different type names are used to avoid collisions. + + AttributeCertificateV1 ::= SIGNED{AttributeCertificateInfoV1} + + AttributeCertificateInfoV1 ::= SEQUENCE { + version AttCertVersionV1 DEFAULT v1, + subject CHOICE { + baseCertificateID [0] IssuerSerial, + -- associated with a Public Key Certificate + subjectName [1] GeneralNames }, + -- associated with a name + issuer GeneralNames, + signature AlgorithmIdentifier{SIGNATURE-ALGORITHM, {...}}, + serialNumber CertificateSerialNumber, + attCertValidityPeriod AttCertValidityPeriod, + attributes SEQUENCE OF AttributeSet{{AttrList}}, + issuerUniqueID UniqueIdentifier OPTIONAL, + extensions Extensions{{AttributeCertExtensionsV1}} OPTIONAL } + + AttCertVersionV1 ::= INTEGER { v1(0) } + + AttrList ATTRIBUTE ::= {...} + AttributeCertExtensionsV1 EXTENSION ::= {...} + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/AuthenticationFramework.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/AuthenticationFramework.asn1 new file mode 100644 index 0000000000..5cfa9062f0 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/AuthenticationFramework.asn1 @@ -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/rfcs/BasicAccessControl.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/BasicAccessControl.asn1 new file mode 100644 index 0000000000..d8b2b687ae --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/BasicAccessControl.asn1 @@ -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/rfcs/CertificateExtensions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/CertificateExtensions.asn1 new file mode 100644 index 0000000000..0daf2208e9 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/CertificateExtensions.asn1 @@ -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/rfcs/Character-Coding-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Character-Coding-Attributes.asn1 new file mode 100644 index 0000000000..04060cf060 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Character-Coding-Attributes.asn1 @@ -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/rfcs/Character-Presentation-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Character-Presentation-Attributes.asn1 new file mode 100644 index 0000000000..aed48ac26b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Character-Presentation-Attributes.asn1 @@ -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/rfcs/Character-Profile-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Character-Profile-Attributes.asn1 new file mode 100644 index 0000000000..7ba5bf194a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Character-Profile-Attributes.asn1 @@ -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/rfcs/Colour-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Colour-Attributes.asn1 new file mode 100644 index 0000000000..24c7fafc38 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Colour-Attributes.asn1 @@ -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/rfcs/CryptographicMessageSyntax-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/CryptographicMessageSyntax-2009.asn1 new file mode 100644 index 0000000000..3e350294be --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/CryptographicMessageSyntax-2009.asn1 @@ -0,0 +1,463 @@ + CryptographicMessageSyntax-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-2004-02(41) } + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + ParamOptions, DIGEST-ALGORITHM, SIGNATURE-ALGORITHM, + PUBLIC-KEY, KEY-DERIVATION, KEY-WRAP, MAC-ALGORITHM, + KEY-AGREE, KEY-TRANSPORT, CONTENT-ENCRYPTION, ALGORITHM, + AlgorithmIdentifier + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + SignatureAlgs, MessageDigestAlgs, KeyAgreementAlgs, + MessageAuthAlgs, KeyWrapAlgs, ContentEncryptionAlgs, + KeyTransportAlgs, KeyDerivationAlgs, KeyAgreePublicKeys + FROM CryptographicMessageSyntaxAlgorithms-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cmsalg-2001-02(37) } + + Certificate, CertificateList, CertificateSerialNumber, + Name, ATTRIBUTE + FROM PKIX1Explicit-2009 + { iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-explicit-02(51) } + + AttributeCertificate + FROM PKIXAttributeCertificate-2009 + { iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-attribute-cert-02(47) } + + AttributeCertificateV1 + FROM AttributeCertificateVersion1-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-v1AttrCert-02(49) } ; + + -- Cryptographic Message Syntax + + -- The following are used for version numbers using the ASN.1 + -- idiom "[[n:" + -- Version 1 = PKCS #7 + -- Version 2 = S/MIME V2 + -- Version 3 = RFC 2630 + -- Version 4 = RFC 3369 + -- Version 5 = RFC 3852 + + CONTENT-TYPE ::= TYPE-IDENTIFIER + ContentType ::= CONTENT-TYPE.&id + + ContentInfo ::= SEQUENCE { + contentType CONTENT-TYPE. + &id({ContentSet}), + content [0] EXPLICIT CONTENT-TYPE. + &Type({ContentSet}{@contentType})} + + ContentSet CONTENT-TYPE ::= { + -- Define the set of content types to be recognized. + ct-Data | ct-SignedData | ct-EncryptedData | ct-EnvelopedData | + ct-AuthenticatedData | ct-DigestedData, ... } + + SignedData ::= SEQUENCE { + version CMSVersion, + digestAlgorithms SET OF DigestAlgorithmIdentifier, + encapContentInfo EncapsulatedContentInfo, + certificates [0] IMPLICIT CertificateSet OPTIONAL, + crls [1] IMPLICIT RevocationInfoChoices OPTIONAL, + signerInfos SignerInfos } + + SignerInfos ::= SET OF SignerInfo + + EncapsulatedContentInfo ::= SEQUENCE { + eContentType CONTENT-TYPE.&id({ContentSet}), + eContent [0] EXPLICIT OCTET STRING + ( CONTAINING CONTENT-TYPE. + &Type({ContentSet}{@eContentType})) OPTIONAL } + + SignerInfo ::= SEQUENCE { + version CMSVersion, + sid SignerIdentifier, + digestAlgorithm DigestAlgorithmIdentifier, + signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL, + signatureAlgorithm SignatureAlgorithmIdentifier, + signature SignatureValue, + unsignedAttrs [1] IMPLICIT Attributes + {{UnsignedAttributes}} OPTIONAL } + + SignedAttributes ::= Attributes {{ SignedAttributesSet }} + + SignerIdentifier ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + ..., + [[3: subjectKeyIdentifier [0] SubjectKeyIdentifier ]] } + + SignedAttributesSet ATTRIBUTE ::= + { aa-signingTime | aa-messageDigest | aa-contentType, ... } + + UnsignedAttributes ATTRIBUTE ::= { aa-countersignature, ... } + + SignatureValue ::= OCTET STRING + + EnvelopedData ::= SEQUENCE { + version CMSVersion, + originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL, + recipientInfos RecipientInfos, + encryptedContentInfo EncryptedContentInfo, + ..., + [[2: unprotectedAttrs [1] IMPLICIT Attributes + {{ UnprotectedAttributes }} OPTIONAL ]] } + + OriginatorInfo ::= SEQUENCE { + certs [0] IMPLICIT CertificateSet OPTIONAL, + crls [1] IMPLICIT RevocationInfoChoices OPTIONAL } + + RecipientInfos ::= SET SIZE (1..MAX) OF RecipientInfo + + EncryptedContentInfo ::= SEQUENCE { + contentType CONTENT-TYPE.&id({ContentSet}), + contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, + encryptedContent [0] IMPLICIT OCTET STRING OPTIONAL } + + -- If you want to do constraints, you might use: + -- EncryptedContentInfo ::= SEQUENCE { + -- contentType CONTENT-TYPE.&id({ContentSet}), + -- contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, + -- encryptedContent [0] IMPLICIT ENCRYPTED {CONTENT-TYPE. + -- &Type({ContentSet}{@contentType}) OPTIONAL } + -- ENCRYPTED {ToBeEncrypted} ::= OCTET STRING ( CONSTRAINED BY + -- { ToBeEncrypted } ) + + UnprotectedAttributes ATTRIBUTE ::= { ... } + + RecipientInfo ::= CHOICE { + ktri KeyTransRecipientInfo, + ..., + [[3: kari [1] KeyAgreeRecipientInfo ]], + [[4: kekri [2] KEKRecipientInfo]], + [[5: pwri [3] PasswordRecipientInfo, + ori [4] OtherRecipientInfo ]] } + + EncryptedKey ::= OCTET STRING + + KeyTransRecipientInfo ::= SEQUENCE { + version CMSVersion, -- always set to 0 or 2 + rid RecipientIdentifier, + keyEncryptionAlgorithm AlgorithmIdentifier + {KEY-TRANSPORT, {KeyTransportAlgorithmSet}}, + encryptedKey EncryptedKey } + + KeyTransportAlgorithmSet KEY-TRANSPORT ::= { KeyTransportAlgs, ... } + + RecipientIdentifier ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + ..., + [[2: subjectKeyIdentifier [0] SubjectKeyIdentifier ]] } + KeyAgreeRecipientInfo ::= SEQUENCE { + version CMSVersion, -- always set to 3 + originator [0] EXPLICIT OriginatorIdentifierOrKey, + ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL, + keyEncryptionAlgorithm AlgorithmIdentifier + {KEY-AGREE, {KeyAgreementAlgorithmSet}}, + recipientEncryptedKeys RecipientEncryptedKeys } + + KeyAgreementAlgorithmSet KEY-AGREE ::= { KeyAgreementAlgs, ... } + + OriginatorIdentifierOrKey ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + subjectKeyIdentifier [0] SubjectKeyIdentifier, + originatorKey [1] OriginatorPublicKey } + + OriginatorPublicKey ::= SEQUENCE { + algorithm AlgorithmIdentifier {PUBLIC-KEY, {OriginatorKeySet}}, + publicKey BIT STRING } + + OriginatorKeySet PUBLIC-KEY ::= { KeyAgreePublicKeys, ... } + + RecipientEncryptedKeys ::= SEQUENCE OF RecipientEncryptedKey + + RecipientEncryptedKey ::= SEQUENCE { + rid KeyAgreeRecipientIdentifier, + encryptedKey EncryptedKey } + + KeyAgreeRecipientIdentifier ::= CHOICE { + issuerAndSerialNumber IssuerAndSerialNumber, + rKeyId [0] IMPLICIT RecipientKeyIdentifier } + + RecipientKeyIdentifier ::= SEQUENCE { + subjectKeyIdentifier SubjectKeyIdentifier, + date GeneralizedTime OPTIONAL, + other OtherKeyAttribute OPTIONAL } + + SubjectKeyIdentifier ::= OCTET STRING + + KEKRecipientInfo ::= SEQUENCE { + version CMSVersion, -- always set to 4 + kekid KEKIdentifier, + keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, + encryptedKey EncryptedKey } + + KEKIdentifier ::= SEQUENCE { + keyIdentifier OCTET STRING, + date GeneralizedTime OPTIONAL, + other OtherKeyAttribute OPTIONAL } + PasswordRecipientInfo ::= SEQUENCE { + version CMSVersion, -- always set to 0 + keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier + OPTIONAL, + keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier, + encryptedKey EncryptedKey } + + OTHER-RECIPIENT ::= TYPE-IDENTIFIER + + OtherRecipientInfo ::= SEQUENCE { + oriType OTHER-RECIPIENT. + &id({SupportedOtherRecipInfo}), + oriValue OTHER-RECIPIENT. + &Type({SupportedOtherRecipInfo}{@oriType})} + + SupportedOtherRecipInfo OTHER-RECIPIENT ::= { ... } + + DigestedData ::= SEQUENCE { + version CMSVersion, + digestAlgorithm DigestAlgorithmIdentifier, + encapContentInfo EncapsulatedContentInfo, + digest Digest, ... } + + Digest ::= OCTET STRING + + EncryptedData ::= SEQUENCE { + version CMSVersion, + encryptedContentInfo EncryptedContentInfo, + ..., + [[2: unprotectedAttrs [1] IMPLICIT Attributes + {{UnprotectedAttributes}} OPTIONAL ]] } + + AuthenticatedData ::= SEQUENCE { + version CMSVersion, + originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL, + recipientInfos RecipientInfos, + macAlgorithm MessageAuthenticationCodeAlgorithm, + digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL, + encapContentInfo EncapsulatedContentInfo, + authAttrs [2] IMPLICIT AuthAttributes OPTIONAL, + mac MessageAuthenticationCode, + unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL } + + AuthAttributes ::= SET SIZE (1..MAX) OF Attribute + {{AuthAttributeSet}} + + AuthAttributeSet ATTRIBUTE ::= { aa-contentType | aa-messageDigest + | aa-signingTime, ...} + MessageAuthenticationCode ::= OCTET STRING + + UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute + {{UnauthAttributeSet}} + + UnauthAttributeSet ATTRIBUTE ::= {...} + + -- + -- General algorithm definitions + -- + + DigestAlgorithmIdentifier ::= AlgorithmIdentifier + {DIGEST-ALGORITHM, {DigestAlgorithmSet}} + + DigestAlgorithmSet DIGEST-ALGORITHM ::= { + CryptographicMessageSyntaxAlgorithms-2009.MessageDigestAlgs, ... } + + SignatureAlgorithmIdentifier ::= AlgorithmIdentifier + {SIGNATURE-ALGORITHM, {SignatureAlgorithmSet}} + + SignatureAlgorithmSet SIGNATURE-ALGORITHM ::= + { SignatureAlgs, ... } + + KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier + {KEY-WRAP, {KeyEncryptionAlgorithmSet}} + + KeyEncryptionAlgorithmSet KEY-WRAP ::= { KeyWrapAlgs, ... } + + ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier + {CONTENT-ENCRYPTION, {ContentEncryptionAlgorithmSet}} + + ContentEncryptionAlgorithmSet CONTENT-ENCRYPTION ::= + { ContentEncryptionAlgs, ... } + + MessageAuthenticationCodeAlgorithm ::= AlgorithmIdentifier + {MAC-ALGORITHM, {MessageAuthenticationCodeAlgorithmSet}} + + MessageAuthenticationCodeAlgorithmSet MAC-ALGORITHM ::= + { MessageAuthAlgs, ... } + + KeyDerivationAlgorithmIdentifier ::= AlgorithmIdentifier + {KEY-DERIVATION, {KeyDerivationAlgs, ...}} + + RevocationInfoChoices ::= SET OF RevocationInfoChoice + + RevocationInfoChoice ::= CHOICE { + crl CertificateList, + ..., + [[5: other [1] IMPLICIT OtherRevocationInfoFormat ]] } + + OTHER-REVOK-INFO ::= TYPE-IDENTIFIER + + OtherRevocationInfoFormat ::= SEQUENCE { + otherRevInfoFormat OTHER-REVOK-INFO. + &id({SupportedOtherRevokInfo}), + otherRevInfo OTHER-REVOK-INFO. + &Type({SupportedOtherRevokInfo}{@otherRevInfoFormat})} + + SupportedOtherRevokInfo OTHER-REVOK-INFO ::= { ... } + + CertificateChoices ::= CHOICE { + certificate Certificate, + extendedCertificate [0] IMPLICIT ExtendedCertificate, + -- Obsolete + ..., + [[3: v1AttrCert [1] IMPLICIT AttributeCertificateV1]], + -- Obsolete + [[4: v2AttrCert [2] IMPLICIT AttributeCertificateV2]], + [[5: other [3] IMPLICIT OtherCertificateFormat]] } + + AttributeCertificateV2 ::= AttributeCertificate + + OTHER-CERT-FMT ::= TYPE-IDENTIFIER + + OtherCertificateFormat ::= SEQUENCE { + otherCertFormat OTHER-CERT-FMT. + &id({SupportedCertFormats}), + otherCert OTHER-CERT-FMT. + &Type({SupportedCertFormats}{@otherCertFormat})} + + SupportedCertFormats OTHER-CERT-FMT ::= { ... } + + CertificateSet ::= SET OF CertificateChoices + + IssuerAndSerialNumber ::= SEQUENCE { + issuer Name, + serialNumber CertificateSerialNumber } + + CMSVersion ::= INTEGER { v0(0), v1(1), v2(2), v3(3), v4(4), v5(5) } + + UserKeyingMaterial ::= OCTET STRING + + KEY-ATTRIBUTE ::= TYPE-IDENTIFIER + + OtherKeyAttribute ::= SEQUENCE { + keyAttrId KEY-ATTRIBUTE. + + &id({SupportedKeyAttributes}), + keyAttr KEY-ATTRIBUTE. + &Type({SupportedKeyAttributes}{@keyAttrId})} + + SupportedKeyAttributes KEY-ATTRIBUTE ::= { ... } + + -- Content Type Object Identifiers + + id-ct-contentInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) 6 } + + ct-Data CONTENT-TYPE ::= {OCTET STRING IDENTIFIED BY id-data} + + id-data OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1 } + + ct-SignedData CONTENT-TYPE ::= + { SignedData IDENTIFIED BY id-signedData} + + id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 } + + ct-EnvelopedData CONTENT-TYPE ::= + { EnvelopedData IDENTIFIED BY id-envelopedData} + + id-envelopedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs7(7) 3 } + + ct-DigestedData CONTENT-TYPE ::= + { DigestedData IDENTIFIED BY id-digestedData} + + id-digestedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs7(7) 5 } + + ct-EncryptedData CONTENT-TYPE ::= + { EncryptedData IDENTIFIED BY id-encryptedData} + + id-encryptedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs7(7) 6 } + + ct-AuthenticatedData CONTENT-TYPE ::= + { AuthenticatedData IDENTIFIED BY id-ct-authData} + + id-ct-authData OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 2 } + + -- + -- The CMS Attributes + -- + + MessageDigest ::= OCTET STRING + + SigningTime ::= Time + + Time ::= CHOICE { + utcTime UTCTime, + generalTime GeneralizedTime } + + Countersignature ::= SignerInfo + + -- Attribute Object Identifiers + + aa-contentType ATTRIBUTE ::= + { TYPE ContentType IDENTIFIED BY id-contentType } + id-contentType OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) 3 } + + aa-messageDigest ATTRIBUTE ::= + { TYPE MessageDigest IDENTIFIED BY id-messageDigest} + id-messageDigest OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4 } + + aa-signingTime ATTRIBUTE ::= + { TYPE SigningTime IDENTIFIED BY id-signingTime } + id-signingTime OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) 5 } + + aa-countersignature ATTRIBUTE ::= + { TYPE Countersignature IDENTIFIED BY id-countersignature } + id-countersignature OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) 6 } + + -- + -- Obsolete Extended Certificate syntax from PKCS#6 + -- + + ExtendedCertificateOrCertificate ::= CHOICE { + certificate Certificate, + extendedCertificate [0] IMPLICIT ExtendedCertificate } + + ExtendedCertificate ::= SEQUENCE { + extendedCertificateInfo ExtendedCertificateInfo, + signatureAlgorithm SignatureAlgorithmIdentifier, + signature Signature } + + ExtendedCertificateInfo ::= SEQUENCE { + version CMSVersion, + certificate Certificate, + attributes UnauthAttributes } + + Signature ::= BIT STRING + + Attribute{ ATTRIBUTE:AttrList } ::= SEQUENCE { + attrType ATTRIBUTE. + &id({AttrList}), + attrValues SET OF ATTRIBUTE. + &Type({AttrList}{@attrType}) } + + Attributes { ATTRIBUTE:AttrList } ::= + SET SIZE (1..MAX) OF Attribute {{ AttrList }} + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/CryptographicMessageSyntaxAlgorithms-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/CryptographicMessageSyntaxAlgorithms-2009.asn1 new file mode 100644 index 0000000000..72e8b270db --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/CryptographicMessageSyntaxAlgorithms-2009.asn1 @@ -0,0 +1,248 @@ + CryptographicMessageSyntaxAlgorithms-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cmsalg-2001-02(37) } + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + ParamOptions, DIGEST-ALGORITHM, SIGNATURE-ALGORITHM, + PUBLIC-KEY, KEY-DERIVATION, KEY-WRAP, MAC-ALGORITHM, + KEY-AGREE, KEY-TRANSPORT, CONTENT-ENCRYPTION, ALGORITHM, + AlgorithmIdentifier{}, SMIME-CAPS + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + pk-rsa, pk-dh, pk-dsa, rsaEncryption, DHPublicKey, dhpublicnumber + FROM PKIXAlgs-2009 + {iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56)} + + cap-RC2CBC + FROM SecureMimeMessageV3dot1-2009 + {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-msg-v3dot1-02(39)}; + + -- 2. Hash algorithms in this document + + MessageDigestAlgs DIGEST-ALGORITHM ::= { + -- mda-md5 | mda-sha1, + ... } + + -- 3. Signature algorithms in this document + + SignatureAlgs SIGNATURE-ALGORITHM ::= { + -- See RFC 3279 + -- sa-dsaWithSHA1 | sa-rsaWithMD5 | sa-rsaWithSHA1, + ... } + + -- 4. Key Management Algorithms + -- 4.1 Key Agreement Algorithms + + KeyAgreementAlgs KEY-AGREE ::= { kaa-esdh | kaa-ssdh, ...} + KeyAgreePublicKeys PUBLIC-KEY ::= { pk-dh, ...} + + -- 4.2 Key Transport Algorithms + + KeyTransportAlgs KEY-TRANSPORT ::= { kt-rsa, ... } + + -- 4.3 Symmetric Key-Encryption Key Algorithms + + KeyWrapAlgs KEY-WRAP ::= { kwa-3DESWrap | kwa-RC2Wrap, ... } + + -- 4.4 Key Derivation Algorithms + + KeyDerivationAlgs KEY-DERIVATION ::= { kda-PBKDF2, ... } + + -- 5. Content Encryption Algorithms + + ContentEncryptionAlgs CONTENT-ENCRYPTION ::= + { cea-3DES-cbc | cea-RC2-cbc, ... } + + -- 6. Message Authentication Code Algorithms + + MessageAuthAlgs MAC-ALGORITHM ::= { maca-hMAC-SHA1, ... } + + -- S/MIME Capabilities for these items + + SMimeCaps SMIME-CAPS ::= { + kaa-esdh.&smimeCaps | + kaa-ssdh.&smimeCaps | + kt-rsa.&smimeCaps | + kwa-3DESWrap.&smimeCaps | + kwa-RC2Wrap.&smimeCaps | + cea-3DES-cbc.&smimeCaps | + cea-RC2-cbc.&smimeCaps | + maca-hMAC-SHA1.&smimeCaps, + ...} + + -- + -- + -- + + -- Algorithm Identifiers + + -- rsaEncryption OBJECT IDENTIFIER ::= { iso(1) member-body(2) + -- us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 1 } + + id-alg-ESDH OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 5 } + + id-alg-SSDH OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 10 } + + id-alg-CMS3DESwrap OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 6 } + + id-alg-CMSRC2wrap OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 7 } + + des-ede3-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) encryptionAlgorithm(3) 7 } + + rc2-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) + rsadsi(113549) encryptionAlgorithm(3) 2 } + + hMAC-SHA1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) + dod(6) internet(1) security(5) mechanisms(5) 8 1 2 } + + id-PBKDF2 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) pkcs-5(5) 12 } + + -- Algorithm Identifier Parameter Types + + KeyWrapAlgorithm ::= + AlgorithmIdentifier {KEY-WRAP, {KeyWrapAlgs }} + + RC2wrapParameter ::= RC2ParameterVersion + RC2ParameterVersion ::= INTEGER + + CBCParameter ::= IV + + IV ::= OCTET STRING -- exactly 8 octets + + RC2CBCParameter ::= SEQUENCE { + rc2ParameterVersion INTEGER (1..256), + iv OCTET STRING } -- exactly 8 octets + + maca-hMAC-SHA1 MAC-ALGORITHM ::= { + IDENTIFIER hMAC-SHA1 + PARAMS TYPE NULL ARE preferredAbsent + IS-KEYED-MAC TRUE + SMIME-CAPS {IDENTIFIED BY hMAC-SHA1} + } + + PBKDF2-PRFsAlgorithmIdentifier ::= AlgorithmIdentifier{ ALGORITHM, + {PBKDF2-PRFs} } + + alg-hMAC-SHA1 ALGORITHM ::= + { IDENTIFIER hMAC-SHA1 PARAMS TYPE NULL ARE required } + + PBKDF2-PRFs ALGORITHM ::= { alg-hMAC-SHA1, ... } + + PBKDF2-SaltSources ALGORITHM ::= { ... } + + PBKDF2-SaltSourcesAlgorithmIdentifier ::= + AlgorithmIdentifier {ALGORITHM, {PBKDF2-SaltSources}} + + defaultPBKDF2 PBKDF2-PRFsAlgorithmIdentifier ::= + { algorithm alg-hMAC-SHA1.&id, parameters NULL:NULL } + + PBKDF2-params ::= SEQUENCE { + salt CHOICE { + specified OCTET STRING, + otherSource PBKDF2-SaltSourcesAlgorithmIdentifier }, + iterationCount INTEGER (1..MAX), + keyLength INTEGER (1..MAX) OPTIONAL, + prf PBKDF2-PRFsAlgorithmIdentifier DEFAULT + defaultPBKDF2 + } + + -- + -- This object is included for completeness. It should not be used + -- for encoding of signatures, but was sometimes used in older + -- versions of CMS for encoding of RSA signatures. + -- + -- + -- sa-rsa SIGNATURE-ALGORITHM ::= { + -- IDENTIFIER rsaEncryption + -- - - value is not ASN.1 encoded + -- PARAMS TYPE NULL ARE required + -- HASHES {mda-sha1 | mda-md5, ...} + -- PUBLIC-KEYS { pk-rsa} + -- } + -- + -- No ASN.1 encoding is applied to the signature value + -- for these items + + kaa-esdh KEY-AGREE ::= { + IDENTIFIER id-alg-ESDH + PARAMS TYPE KeyWrapAlgorithm ARE required + PUBLIC-KEYS { pk-dh } + -- UKM is not ASN.1 encoded + UKM ARE optional + SMIME-CAPS {TYPE KeyWrapAlgorithm IDENTIFIED BY id-alg-ESDH} + } + + kaa-ssdh KEY-AGREE ::= { + IDENTIFIER id-alg-SSDH + PARAMS TYPE KeyWrapAlgorithm ARE required + PUBLIC-KEYS {pk-dh} + -- UKM is not ASN.1 encoded + UKM ARE optional + SMIME-CAPS {TYPE KeyWrapAlgorithm IDENTIFIED BY id-alg-SSDH} + } + + dh-public-number OBJECT IDENTIFIER ::= dhpublicnumber + + pk-originator-dh PUBLIC-KEY ::= { + IDENTIFIER dh-public-number + KEY DHPublicKey + PARAMS ARE absent + CERT-KEY-USAGE {keyAgreement, encipherOnly, decipherOnly} + } + + kwa-3DESWrap KEY-WRAP ::= { + IDENTIFIER id-alg-CMS3DESwrap + PARAMS TYPE NULL ARE required + SMIME-CAPS {IDENTIFIED BY id-alg-CMS3DESwrap} + } + + kwa-RC2Wrap KEY-WRAP ::= { + IDENTIFIER id-alg-CMSRC2wrap + PARAMS TYPE RC2wrapParameter ARE required + SMIME-CAPS { IDENTIFIED BY id-alg-CMSRC2wrap } + } + + kda-PBKDF2 KEY-DERIVATION ::= { + IDENTIFIER id-PBKDF2 + PARAMS TYPE PBKDF2-params ARE required + -- No S/MIME caps defined + } + + cea-3DES-cbc CONTENT-ENCRYPTION ::= { + IDENTIFIER des-ede3-cbc + PARAMS TYPE IV ARE required + SMIME-CAPS { IDENTIFIED BY des-ede3-cbc } + } + + cea-RC2-cbc CONTENT-ENCRYPTION ::= { + IDENTIFIER rc2-cbc + PARAMS TYPE RC2CBCParameter ARE required + SMIME-CAPS cap-RC2CBC + } + + kt-rsa KEY-TRANSPORT ::= { + IDENTIFIER rsaEncryption + PARAMS TYPE NULL ARE required + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS {IDENTIFIED BY rsaEncryption} + } + + -- S/MIME Capabilities - most have no label. + + cap-3DESwrap SMIME-CAPS ::= { IDENTIFIED BY id-alg-CMS3DESwrap } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/DOR-definition.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DOR-definition.asn1 new file mode 100644 index 0000000000..cd3330dc56 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DOR-definition.asn1 @@ -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/rfcs/DSAOperationalAttributeTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DSAOperationalAttributeTypes.asn1 new file mode 100644 index 0000000000..df5e8489ea --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DSAOperationalAttributeTypes.asn1 @@ -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/rfcs/Default-Value-Lists.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Default-Value-Lists.asn1 new file mode 100644 index 0000000000..ef1187ba8c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Default-Value-Lists.asn1 @@ -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/rfcs/DirectoryAbstractService.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryAbstractService.asn1 new file mode 100644 index 0000000000..5a5d310729 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryAbstractService.asn1 @@ -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/rfcs/DirectoryAccessProtocol.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryAccessProtocol.asn1 new file mode 100644 index 0000000000..10d6979f6d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryAccessProtocol.asn1 @@ -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/rfcs/DirectoryInformationShadowProtocol.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryInformationShadowProtocol.asn1 new file mode 100644 index 0000000000..91c0a865f7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryInformationShadowProtocol.asn1 @@ -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/rfcs/DirectoryOperationalBindingManagementProtocol.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryOperationalBindingManagementProtocol.asn1 new file mode 100644 index 0000000000..e3e1f95621 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryOperationalBindingManagementProtocol.asn1 @@ -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/rfcs/DirectoryOperationalBindingTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryOperationalBindingTypes.asn1 new file mode 100644 index 0000000000..9df5d2783a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryOperationalBindingTypes.asn1 @@ -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/rfcs/DirectoryProtectionMappings.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryProtectionMappings.asn1 new file mode 100644 index 0000000000..37c6cac261 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryProtectionMappings.asn1 @@ -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/rfcs/DirectoryShadowAbstractService.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryShadowAbstractService.asn1 new file mode 100644 index 0000000000..acbb692b6f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectoryShadowAbstractService.asn1 @@ -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/rfcs/DirectorySystemProtocol.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectorySystemProtocol.asn1 new file mode 100644 index 0000000000..cace79d109 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DirectorySystemProtocol.asn1 @@ -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/rfcs/DistributedOperations.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/DistributedOperations.asn1 new file mode 100644 index 0000000000..72e791f10c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/DistributedOperations.asn1 @@ -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/rfcs/Document-Profile-Descriptor.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Document-Profile-Descriptor.asn1 new file mode 100644 index 0000000000..d8c15b7afa --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Document-Profile-Descriptor.asn1 @@ -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/rfcs/EnhancedSecurity.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/EnhancedSecurity.asn1 new file mode 100644 index 0000000000..9991a59454 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/EnhancedSecurity.asn1 @@ -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/rfcs/EnrollmentMessageSyntax-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/EnrollmentMessageSyntax-2009.asn1 new file mode 100644 index 0000000000..17a45a0a6b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/EnrollmentMessageSyntax-2009.asn1 @@ -0,0 +1,543 @@ + EnrollmentMessageSyntax-2009 + {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-cmc2002-02(53)} + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + EXPORTS ALL; + IMPORTS + + AttributeSet{}, Extension{}, EXTENSION, ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} + AlgorithmIdentifier{}, DIGEST-ALGORITHM, KEY-WRAP, KEY-DERIVATION, + MAC-ALGORITHM, SIGNATURE-ALGORITHM, PUBLIC-KEY + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + CertificateSerialNumber, GeneralName, CRLReason, ReasonFlags, + CertExtensions + FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + + Name, id-pkix, PublicKeyAlgorithms, SignatureAlgorithms + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} + + ContentInfo, IssuerAndSerialNumber, CONTENT-TYPE + FROM CryptographicMessageSyntax-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cms-2004-02(41)} + + CertReqMsg, PKIPublicationInfo, CertTemplate + FROM PKIXCRMF-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-crmf2005-02(55)} + + mda-sha1 + FROM PKIXAlgs-2009 + { iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56)} + + kda-PBKDF2, maca-hMAC-SHA1 + FROM CryptographicMessageSyntaxAlgorithms-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cmsalg-2001-02(37) } + + mda-sha256 + FROM PKIX1-PSS-OAEP-Algorithms-2009 + { iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-rsa-pkalgs-02(54) } ; + + -- CMS Content types defined in this document + CMC-ContentTypes CONTENT-TYPE ::= { ct-PKIData | ct-PKIResponse, ... } + + -- Signature Algorithms defined in this document + + SignatureAlgs SIGNATURE-ALGORITHM ::= { sa-noSignature } + + -- CMS Unsigned Attributes + + CMC-UnsignedAtts ATTRIBUTE ::= { aa-cmc-unsignedData } + + -- + -- + + id-cmc OBJECT IDENTIFIER ::= {id-pkix 7} -- CMC controls + id-cct OBJECT IDENTIFIER ::= {id-pkix 12} -- CMC content types + + -- This is the content type for a request message in the protocol + + ct-PKIData CONTENT-TYPE ::= + { PKIData IDENTIFIED BY id-cct-PKIData } + id-cct-PKIData OBJECT IDENTIFIER ::= { id-cct 2 } + + PKIData ::= SEQUENCE { + controlSequence SEQUENCE SIZE(0..MAX) OF TaggedAttribute, + reqSequence SEQUENCE SIZE(0..MAX) OF TaggedRequest, + cmsSequence SEQUENCE SIZE(0..MAX) OF TaggedContentInfo, + otherMsgSequence SEQUENCE SIZE(0..MAX) OF OtherMsg + } + + BodyPartID ::= INTEGER(0..4294967295) + + TaggedAttribute ::= SEQUENCE { + bodyPartID BodyPartID, + attrType CMC-CONTROL.&id({Cmc-Control-Set}), + attrValues SET OF CMC-CONTROL. + &Type({Cmc-Control-Set}{@attrType}) + } + + Cmc-Control-Set CMC-CONTROL ::= { + cmc-identityProof | cmc-dataReturn | cmc-regInfo | + cmc-responseInfo | cmc-queryPending | cmc-popLinkRandom | + cmc-popLinkWitness | cmc-identification | cmc-transactionId | + cmc-senderNonce | cmc-recipientNonce | cmc-statusInfo | + cmc-addExtensions | cmc-encryptedPOP | cmc-decryptedPOP | + cmc-lraPOPWitness | cmc-getCert | cmc-getCRL | + cmc-revokeRequest | cmc-confirmCertAcceptance | + cmc-statusInfoV2 | cmc-trustedAnchors | cmc-authData | + cmc-batchRequests | cmc-batchResponses | cmc-publishCert | + cmc-modCertTemplate | cmc-controlProcessed | + cmc-identityProofV2 | cmc-popLinkWitnessV2, ... } + + OTHER-REQUEST ::= TYPE-IDENTIFIER + + -- We do not define any other requests in this document; + -- examples might be attribute certification requests + + OtherRequests OTHER-REQUEST ::= {...} + + TaggedRequest ::= CHOICE { + tcr [0] TaggedCertificationRequest, + crm [1] CertReqMsg, + orm [2] SEQUENCE { + bodyPartID BodyPartID, + requestMessageType OTHER-REQUEST.&id({OtherRequests}), + requestMessageValue OTHER-REQUEST.&Type({OtherRequests} + {@.requestMessageType}) + } + } + + TaggedCertificationRequest ::= SEQUENCE { + bodyPartID BodyPartID, + certificationRequest CertificationRequest + } + + AttributeList ATTRIBUTE ::= {at-extension-req, ...} + + CertificationRequest ::= SEQUENCE { + certificationRequestInfo SEQUENCE { + version INTEGER, + subject Name, + subjectPublicKeyInfo SEQUENCE { + algorithm AlgorithmIdentifier{PUBLIC-KEY, + {PublicKeyAlgorithms}}, + subjectPublicKey BIT STRING + }, + attributes [0] IMPLICIT SET OF + AttributeSet{{AttributeList}} + }, + signatureAlgorithm AlgorithmIdentifier + {SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + signature BIT STRING + } + + TaggedContentInfo ::= SEQUENCE { + bodyPartID BodyPartID, + contentInfo ContentInfo + } + + OTHER-MSG ::= TYPE-IDENTIFIER + + -- No other messages currently defined + + OtherMsgSet OTHER-MSG ::= {...} + + OtherMsg ::= SEQUENCE { + bodyPartID BodyPartID, + otherMsgType OTHER-MSG.&id({OtherMsgSet}), + otherMsgValue OTHER-MSG.&Type({OtherMsgSet}{@otherMsgType}) } + + -- This defines the response message in the protocol + + ct-PKIResponse CONTENT-TYPE ::= + { PKIResponse IDENTIFIED BY id-cct-PKIResponse } + id-cct-PKIResponse OBJECT IDENTIFIER ::= { id-cct 3 } + + ResponseBody ::= PKIResponse + + PKIResponse ::= SEQUENCE { + controlSequence SEQUENCE SIZE(0..MAX) OF TaggedAttribute, + cmsSequence SEQUENCE SIZE(0..MAX) OF TaggedContentInfo, + otherMsgSequence SEQUENCE SIZE(0..MAX) OF OtherMsg + } + + CMC-CONTROL ::= TYPE-IDENTIFIER + + -- The following controls have the type OCTET STRING + + cmc-identityProof CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-identityProof } + id-cmc-identityProof OBJECT IDENTIFIER ::= {id-cmc 3} + + cmc-dataReturn CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-dataReturn } + id-cmc-dataReturn OBJECT IDENTIFIER ::= {id-cmc 4} + + cmc-regInfo CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-regInfo } + id-cmc-regInfo OBJECT IDENTIFIER ::= {id-cmc 18} + + cmc-responseInfo CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-responseInfo } + id-cmc-responseInfo OBJECT IDENTIFIER ::= {id-cmc 19} + + cmc-queryPending CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-queryPending } + id-cmc-queryPending OBJECT IDENTIFIER ::= {id-cmc 21} + + cmc-popLinkRandom CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-popLinkRandom } + id-cmc-popLinkRandom OBJECT IDENTIFIER ::= {id-cmc 22} + + cmc-popLinkWitness CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-popLinkWitness } + id-cmc-popLinkWitness OBJECT IDENTIFIER ::= {id-cmc 23} + + -- The following controls have the type UTF8String + + cmc-identification CMC-CONTROL ::= + { UTF8String IDENTIFIED BY id-cmc-identification } + id-cmc-identification OBJECT IDENTIFIER ::= {id-cmc 2} + + -- The following controls have the type INTEGER + + cmc-transactionId CMC-CONTROL ::= + { INTEGER IDENTIFIED BY id-cmc-transactionId } + id-cmc-transactionId OBJECT IDENTIFIER ::= {id-cmc 5} + + -- The following controls have the type OCTET STRING + + cmc-senderNonce CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-senderNonce } + + id-cmc-senderNonce OBJECT IDENTIFIER ::= {id-cmc 6} + + cmc-recipientNonce CMC-CONTROL ::= + { OCTET STRING IDENTIFIED BY id-cmc-recipientNonce } + id-cmc-recipientNonce OBJECT IDENTIFIER ::= {id-cmc 7} + + -- Used to return status in a response + + cmc-statusInfo CMC-CONTROL ::= + { CMCStatusInfo IDENTIFIED BY id-cmc-statusInfo } + id-cmc-statusInfo OBJECT IDENTIFIER ::= {id-cmc 1} + + CMCStatusInfo ::= SEQUENCE { + cMCStatus CMCStatus, + bodyList SEQUENCE SIZE (1..MAX) OF BodyPartID, + statusString UTF8String OPTIONAL, + otherInfo CHOICE { + failInfo CMCFailInfo, + pendInfo PendInfo + } OPTIONAL + } + + PendInfo ::= SEQUENCE { + pendToken OCTET STRING, + pendTime GeneralizedTime + } + + CMCStatus ::= INTEGER { + success (0), + failed (2), + pending (3), + noSupport (4), + confirmRequired (5), + popRequired (6), + partial (7) + } + + -- Note: + -- The spelling of unsupportedExt is corrected in this version. + -- In RFC 2797, it was unsuportedExt. + + CMCFailInfo ::= INTEGER { + badAlg (0), + badMessageCheck (1), + badRequest (2), + badTime (3), + badCertId (4), + unsuportedExt (5), + mustArchiveKeys (6), + badIdentity (7), + popRequired (8), + popFailed (9), + noKeyReuse (10), + internalCAError (11), + tryLater (12), + authDataFail (13) + } + + -- Used for RAs to add extensions to certification requests + + cmc-addExtensions CMC-CONTROL ::= + { AddExtensions IDENTIFIED BY id-cmc-addExtensions } + id-cmc-addExtensions OBJECT IDENTIFIER ::= {id-cmc 8} + + AddExtensions ::= SEQUENCE { + pkiDataReference BodyPartID, + certReferences SEQUENCE OF BodyPartID, + extensions SEQUENCE OF Extension{{CertExtensions}} + } + + cmc-encryptedPOP CMC-CONTROL ::= + { EncryptedPOP IDENTIFIED BY id-cmc-encryptedPOP } + cmc-decryptedPOP CMC-CONTROL ::= + { DecryptedPOP IDENTIFIED BY id-cmc-decryptedPOP } + id-cmc-encryptedPOP OBJECT IDENTIFIER ::= {id-cmc 9} + id-cmc-decryptedPOP OBJECT IDENTIFIER ::= {id-cmc 10} + + EncryptedPOP ::= SEQUENCE { + request TaggedRequest, + cms ContentInfo, + thePOPAlgID AlgorithmIdentifier{MAC-ALGORITHM, {POPAlgs}}, + witnessAlgID AlgorithmIdentifier{DIGEST-ALGORITHM, + {WitnessAlgs}}, + witness OCTET STRING + } + + POPAlgs MAC-ALGORITHM ::= {maca-hMAC-SHA1, ...} + WitnessAlgs DIGEST-ALGORITHM ::= {mda-sha1, ...} + + DecryptedPOP ::= SEQUENCE { + bodyPartID BodyPartID, + thePOPAlgID AlgorithmIdentifier{MAC-ALGORITHM, {POPAlgs}}, + thePOP OCTET STRING + } + + cmc-lraPOPWitness CMC-CONTROL ::= + { LraPopWitness IDENTIFIED BY id-cmc-lraPOPWitness } + + id-cmc-lraPOPWitness OBJECT IDENTIFIER ::= {id-cmc 11} + + LraPopWitness ::= SEQUENCE { + pkiDataBodyid BodyPartID, + bodyIds SEQUENCE OF BodyPartID + } + + -- + + cmc-getCert CMC-CONTROL ::= + { GetCert IDENTIFIED BY id-cmc-getCert } + id-cmc-getCert OBJECT IDENTIFIER ::= {id-cmc 15} + + GetCert ::= SEQUENCE { + issuerName GeneralName, + serialNumber INTEGER } + + cmc-getCRL CMC-CONTROL ::= + { GetCRL IDENTIFIED BY id-cmc-getCRL } + id-cmc-getCRL OBJECT IDENTIFIER ::= {id-cmc 16} + GetCRL ::= SEQUENCE { + issuerName Name, + cRLName GeneralName OPTIONAL, + time GeneralizedTime OPTIONAL, + reasons ReasonFlags OPTIONAL } + + cmc-revokeRequest CMC-CONTROL ::= + { RevokeRequest IDENTIFIED BY id-cmc-revokeRequest} + id-cmc-revokeRequest OBJECT IDENTIFIER ::= {id-cmc 17} + + RevokeRequest ::= SEQUENCE { + issuerName Name, + serialNumber INTEGER, + reason CRLReason, + invalidityDate GeneralizedTime OPTIONAL, + passphrase OCTET STRING OPTIONAL, + comment UTF8String OPTIONAL } + + cmc-confirmCertAcceptance CMC-CONTROL ::= + { CMCCertId IDENTIFIED BY id-cmc-confirmCertAcceptance } + id-cmc-confirmCertAcceptance OBJECT IDENTIFIER ::= {id-cmc 24} + + CMCCertId ::= IssuerAndSerialNumber + + -- The following is used to request v3 extensions be added + -- to a certificate + + at-extension-req ATTRIBUTE ::= + { TYPE ExtensionReq IDENTIFIED BY id-ExtensionReq } + id-ExtensionReq OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) pkcs-9(9) 14} + + ExtensionReq ::= SEQUENCE SIZE (1..MAX) OF + Extension{{CertExtensions}} + + -- The following allows Diffie-Hellman Certification Request + -- Messages to be well-formed + + sa-noSignature SIGNATURE-ALGORITHM ::= { + IDENTIFIER id-alg-noSignature + VALUE NoSignatureValue + PARAMS TYPE NULL ARE required + HASHES { mda-sha1 } + } + id-alg-noSignature OBJECT IDENTIFIER ::= {id-pkix id-alg(6) 2} + + NoSignatureValue ::= OCTET STRING + -- Unauthenticated attribute to carry removable data. + + id-aa OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2)} + + aa-cmc-unsignedData ATTRIBUTE ::= + { TYPE CMCUnsignedData IDENTIFIED BY id-aa-cmc-unsignedData } + id-aa-cmc-unsignedData OBJECT IDENTIFIER ::= {id-aa 34} + + CMCUnsignedData ::= SEQUENCE { + bodyPartPath BodyPartPath, + identifier TYPE-IDENTIFIER.&id, + content TYPE-IDENTIFIER.&Type + } + + -- Replaces CMC Status Info + -- + + cmc-statusInfoV2 CMC-CONTROL ::= + { CMCStatusInfoV2 IDENTIFIED BY id-cmc-statusInfoV2 } + id-cmc-statusInfoV2 OBJECT IDENTIFIER ::= {id-cmc 25} + + EXTENDED-FAILURE-INFO ::= TYPE-IDENTIFIER + + ExtendedFailures EXTENDED-FAILURE-INFO ::= {...} + + CMCStatusInfoV2 ::= SEQUENCE { + cMCStatus CMCStatus, + bodyList SEQUENCE SIZE (1..MAX) OF + BodyPartReference, + statusString UTF8String OPTIONAL, + otherInfo CHOICE { + failInfo CMCFailInfo, + pendInfo PendInfo, + extendedFailInfo [1] SEQUENCE { + failInfoOID TYPE-IDENTIFIER.&id + ({ExtendedFailures}), + failInfoValue TYPE-IDENTIFIER.&Type + ({ExtendedFailures} + {@.failInfoOID}) + } + } OPTIONAL + } + + BodyPartReference ::= CHOICE { + bodyPartID BodyPartID, + bodyPartPath BodyPartPath + } + + BodyPartPath ::= SEQUENCE SIZE (1..MAX) OF BodyPartID + + -- Allow for distribution of trust anchors + -- + + cmc-trustedAnchors CMC-CONTROL ::= + { PublishTrustAnchors IDENTIFIED BY id-cmc-trustedAnchors } + id-cmc-trustedAnchors OBJECT IDENTIFIER ::= {id-cmc 26} + + PublishTrustAnchors ::= SEQUENCE { + seqNumber INTEGER, + hashAlgorithm AlgorithmIdentifier{DIGEST-ALGORITHM, + {HashAlgorithms}}, + anchorHashes SEQUENCE OF OCTET STRING + } + + HashAlgorithms DIGEST-ALGORITHM ::= { + mda-sha1 | mda-sha256, ... + } + + cmc-authData CMC-CONTROL ::= + { AuthPublish IDENTIFIED BY id-cmc-authData } + id-cmc-authData OBJECT IDENTIFIER ::= {id-cmc 27} + + AuthPublish ::= BodyPartID + + -- These two items use BodyPartList + + cmc-batchRequests CMC-CONTROL ::= + { BodyPartList IDENTIFIED BY id-cmc-batchRequests } + id-cmc-batchRequests OBJECT IDENTIFIER ::= {id-cmc 28} + + cmc-batchResponses CMC-CONTROL ::= + { BodyPartList IDENTIFIED BY id-cmc-batchResponses } + id-cmc-batchResponses OBJECT IDENTIFIER ::= {id-cmc 29} + + BodyPartList ::= SEQUENCE SIZE (1..MAX) OF BodyPartID + + cmc-publishCert CMC-CONTROL ::= + { CMCPublicationInfo IDENTIFIED BY id-cmc-publishCert } + id-cmc-publishCert OBJECT IDENTIFIER ::= {id-cmc 30} + + CMCPublicationInfo ::= SEQUENCE { + hashAlg AlgorithmIdentifier{DIGEST-ALGORITHM, + {HashAlgorithms}}, + certHashes SEQUENCE OF OCTET STRING, + pubInfo PKIPublicationInfo + } + + cmc-modCertTemplate CMC-CONTROL ::= + { ModCertTemplate IDENTIFIED BY id-cmc-modCertTemplate } + id-cmc-modCertTemplate OBJECT IDENTIFIER ::= {id-cmc 31} + + ModCertTemplate ::= SEQUENCE { + pkiDataReference BodyPartPath, + certReferences BodyPartList, + replace BOOLEAN DEFAULT TRUE, + certTemplate CertTemplate + } + + -- Inform follow-on servers that one or more controls have + -- already been processed + + cmc-controlProcessed CMC-CONTROL ::= + { ControlsProcessed IDENTIFIED BY id-cmc-controlProcessed } + id-cmc-controlProcessed OBJECT IDENTIFIER ::= {id-cmc 32} + + ControlsProcessed ::= SEQUENCE { + bodyList SEQUENCE SIZE(1..MAX) OF BodyPartReference + } + + -- Identity Proof control w/ algorithm agility + + cmc-identityProofV2 CMC-CONTROL ::= + { IdentityProofV2 IDENTIFIED BY id-cmc-identityProofV2 } + id-cmc-identityProofV2 OBJECT IDENTIFIER ::= { id-cmc 33 } + + IdentityProofV2 ::= SEQUENCE { + proofAlgID AlgorithmIdentifier{DIGEST-ALGORITHM, + {WitnessAlgs}}, + macAlgId AlgorithmIdentifier{MAC-ALGORITHM, {POPAlgs}}, + witness OCTET STRING + } + + cmc-popLinkWitnessV2 CMC-CONTROL ::= + { PopLinkWitnessV2 IDENTIFIED BY id-cmc-popLinkWitnessV2 } + id-cmc-popLinkWitnessV2 OBJECT IDENTIFIER ::= { id-cmc 34 } + + PopLinkWitnessV2 ::= SEQUENCE { + keyGenAlgorithm AlgorithmIdentifier{KEY-DERIVATION, + {KeyDevAlgs}}, + macAlgorithm AlgorithmIdentifier{MAC-ALGORITHM, {POPAlgs}}, + witness OCTET STRING + } + + KeyDevAlgs KEY-DERIVATION ::= {kda-PBKDF2, ...} + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/External-References.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/External-References.asn1 new file mode 100644 index 0000000000..9a7d4936a6 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/External-References.asn1 @@ -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/rfcs/GULSProtectionMappings.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/GULSProtectionMappings.asn1 new file mode 100644 index 0000000000..9b6a426ca2 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/GULSProtectionMappings.asn1 @@ -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/rfcs/GenericProtectingTransferSyntax.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/GenericProtectingTransferSyntax.asn1 new file mode 100644 index 0000000000..c59451dcdb --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/GenericProtectingTransferSyntax.asn1 @@ -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/rfcs/Geo-Gr-Coding-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Geo-Gr-Coding-Attributes.asn1 new file mode 100644 index 0000000000..60acbb3b5c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Geo-Gr-Coding-Attributes.asn1 @@ -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/rfcs/Geo-Gr-Presentation-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Geo-Gr-Presentation-Attributes.asn1 new file mode 100644 index 0000000000..84c1ee9851 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Geo-Gr-Presentation-Attributes.asn1 @@ -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/rfcs/Geo-Gr-Profile-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Geo-Gr-Profile-Attributes.asn1 new file mode 100644 index 0000000000..28daa467e1 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Geo-Gr-Profile-Attributes.asn1 @@ -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/rfcs/GulsSecurityExchanges.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/GulsSecurityExchanges.asn1 new file mode 100644 index 0000000000..336b824174 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/GulsSecurityExchanges.asn1 @@ -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/rfcs/GulsSecurityTransformations.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/GulsSecurityTransformations.asn1 new file mode 100644 index 0000000000..db2725c37d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/GulsSecurityTransformations.asn1 @@ -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/rfcs/HierarchicalOperationalBindings.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/HierarchicalOperationalBindings.asn1 new file mode 100644 index 0000000000..4e0084b079 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/HierarchicalOperationalBindings.asn1 @@ -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/rfcs/IPMSAbstractService.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSAbstractService.asn1 new file mode 100644 index 0000000000..3fec8ae64a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSAbstractService.asn1 @@ -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/rfcs/IPMSAutoActionTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSAutoActionTypes.asn1 new file mode 100644 index 0000000000..8c0c8138e2 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSAutoActionTypes.asn1 @@ -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/rfcs/IPMSExtendedBodyPartTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSExtendedBodyPartTypes.asn1 new file mode 100644 index 0000000000..9805a6189d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSExtendedBodyPartTypes.asn1 @@ -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/rfcs/IPMSExtendedBodyPartTypes2.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSExtendedBodyPartTypes2.asn1 new file mode 100644 index 0000000000..b39e03c3b6 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSExtendedBodyPartTypes2.asn1 @@ -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/rfcs/IPMSExtendedVoiceBodyPartType.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSExtendedVoiceBodyPartType.asn1 new file mode 100644 index 0000000000..171f4b4223 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSExtendedVoiceBodyPartType.asn1 @@ -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/rfcs/IPMSFileTransferBodyPartType.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSFileTransferBodyPartType.asn1 new file mode 100644 index 0000000000..59de6d1b04 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSFileTransferBodyPartType.asn1 @@ -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/rfcs/IPMSForwardedContentBodyPartType.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSForwardedContentBodyPartType.asn1 new file mode 100644 index 0000000000..57faac6587 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSForwardedContentBodyPartType.asn1 @@ -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/rfcs/IPMSForwardedReportBodyPartType.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSForwardedReportBodyPartType.asn1 new file mode 100644 index 0000000000..4e46c7679b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSForwardedReportBodyPartType.asn1 @@ -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/rfcs/IPMSFunctionalObjects.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSFunctionalObjects.asn1 new file mode 100644 index 0000000000..09ef4de282 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSFunctionalObjects.asn1 @@ -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/rfcs/IPMSHeadingExtensions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSHeadingExtensions.asn1 new file mode 100644 index 0000000000..752e8d05e1 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSHeadingExtensions.asn1 @@ -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/rfcs/IPMSInformationObjects.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSInformationObjects.asn1 new file mode 100644 index 0000000000..3fb0463ee7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSInformationObjects.asn1 @@ -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/rfcs/IPMSMessageStoreAttributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSMessageStoreAttributes.asn1 new file mode 100644 index 0000000000..719bca4987 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSMessageStoreAttributes.asn1 @@ -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/rfcs/IPMSObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSObjectIdentifiers.asn1 new file mode 100644 index 0000000000..6e5c01ab40 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSObjectIdentifiers.asn1 @@ -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/rfcs/IPMSObjectIdentifiers2.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSObjectIdentifiers2.asn1 new file mode 100644 index 0000000000..2b46b27b3e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSObjectIdentifiers2.asn1 @@ -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/rfcs/IPMSSecurityExtensions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSSecurityExtensions.asn1 new file mode 100644 index 0000000000..8c692ccb31 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSSecurityExtensions.asn1 @@ -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/rfcs/IPMSUpperBounds.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSUpperBounds.asn1 new file mode 100644 index 0000000000..27324f614f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/IPMSUpperBounds.asn1 @@ -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/rfcs/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn1 new file mode 100644 index 0000000000..b7efd7417e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/ISO-STANDARD-9541-FONT-ATTRIBUTE-SET.asn1 @@ -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/rfcs/ISO8571-FTAM.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/ISO8571-FTAM.asn1 new file mode 100644 index 0000000000..a57a276704 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/ISO8571-FTAM.asn1 @@ -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/rfcs/ISO9541-SN.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/ISO9541-SN.asn1 new file mode 100644 index 0000000000..0149602040 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/ISO9541-SN.asn1 @@ -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/rfcs/Identifiers-and-Expressions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Identifiers-and-Expressions.asn1 new file mode 100644 index 0000000000..bd1d8d3c48 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Identifiers-and-Expressions.asn1 @@ -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/rfcs/InformationFramework.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/InformationFramework.asn1 new file mode 100644 index 0000000000..813ac9c6a0 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/InformationFramework.asn1 @@ -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/rfcs/Interchange-Data-Elements.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Interchange-Data-Elements.asn1 new file mode 100644 index 0000000000..2c78360b7b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Interchange-Data-Elements.asn1 @@ -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/rfcs/Layout-Descriptors.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Layout-Descriptors.asn1 new file mode 100644 index 0000000000..92c887bb06 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Layout-Descriptors.asn1 @@ -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/rfcs/Link-Descriptors.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Link-Descriptors.asn1 new file mode 100644 index 0000000000..64fc4436e4 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Link-Descriptors.asn1 @@ -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/rfcs/Location-Expressions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Location-Expressions.asn1 new file mode 100644 index 0000000000..5de6491621 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Location-Expressions.asn1 @@ -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/rfcs/Logical-Descriptors.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Logical-Descriptors.asn1 new file mode 100644 index 0000000000..fab36bf12a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Logical-Descriptors.asn1 @@ -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/rfcs/MHSObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MHSObjectIdentifiers.asn1 new file mode 100644 index 0000000000..187c3c8ad4 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MHSObjectIdentifiers.asn1 @@ -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/rfcs/MHSProtocolObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MHSProtocolObjectIdentifiers.asn1 new file mode 100644 index 0000000000..40f53b9458 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MHSProtocolObjectIdentifiers.asn1 @@ -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/rfcs/MSAbstractService.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSAbstractService.asn1 new file mode 100644 index 0000000000..052b3b2041 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSAbstractService.asn1 @@ -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/rfcs/MSAccessProtocol.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSAccessProtocol.asn1 new file mode 100644 index 0000000000..b69d72b3ed --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSAccessProtocol.asn1 @@ -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/rfcs/MSGeneralAttributeTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSGeneralAttributeTypes.asn1 new file mode 100644 index 0000000000..99d34b2883 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSGeneralAttributeTypes.asn1 @@ -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/rfcs/MSGeneralAutoActionTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSGeneralAutoActionTypes.asn1 new file mode 100644 index 0000000000..eceae4ab44 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSGeneralAutoActionTypes.asn1 @@ -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/rfcs/MSMatchingRules.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSMatchingRules.asn1 new file mode 100644 index 0000000000..37c894da86 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSMatchingRules.asn1 @@ -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/rfcs/MSObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSObjectIdentifiers.asn1 new file mode 100644 index 0000000000..df194f838c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSObjectIdentifiers.asn1 @@ -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/rfcs/MSUpperBounds.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MSUpperBounds.asn1 new file mode 100644 index 0000000000..6494fbd3ef --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MSUpperBounds.asn1 @@ -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/rfcs/MTAAbstractService.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MTAAbstractService.asn1 new file mode 100644 index 0000000000..38035c77ae --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MTAAbstractService.asn1 @@ -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/rfcs/MTSAbstractService.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSAbstractService.asn1 new file mode 100644 index 0000000000..68a5118bc8 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSAbstractService.asn1 @@ -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/rfcs/MTSAbstractService88.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSAbstractService88.asn1 new file mode 100644 index 0000000000..f66d117f35 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSAbstractService88.asn1 @@ -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/rfcs/MTSAccessProtocol.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSAccessProtocol.asn1 new file mode 100644 index 0000000000..03181c5951 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSAccessProtocol.asn1 @@ -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/rfcs/MTSObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSObjectIdentifiers.asn1 new file mode 100644 index 0000000000..1615b241ee --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSObjectIdentifiers.asn1 @@ -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/rfcs/MTSUpperBounds.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSUpperBounds.asn1 new file mode 100644 index 0000000000..10eac962cb --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/MTSUpperBounds.asn1 @@ -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/rfcs/Notation.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Notation.asn1 new file mode 100644 index 0000000000..96dfc39b6a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Notation.asn1 @@ -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/rfcs/OCSP-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/OCSP-2009.asn1 new file mode 100644 index 0000000000..db500fe9a1 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/OCSP-2009.asn1 @@ -0,0 +1,183 @@ + OCSP-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-ocsp-02(48)} + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + IMPORTS + + Extensions{}, EXTENSION, ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} + + AlgorithmIdentifier{}, DIGEST-ALGORITHM, SIGNATURE-ALGORITHM + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + AuthorityInfoAccessSyntax, GeneralName, CrlEntryExtensions + FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + + Name, CertificateSerialNumber, id-kp, id-ad-ocsp, Certificate + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} + + sa-dsaWithSHA1, sa-rsaWithMD2, sa-rsaWithMD5, sa-rsaWithSHA1 + FROM PKIXAlgs-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56)}; + + OCSPRequest ::= SEQUENCE { + tbsRequest TBSRequest, + optionalSignature [0] EXPLICIT Signature OPTIONAL } + + TBSRequest ::= SEQUENCE { + version [0] EXPLICIT Version DEFAULT v1, + requestorName [1] EXPLICIT GeneralName OPTIONAL, + requestList SEQUENCE OF Request, + requestExtensions [2] EXPLICIT Extensions {{re-ocsp-nonce | + re-ocsp-response, ...}} OPTIONAL } + + Signature ::= SEQUENCE { + signatureAlgorithm AlgorithmIdentifier + { SIGNATURE-ALGORITHM, {...}}, + signature BIT STRING, + certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } + + Version ::= INTEGER { v1(0) } + + Request ::= SEQUENCE { + reqCert CertID, + singleRequestExtensions [0] EXPLICIT Extensions + { {re-ocsp-service-locator, + ...}} OPTIONAL } + + CertID ::= SEQUENCE { + hashAlgorithm AlgorithmIdentifier + {DIGEST-ALGORITHM, {...}}, + issuerNameHash OCTET STRING, -- Hash of Issuer's DN + issuerKeyHash OCTET STRING, -- Hash of Issuer's public key + serialNumber CertificateSerialNumber } + + OCSPResponse ::= SEQUENCE { + responseStatus OCSPResponseStatus, + responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } + + OCSPResponseStatus ::= ENUMERATED { + successful (0), --Response has valid confirmations + malformedRequest (1), --Illegal confirmation request + internalError (2), --Internal error in issuer + tryLater (3), --Try again later + -- (4) is not used + sigRequired (5), --Must sign the request + unauthorized (6) --Request unauthorized + } + + RESPONSE ::= TYPE-IDENTIFIER + + ResponseSet RESPONSE ::= {basicResponse, ...} + + ResponseBytes ::= SEQUENCE { + responseType RESPONSE. + &id ({ResponseSet}), + response OCTET STRING (CONTAINING RESPONSE. + &Type({ResponseSet}{@responseType}))} + + basicResponse RESPONSE ::= + { BasicOCSPResponse IDENTIFIED BY id-pkix-ocsp-basic } + + BasicOCSPResponse ::= SEQUENCE { + tbsResponseData ResponseData, + signatureAlgorithm AlgorithmIdentifier{SIGNATURE-ALGORITHM, + {sa-dsaWithSHA1 | sa-rsaWithSHA1 | + sa-rsaWithMD5 | sa-rsaWithMD2, ...}}, + signature BIT STRING, + certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } + + ResponseData ::= SEQUENCE { + version [0] EXPLICIT Version DEFAULT v1, + responderID ResponderID, + producedAt GeneralizedTime, + responses SEQUENCE OF SingleResponse, + responseExtensions [1] EXPLICIT Extensions + {{re-ocsp-nonce, ...}} OPTIONAL } + + ResponderID ::= CHOICE { + byName [1] Name, + byKey [2] KeyHash } + + KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key + -- (excluding the tag and length fields) + + SingleResponse ::= SEQUENCE { + certID CertID, + certStatus CertStatus, + thisUpdate GeneralizedTime, + nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, + singleExtensions [1] EXPLICIT Extensions{{re-ocsp-crl | + re-ocsp-archive-cutoff | + CrlEntryExtensions, ...} + } OPTIONAL } + + CertStatus ::= CHOICE { + good [0] IMPLICIT NULL, + revoked [1] IMPLICIT RevokedInfo, + unknown [2] IMPLICIT UnknownInfo } + + RevokedInfo ::= SEQUENCE { + revocationTime GeneralizedTime, + revocationReason [0] EXPLICIT CRLReason OPTIONAL } + + UnknownInfo ::= NULL + + CRLReason ::= INTEGER + + ArchiveCutoff ::= GeneralizedTime + + AcceptableResponses ::= SEQUENCE OF RESPONSE.&id({ResponseSet}) + + ServiceLocator ::= SEQUENCE { + issuer Name, + locator AuthorityInfoAccessSyntax } + + CrlID ::= SEQUENCE { + crlUrl [0] EXPLICIT IA5String OPTIONAL, + crlNum [1] EXPLICIT INTEGER OPTIONAL, + crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } + + -- Request Extensions + + re-ocsp-nonce EXTENSION ::= { SYNTAX OCTET STRING IDENTIFIED + BY id-pkix-ocsp-nonce } + re-ocsp-response EXTENSION ::= { SYNTAX AcceptableResponses IDENTIFIED + BY id-pkix-ocsp-response } + re-ocsp-service-locator EXTENSION ::= { SYNTAX ServiceLocator + IDENTIFIED BY + id-pkix-ocsp-service-locator } + + -- Response Extensions + + re-ocsp-crl EXTENSION ::= { SYNTAX CrlID IDENTIFIED BY + id-pkix-ocsp-crl } + re-ocsp-archive-cutoff EXTENSION ::= { SYNTAX ArchiveCutoff + IDENTIFIED BY + id-pkix-ocsp-archive-cutoff } + + -- Object Identifiers + + id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } + id-pkix-ocsp OBJECT IDENTIFIER ::= id-ad-ocsp + id-pkix-ocsp-basic OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 } + id-pkix-ocsp-nonce OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 } + id-pkix-ocsp-crl OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 } + id-pkix-ocsp-response OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 } + id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 } + id-pkix-ocsp-archive-cutoff OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 } + id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/OLD-PKCS7.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/OLD-PKCS7.asn1 new file mode 100644 index 0000000000..ab555200bb --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/OLD-PKCS7.asn1 @@ -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. +OLD-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/rfcs/ObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/ObjectIdentifiers.asn1 new file mode 100644 index 0000000000..b4f91f50c5 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/ObjectIdentifiers.asn1 @@ -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/rfcs/OperationalBindingManagement.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/OperationalBindingManagement.asn1 new file mode 100644 index 0000000000..2044feb155 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/OperationalBindingManagement.asn1 @@ -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/rfcs/PKCS-10.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-10.asn1 new file mode 100644 index 0000000000..a5fd0fefb9 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-10.asn1 @@ -0,0 +1,56 @@ + PKCS-10 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkcs10-2009(69)} + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + AlgorithmIdentifier{}, DIGEST-ALGORITHM, SIGNATURE-ALGORITHM, + PUBLIC-KEY + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + ATTRIBUTE, Name + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)}; + + -- Certificate requests + CertificationRequestInfo ::= SEQUENCE { + version INTEGER { v1(0) } (v1, ... ), + subject Name, + subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }}, + attributes [0] Attributes{{ CRIAttributes }} + } + + SubjectPublicKeyInfo {PUBLIC-KEY: IOSet} ::= SEQUENCE { + algorithm AlgorithmIdentifier {PUBLIC-KEY, {IOSet}}, + subjectPublicKey BIT STRING + } + + PKInfoAlgorithms PUBLIC-KEY ::= { + ... -- add any locally defined algorithms here -- } + + Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }} + + CRIAttributes ATTRIBUTE ::= { + ... -- add any locally defined attributes here -- } + + Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE { + type ATTRIBUTE.&id({IOSet}), + values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type}) + } + + CertificationRequest ::= SEQUENCE { + certificationRequestInfo CertificationRequestInfo, + signatureAlgorithm AlgorithmIdentifier{SIGNATURE-ALGORITHM, + { SignatureAlgorithms }}, + signature BIT STRING + } + + SignatureAlgorithms SIGNATURE-ALGORITHM ::= { + ... -- add any locally defined algorithms here -- } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-12.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-12.asn1 new file mode 100644 index 0000000000..5b37a552f9 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-12.asn1 @@ -0,0 +1,174 @@ +PKCS-12 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) + pkcs-12(12) modules(0) pkcs-12(1)} + +-- $Revision$ + +DEFINITIONS IMPLICIT TAGS ::= + +BEGIN + +-- EXPORTS ALL +-- All types and values defined in this module is exported for use in +-- other ASN.1 modules. + +IMPORTS + +informationFramework + FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1) + usefulDefinitions(0) 3} + +ATTRIBUTE + FROM InformationFramework informationFramework + +ContentInfo, DigestInfo + FROM PKCS-7 {iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-7(7) modules(0) pkcs-7(1)} + +PrivateKeyInfo, EncryptedPrivateKeyInfo + FROM PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-8(8) modules(1) pkcs-8(1)} + +pkcs-9, friendlyName, localKeyId, certTypes, crlTypes + FROM PKCS-9 {iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-9(9) modules(0) pkcs-9(1)}; + +-- Object identifiers + +rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) rsadsi(113549)} +pkcs OBJECT IDENTIFIER ::= {rsadsi pkcs(1)} +pkcs-12 OBJECT IDENTIFIER ::= {pkcs 12} +pkcs-12PbeIds OBJECT IDENTIFIER ::= {pkcs-12 1} +pbeWithSHAAnd128BitRC4 OBJECT IDENTIFIER ::= {pkcs-12PbeIds 1} +pbeWithSHAAnd40BitRC4 OBJECT IDENTIFIER ::= {pkcs-12PbeIds 2} +pbeWithSHAAnd3-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 3} +pbeWithSHAAnd2-KeyTripleDES-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 4} +pbeWithSHAAnd128BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 5} +pbewithSHAAnd40BitRC2-CBC OBJECT IDENTIFIER ::= {pkcs-12PbeIds 6} + +bagtypes OBJECT IDENTIFIER ::= {pkcs-12 10 1} + +-- The PFX PDU + +PFX ::= SEQUENCE { + version INTEGER {v3(3)}(v3,...), + authSafe ContentInfo, + macData MacData OPTIONAL +} + +MacData ::= SEQUENCE { + mac DigestInfo, + macSalt OCTET STRING, + iterations INTEGER DEFAULT 1 +-- Note: The default is for historical reasons and its use is +-- deprecated. A higher value, like 1024 is recommended. +} + +AuthenticatedSafe ::= SEQUENCE OF ContentInfo + -- Data if unencrypted + -- EncryptedData if password-encrypted + -- EnvelopedData if public key-encrypted + +SafeContents ::= SEQUENCE OF SafeBag + +SafeBag ::= SEQUENCE { + bagId BAG-TYPE.&id ({PKCS12BagSet}), + bagValue [0] EXPLICIT BAG-TYPE.&Type({PKCS12BagSet}{@bagId}), + bagAttributes SET OF PKCS12Attribute OPTIONAL +} + +-- Bag types + +keyBag BAG-TYPE ::= + {KeyBag IDENTIFIED BY {bagtypes 1}} +pkcs8ShroudedKeyBag BAG-TYPE ::= + {PKCS8ShroudedKeyBag IDENTIFIED BY {bagtypes 2}} +certBag BAG-TYPE ::= + {CertBag IDENTIFIED BY {bagtypes 3}} +crlBag BAG-TYPE ::= + {CRLBag IDENTIFIED BY {bagtypes 4}} +secretBag BAG-TYPE ::= + {SecretBag IDENTIFIED BY {bagtypes 5}} +safeContentsBag BAG-TYPE ::= + {SafeContents IDENTIFIED BY {bagtypes 6}} + +PKCS12BagSet BAG-TYPE ::= { + keyBag | + pkcs8ShroudedKeyBag | + certBag | + crlBag | + secretBag | + safeContentsBag, + ... -- For future extensions +} + +BAG-TYPE ::= TYPE-IDENTIFIER + +-- KeyBag + +KeyBag ::= PrivateKeyInfo + +-- Shrouded KeyBag + +PKCS8ShroudedKeyBag ::= EncryptedPrivateKeyInfo + +-- CertBag + +CertBag ::= SEQUENCE { + certId BAG-TYPE.&id ({CertTypes}), + certValue [0] EXPLICIT BAG-TYPE.&Type ({CertTypes}{@certId}) +} + +x509Certificate BAG-TYPE ::= + {OCTET STRING IDENTIFIED BY {certTypes 1}} + -- DER-encoded X.509 certificate stored in OCTET STRING +sdsiCertificate BAG-TYPE ::= + {IA5String IDENTIFIED BY {certTypes 2}} + -- Base64-encoded SDSI certificate stored in IA5String + +CertTypes BAG-TYPE ::= { + x509Certificate | + sdsiCertificate, + ... -- For future extensions +} + +-- CRLBag + +CRLBag ::= SEQUENCE { + crlId BAG-TYPE.&id ({CRLTypes}), + crlValue [0] EXPLICIT BAG-TYPE.&Type ({CRLTypes}{@crlId}) +} + +x509CRL BAG-TYPE ::= + {OCTET STRING IDENTIFIED BY {crlTypes 1}} + -- DER-encoded X.509 CRL stored in OCTET STRING + +CRLTypes BAG-TYPE ::= { + x509CRL, + ... -- For future extensions +} + +-- Secret Bag + +SecretBag ::= SEQUENCE { + secretTypeId BAG-TYPE.&id ({SecretTypes}), + secretValue [0] EXPLICIT BAG-TYPE.&Type ({SecretTypes}{@secretTypeId}) +} + +SecretTypes BAG-TYPE ::= { + ... -- For future extensions +} + +-- Attributes + +PKCS12Attribute ::= SEQUENCE { + attrId ATTRIBUTE.&id ({PKCS12AttrSet}), + attrValues SET OF ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId}) +} -- This type is compatible with the X.500 type 'Attribute' + +PKCS12AttrSet ATTRIBUTE ::= { + friendlyName | + localKeyId, + ... -- Other attributes are allowed +} + +END
\ No newline at end of file diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-5.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-5.asn1 new file mode 100644 index 0000000000..91b0dc36bf --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-5.asn1 @@ -0,0 +1,202 @@ +-- PKCS #5 v2.1 ASN.1 Module +-- Revised October 27, 2012 + +-- This module has been checked for conformance with the +-- ASN.1 standard by the OSS ASN.1 Tools + +PKCS-5 { + iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-5(5) modules(16) + pkcs5v2-1(2)} + +DEFINITIONS EXPLICIT TAGS ::= + +BEGIN + +-- ============================ +-- Basic object identifiers +-- ============================ + +nistAlgorithms OBJECT IDENTIFIER ::= + {joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) 4} +oiw OBJECT IDENTIFIER ::= {iso(1) identified-organization(3) 14} +rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) 113549} +pkcs OBJECT IDENTIFIER ::= {rsadsi 1} +pkcs-5 OBJECT IDENTIFIER ::= {pkcs 5} + + +-- ============================ +-- Basic types and classes +-- ============================ + +AlgorithmIdentifier { ALGORITHM-IDENTIFIER:InfoObjectSet } ::= SEQUENCE { + algorithm ALGORITHM-IDENTIFIER.&id({InfoObjectSet}), + parameters ALGORITHM-IDENTIFIER.&Type({InfoObjectSet} {@algorithm}) OPTIONAL +} + +ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER + + +-- ============================ +-- PBKDF2 +-- ============================ + +PBKDF2Algorithms ALGORITHM-IDENTIFIER ::= + { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ...} + +id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12} + +algid-hmacWithSHA1 AlgorithmIdentifier {{PBKDF2-PRFs}} ::= + {algorithm id-hmacWithSHA1, parameters NULL : NULL} + +PBKDF2-params ::= SEQUENCE { + salt CHOICE { + specified OCTET STRING, + otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}} + }, + iterationCount INTEGER (1..MAX), + keyLength INTEGER (1..MAX) OPTIONAL, + prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 +} + +PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... } + +PBKDF2-PRFs ALGORITHM-IDENTIFIER ::= { + {NULL IDENTIFIED BY id-hmacWithSHA1} | + {NULL IDENTIFIED BY id-hmacWithSHA224} | + {NULL IDENTIFIED BY id-hmacWithSHA256} | + {NULL IDENTIFIED BY id-hmacWithSHA384} | + {NULL IDENTIFIED BY id-hmacWithSHA512} | + {NULL IDENTIFIED BY id-hmacWithSHA512-224} | + {NULL IDENTIFIED BY id-hmacWithSHA512-256}, + ... +} + + +-- ============================ + -- PBES1 +-- ============================ + +PBES1Algorithms ALGORITHM-IDENTIFIER ::= { + {PBEParameter IDENTIFIED BY pbeWithMD2AndDES-CBC} | + {PBEParameter IDENTIFIED BY pbeWithMD2AndRC2-CBC} | + {PBEParameter IDENTIFIED BY pbeWithMD5AndDES-CBC} | + {PBEParameter IDENTIFIED BY pbeWithMD5AndRC2-CBC} | + {PBEParameter IDENTIFIED BY pbeWithSHA1AndDES-CBC} | + {PBEParameter IDENTIFIED BY pbeWithSHA1AndRC2-CBC}, + ... +} + +pbeWithMD2AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 1} +pbeWithMD2AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 4} +pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3} +pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6} +pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10} +pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11} + +PBEParameter ::= SEQUENCE { + salt OCTET STRING (SIZE(8)), + iterationCount INTEGER +} + + +-- ============================ +-- PBES2 +-- ============================ + +PBES2Algorithms ALGORITHM-IDENTIFIER ::= { + {PBES2-params IDENTIFIED BY id-PBES2}, + ... +} + +id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13} + +PBES2-params ::= SEQUENCE { + keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}}, + encryptionScheme AlgorithmIdentifier {{PBES2-Encs}} +} + +PBES2-KDFs ALGORITHM-IDENTIFIER ::= { + {PBKDF2-params IDENTIFIED BY id-PBKDF2}, + ... +} + +PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... } + + +-- ============================ +-- PBMAC1 +-- ============================ + +PBMAC1Algorithms ALGORITHM-IDENTIFIER ::= { + {PBMAC1-params IDENTIFIED BY id-PBMAC1}, + ... +} + +id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14} + +PBMAC1-params ::= SEQUENCE { + keyDerivationFunc AlgorithmIdentifier {{PBMAC1-KDFs}}, + messageAuthScheme AlgorithmIdentifier {{PBMAC1-MACs}} +} + +PBMAC1-KDFs ALGORITHM-IDENTIFIER ::= { + {PBKDF2-params IDENTIFIED BY id-PBKDF2}, + ... +} + +PBMAC1-MACs ALGORITHM-IDENTIFIER ::= { ... } + +-- ============================ +-- Supporting techniques +-- ============================ + +digestAlgorithm OBJECT IDENTIFIER ::= {rsadsi 2} +encryptionAlgorithm OBJECT IDENTIFIER ::= {rsadsi 3} + +SupportingAlgorithms ALGORITHM-IDENTIFIER ::= { + {NULL IDENTIFIED BY id-hmacWithSHA1} | + {OCTET STRING (SIZE(8)) IDENTIFIED BY desCBC} | + {OCTET STRING (SIZE(8)) IDENTIFIED BY des-EDE3-CBC} | + {RC2-CBC-Parameter IDENTIFIED BY rc2CBC} | + {RC5-CBC-Parameters IDENTIFIED BY rc5-CBC-PAD} | + {OCTET STRING (SIZE(16)) IDENTIFIED BY aes128-CBC-PAD} | + {OCTET STRING (SIZE(16)) IDENTIFIED BY aes192-CBC-PAD} | + {OCTET STRING (SIZE(16)) IDENTIFIED BY aes256-CBC-PAD}, + ... +} + +id-hmacWithSHA1 OBJECT IDENTIFIER ::= {digestAlgorithm 7} +id-hmacWithSHA224 OBJECT IDENTIFIER ::= {digestAlgorithm 8} +id-hmacWithSHA256 OBJECT IDENTIFIER ::= {digestAlgorithm 9} +id-hmacWithSHA384 OBJECT IDENTIFIER ::= {digestAlgorithm 10} +id-hmacWithSHA512 OBJECT IDENTIFIER ::= {digestAlgorithm 11} +id-hmacWithSHA512-224 OBJECT IDENTIFIER ::= {digestAlgorithm 12} +id-hmacWithSHA512-256 OBJECT IDENTIFIER ::= {digestAlgorithm 13} + +-- from OIW +desCBC OBJECT IDENTIFIER ::= {oiw secsig(3) algorithms(2) 7} + +des-EDE3-CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 7} + +rc2CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 2} + +RC2-CBC-Parameter ::= SEQUENCE { + rc2ParameterVersion INTEGER OPTIONAL, + iv OCTET STRING (SIZE(8)) +} + +rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9} + +RC5-CBC-Parameters ::= SEQUENCE { + version INTEGER {v1-0(16)} (v1-0), + rounds INTEGER (8..127), + blockSizeInBits INTEGER (64 | 128), + iv OCTET STRING OPTIONAL +} + +aes OBJECT IDENTIFIER ::= { nistAlgorithms 1 } +aes128-CBC-PAD OBJECT IDENTIFIER ::= { aes 2 } +aes192-CBC-PAD OBJECT IDENTIFIER ::= { aes 22 } +aes256-CBC-PAD OBJECT IDENTIFIER ::= { aes 42 } + +END
\ No newline at end of file diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-7.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-7.asn1 new file mode 100644 index 0000000000..4cea8db240 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-7.asn1 @@ -0,0 +1,326 @@ +PKCS-7 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-7(7) + modules(0) pkcs-7(1)} + +DEFINITIONS EXPLICIT TAGS ::= +BEGIN + +-- +-- 3. Definitions +-- + +-- EXPORTS All; + +IMPORTS + +informationFramework, authenticationFramework + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + + Name, ATTRIBUTE + FROM InformationFramework informationFramework + + ALGORITHM, Certificate, CertificateSerialNumber, + CertificateList + FROM AuthenticationFramework authenticationFramework + + contentType, messageDigest, signingTime, counterSignature + FROM PKCS-9 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) + pkcs-9(9) modules(0) pkcs-9(1)}; +-- +-- 6. Useful types +-- + +-- Also defined in X.509 +-- Redeclared here as a parameterized type +AlgorithmIdentifier {ALGORITHM:IOSet} ::= SEQUENCE { + algorithm ALGORITHM.&id({IOSet}), + parameters ALGORITHM.&Type({IOSet}{@algorithm}) OPTIONAL +} + +-- Also defined in X.501 +-- Redeclared here as a parameterized type +Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE { + type ATTRIBUTE.&id({IOSet}), + values SET SIZE (1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type}) +} + +CertificateRevocationLists ::= + SET OF CertificateList + +Certificates ::= + SEQUENCE OF Certificate + +CRLSequence ::= + SEQUENCE OF CertificateList + +ContentEncryptionAlgorithmIdentifier ::= + AlgorithmIdentifier {{ContentEncryptionAlgorithms}} + +ContentEncryptionAlgorithms ALGORITHM ::= { + ... -- add any application-specific algorithms here +} + +DigestAlgorithmIdentifier ::= + AlgorithmIdentifier {{DigestAlgorithms}} + +DigestAlgorithms ALGORITHM ::= { + ... -- add any application-specific algorithms here +} + +DigestEncryptionAlgorithmIdentifier ::= + AlgorithmIdentifier {{DigestEncryptionAlgorithms}} + +DigestEncryptionAlgorithms ALGORITHM ::= { + ... -- add any application-specific algorithms here +} + +ExtendedCertificateOrCertificate ::= CHOICE { + certificate Certificate, -- X.509 + extendedCertificate [0] IMPLICIT ExtendedCertificate -- PKCS#6 +} + +ExtendedCertificate ::= Certificate -- cheating + +ExtendedCertificatesAndCertificates ::= + SET OF ExtendedCertificateOrCertificate + +IssuerAndSerialNumber ::= SEQUENCE { + issuer Name, + serialNumber CertificateSerialNumber +} + +KeyEncryptionAlgorithmIdentifier ::= + AlgorithmIdentifier {{KeyEncryptionAlgorithms}} + +KeyEncryptionAlgorithms ALGORITHM ::= { + ... -- add any application-specific algorithms here +} + +-- +-- 7. General syntax +-- + +ContentInfo ::= SEQUENCE { + contentType ContentType, + content [0] EXPLICIT CONTENTS.&Type({Contents}{@contentType}) +OPTIONAL +} + +CONTENTS ::= TYPE-IDENTIFIER + +Contents CONTENTS ::= { + {Data IDENTIFIED BY data} | + {SignedData IDENTIFIED BY signedData} | + {EnvelopedData IDENTIFIED BY envelopedData} | + {SignedAndEnvelopedData IDENTIFIED BY signedAndEnvelopedData} | + {DigestedData IDENTIFIED BY digestedData} | + {EncryptedData IDENTIFIED BY encryptedData}, + ... -- add any application-specific types/contents here +} + +ContentType ::= CONTENTS.&id({Contents}) + +-- +-- 8. Data content type +-- + +Data ::= OCTET STRING + +-- +-- 9. Signed-data content type +-- + +SignedData ::= SEQUENCE { + version INTEGER {sdVer1(1), sdVer2(2)} (sdVer1 | sdVer2), + digestAlgorithms + DigestAlgorithmIdentifiers, + contentInfo ContentInfo, + certificates CHOICE { + certSet [0] IMPLICIT ExtendedCertificatesAndCertificates, + certSequence [2] IMPLICIT Certificates + } OPTIONAL, + crls CHOICE { + crlSet [1] IMPLICIT CertificateRevocationLists, + crlSequence [3] IMPLICIT CRLSequence + } OPTIONAL, + signerInfos SignerInfos +} (WITH COMPONENTS { ..., version (sdVer1), + digestAlgorithms (WITH COMPONENTS { ..., daSet PRESENT }), + certificates (WITH COMPONENTS { ..., certSequence ABSENT }), + crls (WITH COMPONENTS { ..., crlSequence ABSENT }), + signerInfos (WITH COMPONENTS { ..., siSet PRESENT }) + } | + WITH COMPONENTS { ..., version (sdVer2), + digestAlgorithms (WITH COMPONENTS { ..., daSequence PRESENT }), + certificates (WITH COMPONENTS { ..., certSet ABSENT }), + crls (WITH COMPONENTS { ..., crlSet ABSENT }), + signerInfos (WITH COMPONENTS { ..., siSequence PRESENT }) +}) + +SignerInfos ::= CHOICE { + siSet SET OF SignerInfo, + siSequence SEQUENCE OF SignerInfo +} + +DigestAlgorithmIdentifiers ::= CHOICE { + daSet SET OF DigestAlgorithmIdentifier, + daSequence SEQUENCE OF DigestAlgorithmIdentifier +} + +SignerInfo ::= SEQUENCE { + version INTEGER {siVer1(1), siVer2(2)} (siVer1 | siVer2), + issuerAndSerialNumber + IssuerAndSerialNumber, + digestAlgorithm DigestAlgorithmIdentifier, + authenticatedAttributes CHOICE { + aaSet [0] IMPLICIT SET OF Attribute {{Authenticated}}, + aaSequence [2] EXPLICIT SEQUENCE OF Attribute {{Authenticated}} + -- Explicit because easier to compute digest on sequence of attributes and then reuse + -- encoded sequence in aaSequence. + } OPTIONAL, + digestEncryptionAlgorithm + DigestEncryptionAlgorithmIdentifier, + encryptedDigest EncryptedDigest, + unauthenticatedAttributes CHOICE { + uaSet [1] IMPLICIT SET OF Attribute {{Unauthenticated}}, + uaSequence [3] IMPLICIT SEQUENCE OF Attribute {{Unauthenticated}} + } OPTIONAL +} (WITH COMPONENTS { ..., version (siVer1), + authenticatedAttributes (WITH COMPONENTS { ..., aaSequence ABSENT }), + unauthenticatedAttributes (WITH COMPONENTS { ..., uaSequence ABSENT }) +} | WITH COMPONENTS { ..., version (siVer2), + authenticatedAttributes (WITH COMPONENTS { ..., aaSet ABSENT }), + unauthenticatedAttributes (WITH COMPONENTS { ..., uaSet ABSENT }) +}) + +Authenticated ATTRIBUTE ::= { + contentType | + messageDigest, + ..., -- add application-specific attributes here + signingTime +} + +Unauthenticated ATTRIBUTE ::= { + ..., -- add application-specific attributes here + counterSignature +} + +EncryptedDigest ::= OCTET STRING + +DigestInfo ::= SEQUENCE { + digestAlgorithm DigestAlgorithmIdentifier, + digest Digest +} + +Digest ::= OCTET STRING + +-- +-- 10. Enveloped-data content type +-- + +EnvelopedData ::= SEQUENCE { + version INTEGER {edVer0(0), edVer1(1)} (edVer0 | edVer1), + recipientInfos RecipientInfos, + encryptedContentInfo + EncryptedContentInfo +} (WITH COMPONENTS { ..., version (edVer0), + recipientInfos (WITH COMPONENTS { ..., riSet PRESENT }) +} | WITH COMPONENTS { ..., version (edVer1), + recipientInfos (WITH COMPONENTS { ..., riSequence PRESENT }) +}) + +RecipientInfos ::= CHOICE { + riSet SET OF RecipientInfo, + riSequence SEQUENCE OF RecipientInfo +} + +EncryptedContentInfo ::= SEQUENCE { + contentType ContentType, + contentEncryptionAlgorithm + ContentEncryptionAlgorithmIdentifier, + encryptedContent + [0] IMPLICIT EncryptedContent OPTIONAL +} + +EncryptedContent ::= OCTET STRING + +RecipientInfo ::= SEQUENCE { + version INTEGER {riVer0(0)} (riVer0), + issuerAndSerialNumber + IssuerAndSerialNumber, + keyEncryptionAlgorithm + KeyEncryptionAlgorithmIdentifier, + encryptedKey EncryptedKey +} + +EncryptedKey ::= OCTET STRING + +-- +-- 11. Signed-and-enveloped-data content type +-- + +SignedAndEnvelopedData ::= SEQUENCE { + version INTEGER {seVer1(1), seVer2(2)} (seVer1 | seVer2), + recipientInfos RecipientInfos, + digestAlgorithms + DigestAlgorithmIdentifiers, + encryptedContentInfo + EncryptedContentInfo, + certificates CHOICE { + certSet [0] IMPLICIT ExtendedCertificatesAndCertificates, + certSequence [2] IMPLICIT Certificates + } OPTIONAL, + crls CHOICE { + crlSet [1] IMPLICIT CertificateRevocationLists, + crlSequence [3] IMPLICIT CRLSequence + } OPTIONAL, + signerInfos SignerInfos +} (WITH COMPONENTS { ..., version (seVer1), + recipientInfos (WITH COMPONENTS { ..., riSet PRESENT }), + digestAlgorithms (WITH COMPONENTS { ..., daSet PRESENT }), + certificates (WITH COMPONENTS { ..., certSequence ABSENT }), + crls (WITH COMPONENTS { ..., crlSequence ABSENT }), + signerInfos (WITH COMPONENTS { ..., siSet PRESENT }) +} | + WITH COMPONENTS { ..., version (seVer2), + recipientInfos (WITH COMPONENTS { ..., riSequence PRESENT }), + digestAlgorithms (WITH COMPONENTS { ..., daSequence PRESENT }), + certificates (WITH COMPONENTS { ..., certSet ABSENT }), + crls (WITH COMPONENTS { ..., crlSet ABSENT }), + signerInfos (WITH COMPONENTS { ..., siSequence PRESENT }) +}) + +-- +-- 12. Digested-data content type +-- + +DigestedData ::= SEQUENCE { + version INTEGER {ddVer0(0)} (ddVer0), + digestAlgorithm DigestAlgorithmIdentifier, + contentInfo ContentInfo, + digest Digest +} + +-- +-- 13. Encrypted-data content type +-- + +EncryptedData ::= SEQUENCE { + version INTEGER {edVer0(0)} (edVer0), + encryptedContentInfo EncryptedContentInfo +} + +-- +-- 14. Object Identifiers +-- + +pkcs-7 OBJECT IDENTIFIER ::= + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 7 } +data OBJECT IDENTIFIER ::= { pkcs-7 1 } +signedData OBJECT IDENTIFIER ::= { pkcs-7 2 } +envelopedData OBJECT IDENTIFIER ::= { pkcs-7 3 } +signedAndEnvelopedData OBJECT IDENTIFIER ::= { pkcs-7 4 } +digestedData OBJECT IDENTIFIER ::= { pkcs-7 5 } +encryptedData OBJECT IDENTIFIER ::= { pkcs-7 6 } + +END
\ No newline at end of file diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-8.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-8.asn1 new file mode 100644 index 0000000000..266f90170a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-8.asn1 @@ -0,0 +1,61 @@ +PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-8(8) + modules(1) pkcs-8(1)} + +-- $Revision: 1.5 $ + +-- This module has been checked for conformance with the ASN.1 +-- standard by the OSS ASN.1 Tools + +DEFINITIONS IMPLICIT TAGS ::= + +BEGIN + +-- EXPORTS All -- +-- All types and values defined in this module is exported for use in other +-- ASN.1 modules. + +IMPORTS + +informationFramework + FROM UsefulDefinitions {joint-iso-itu-t(2) ds(5) module(1) + usefulDefinitions(0) 3} + +Attribute + FROM InformationFramework informationFramework + +AlgorithmIdentifier, ALGORITHM-IDENTIFIER + FROM PKCS-5 {iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-5(5) modules(16) pkcs-5(1)}; + +-- Private-key information syntax + +PrivateKeyInfo ::= SEQUENCE { + version Version, + privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}}, + privateKey PrivateKey, + attributes [0] Attributes OPTIONAL } + +Version ::= INTEGER {v1(0)} (v1,...) + +PrivateKey ::= OCTET STRING + +Attributes ::= SET OF Attribute + +-- Encrypted private-key information syntax + +EncryptedPrivateKeyInfo ::= SEQUENCE { + encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}}, + encryptedData EncryptedData +} + +EncryptedData ::= OCTET STRING + +PrivateKeyAlgorithms ALGORITHM-IDENTIFIER ::= { + ... -- For local profiles +} + +KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= { + ... -- For local profiles +} + +END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-9.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-9.asn1 new file mode 100644 index 0000000000..cd561f4d7e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS-9.asn1 @@ -0,0 +1,391 @@ +PKCS-9 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) +pkcs-9(9) modules(0) pkcs-9(1)} + +-- $Revision$ + +DEFINITIONS IMPLICIT TAGS ::= + +BEGIN + +-- EXPORTS All -- +-- All types and values defined in this module is exported for use in +-- other ASN.1 modules. + +IMPORTS + +informationFramework, authenticationFramework, selectedAttributeTypes, + upperBounds , id-at + FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) + usefulDefinitions(0) 3} + +ub-name + FROM UpperBounds upperBounds + +OBJECT-CLASS, ATTRIBUTE, MATCHING-RULE, Attribute, top, objectIdentifierMatch + FROM InformationFramework informationFramework + +ALGORITHM, Extensions, Time + FROM AuthenticationFramework authenticationFramework + +DirectoryString, octetStringMatch, caseIgnoreMatch, caseExactMatch, + generalizedTimeMatch, integerMatch, serialNumber + FROM SelectedAttributeTypes selectedAttributeTypes + +ContentInfo, SignerInfo + FROM CryptographicMessageSyntax-2009 {iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) modules(0) cms(1)} + +EncryptedPrivateKeyInfo + FROM PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-8(8) modules(1) pkcs-8(1)} + +PFX + FROM PKCS-12 {iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-12(12) modules(0) pkcs-12(1)} + +-- PKCS15Token +-- FROM PKCS-15 {iso(1) member-body(2) us(840) rsadsi(113549) +-- pkcs(1) pkcs-15(15) modules(1) pkcs-15(1)} +; + +-- Upper bounds +pkcs-9-ub-pkcs9String INTEGER ::= 255 +pkcs-9-ub-emailAddress INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-unstructuredName INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-unstructuredAddress INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-challengePassword INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-friendlyName INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-signingDescription INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-match INTEGER ::= pkcs-9-ub-pkcs9String +pkcs-9-ub-pseudonym INTEGER ::= ub-name +pkcs-9-ub-placeOfBirth INTEGER ::= ub-name + +-- Object Identifiers + +pkcs-9 OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) + rsadsi(113549) pkcs(1) 9} + + -- Main arcs +pkcs-9-mo OBJECT IDENTIFIER ::= {pkcs-9 0} -- Modules branch +pkcs-9-oc OBJECT IDENTIFIER ::= {pkcs-9 24} -- Object class branch +pkcs-9-at OBJECT IDENTIFIER ::= {pkcs-9 25} -- Attribute branch, for new attributes +pkcs-9-sx OBJECT IDENTIFIER ::= {pkcs-9 26} -- For syntaxes (RFC 2252) +pkcs-9-mr OBJECT IDENTIFIER ::= {pkcs-9 27} -- Matching rules + + -- Object classes +pkcs-9-oc-pkcsEntity OBJECT IDENTIFIER ::= {pkcs-9-oc 1} +pkcs-9-oc-naturalPerson OBJECT IDENTIFIER ::= {pkcs-9-oc 2} + + -- Attributes +pkcs-9-at-emailAddress OBJECT IDENTIFIER ::= {pkcs-9 1} +pkcs-9-at-unstructuredName OBJECT IDENTIFIER ::= {pkcs-9 2} +pkcs-9-at-contentType OBJECT IDENTIFIER ::= {pkcs-9 3} +pkcs-9-at-messageDigest OBJECT IDENTIFIER ::= {pkcs-9 4} +pkcs-9-at-signingTime OBJECT IDENTIFIER ::= {pkcs-9 5} +pkcs-9-at-counterSignature OBJECT IDENTIFIER ::= {pkcs-9 6} +pkcs-9-at-challengePassword OBJECT IDENTIFIER ::= {pkcs-9 7} +pkcs-9-at-unstructuredAddress OBJECT IDENTIFIER ::= {pkcs-9 8} +pkcs-9-at-extendedCertificateAttributes OBJECT IDENTIFIER ::= {pkcs-9 9} + +-- Obsolete (?) attribute identifiers, purportedly from "tentative +-- PKCS #9 draft" +-- pkcs-9-at-issuerAndSerialNumber OBJECT IDENTIFIER ::= {pkcs-9 10} +-- pkcs-9-at-passwordCheck OBJECT IDENTIFIER ::= {pkcs-9 11} +-- pkcs-9-at-publicKey OBJECT IDENTIFIER ::= {pkcs-9 12} + +pkcs-9-at-signingDescription OBJECT IDENTIFIER ::= {pkcs-9 13} +pkcs-9-at-extensionRequest OBJECT IDENTIFIER ::= {pkcs-9 14} +pkcs-9-at-smimeCapabilities OBJECT IDENTIFIER ::= {pkcs-9 15} + +-- Unused (?) +-- pkcs-9-at-? OBJECT IDENTIFIER ::= {pkcs-9 17} +-- pkcs-9-at-? OBJECT IDENTIFIER ::= {pkcs-9 18} +-- pkcs-9-at-? OBJECT IDENTIFIER ::= {pkcs-9 19} + +pkcs-9-at-friendlyName OBJECT IDENTIFIER ::= {pkcs-9 20} +pkcs-9-at-localKeyId OBJECT IDENTIFIER ::= {pkcs-9 21} +pkcs-9-at-userPKCS12 OBJECT IDENTIFIER ::= {2 16 840 1 113730 3 1 216} +pkcs-9-at-pkcs15Token OBJECT IDENTIFIER ::= {pkcs-9-at 1} +pkcs-9-at-encryptedPrivateKeyInfo OBJECT IDENTIFIER ::= {pkcs-9-at 2} +pkcs-9-at-randomNonce OBJECT IDENTIFIER ::= {pkcs-9-at 3} +pkcs-9-at-sequenceNumber OBJECT IDENTIFIER ::= {pkcs-9-at 4} +pkcs-9-at-pkcs7PDU OBJECT IDENTIFIER ::= {pkcs-9-at 5} + + -- IETF PKIX Attribute branch +ietf-at OBJECT IDENTIFIER ::= {1 3 6 1 5 5 7 9} + +pkcs-9-at-dateOfBirth OBJECT IDENTIFIER ::= {ietf-at 1} +pkcs-9-at-placeOfBirth OBJECT IDENTIFIER ::= {ietf-at 2} +pkcs-9-at-gender OBJECT IDENTIFIER ::= {ietf-at 3} +pkcs-9-at-countryOfCitizenship OBJECT IDENTIFIER ::= {ietf-at 4} +pkcs-9-at-countryOfResidence OBJECT IDENTIFIER ::= {ietf-at 5} + + -- Syntaxes (for use with LDAP accessible directories) +pkcs-9-sx-pkcs9String OBJECT IDENTIFIER ::= {pkcs-9-sx 1} +pkcs-9-sx-signingTime OBJECT IDENTIFIER ::= {pkcs-9-sx 2} + + -- Matching rules +pkcs-9-mr-caseIgnoreMatch OBJECT IDENTIFIER ::= {pkcs-9-mr 1} +pkcs-9-mr-signingTimeMatch OBJECT IDENTIFIER ::= {pkcs-9-mr 2} + + -- Arcs with attributes defined elsewhere +smime OBJECT IDENTIFIER ::= {pkcs-9 16} + -- Main arc for S/MIME (RFC 2633) +certTypes OBJECT IDENTIFIER ::= {pkcs-9 22} + -- Main arc for certificate types defined in PKCS #12 +crlTypes OBJECT IDENTIFIER ::= {pkcs-9 23} + -- Main arc for crl types defined in PKCS #12 + + -- Other object identifiers +id-at-pseudonym OBJECT IDENTIFIER ::= {id-at 65} + +-- Useful types + +PKCS9String {INTEGER : maxSize} ::= CHOICE { + ia5String IA5String (SIZE(1..maxSize)), + directoryString DirectoryString {maxSize} +} + +-- Object classes + +pkcsEntity OBJECT-CLASS ::= { + SUBCLASS OF { top } + KIND auxiliary + MAY CONTAIN { PKCSEntityAttributeSet } + ID pkcs-9-oc-pkcsEntity +} + +naturalPerson OBJECT-CLASS ::= { + SUBCLASS OF { top } + KIND auxiliary + MAY CONTAIN { NaturalPersonAttributeSet } + ID pkcs-9-oc-naturalPerson +} + +-- Attribute sets + +PKCSEntityAttributeSet ATTRIBUTE ::= { + pKCS7PDU | + userPKCS12 | +-- pKCS15Token | + encryptedPrivateKeyInfo, + ... -- For future extensions +} + +NaturalPersonAttributeSet ATTRIBUTE ::= { + emailAddress | + unstructuredName | + unstructuredAddress | + dateOfBirth | + placeOfBirth | + gender | + countryOfCitizenship | + countryOfResidence | + pseudonym | + serialNumber, + ... -- For future extensions +} + +-- Attributes + +pKCS7PDU ATTRIBUTE ::= { + WITH SYNTAX ContentInfo + ID pkcs-9-at-pkcs7PDU +} + +userPKCS12 ATTRIBUTE ::= { + WITH SYNTAX PFX + ID pkcs-9-at-userPKCS12 +} + +-- pKCS15Token ATTRIBUTE ::= { +-- WITH SYNTAX PKCS15Token +-- ID pkcs-9-at-pkcs15Token +-- } + +encryptedPrivateKeyInfo ATTRIBUTE ::= { + WITH SYNTAX EncryptedPrivateKeyInfo + ID pkcs-9-at-encryptedPrivateKeyInfo +} + +emailAddress ATTRIBUTE ::= { + WITH SYNTAX IA5String (SIZE(1..pkcs-9-ub-emailAddress)) + EQUALITY MATCHING RULE pkcs9CaseIgnoreMatch + ID pkcs-9-at-emailAddress +} + +unstructuredName ATTRIBUTE ::= { + WITH SYNTAX PKCS9String {pkcs-9-ub-unstructuredName} + EQUALITY MATCHING RULE pkcs9CaseIgnoreMatch + ID pkcs-9-at-unstructuredName +} + +unstructuredAddress ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {pkcs-9-ub-unstructuredAddress} + EQUALITY MATCHING RULE caseIgnoreMatch + ID pkcs-9-at-unstructuredAddress +} + +dateOfBirth ATTRIBUTE ::= { + WITH SYNTAX GeneralizedTime + EQUALITY MATCHING RULE generalizedTimeMatch + SINGLE VALUE TRUE + ID pkcs-9-at-dateOfBirth +} + +placeOfBirth ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {pkcs-9-ub-placeOfBirth} + EQUALITY MATCHING RULE caseExactMatch + SINGLE VALUE TRUE + ID pkcs-9-at-placeOfBirth +} + +gender ATTRIBUTE ::= { + WITH SYNTAX PrintableString (SIZE(1) ^ FROM ("M" | "F" | "m" | "f")) + EQUALITY MATCHING RULE caseIgnoreMatch + SINGLE VALUE TRUE + ID pkcs-9-at-gender +} + +countryOfCitizenship ATTRIBUTE ::= { + WITH SYNTAX PrintableString (SIZE(2))(CONSTRAINED BY { + -- Must be a two-letter country acronym in accordance with + -- ISO/IEC 3166 --}) + EQUALITY MATCHING RULE caseIgnoreMatch + ID pkcs-9-at-countryOfCitizenship +} + +countryOfResidence ATTRIBUTE ::= { + WITH SYNTAX PrintableString (SIZE(2))(CONSTRAINED BY { + -- Must be a two-letter country acronym in accordance with + -- ISO/IEC 3166 --}) + EQUALITY MATCHING RULE caseIgnoreMatch + ID pkcs-9-at-countryOfResidence +} + +pseudonym ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {pkcs-9-ub-pseudonym} + EQUALITY MATCHING RULE caseExactMatch + ID id-at-pseudonym +} + +contentType ATTRIBUTE ::= { + WITH SYNTAX ContentType + EQUALITY MATCHING RULE objectIdentifierMatch + SINGLE VALUE TRUE + ID pkcs-9-at-contentType +} + +ContentType ::= OBJECT IDENTIFIER + +messageDigest ATTRIBUTE ::= { + WITH SYNTAX MessageDigest + EQUALITY MATCHING RULE octetStringMatch + SINGLE VALUE TRUE + ID pkcs-9-at-messageDigest +} + +MessageDigest ::= OCTET STRING + +signingTime ATTRIBUTE ::= { + WITH SYNTAX SigningTime + EQUALITY MATCHING RULE signingTimeMatch + SINGLE VALUE TRUE + ID pkcs-9-at-signingTime +} + +SigningTime ::= Time -- imported from ISO/IEC 9594-8 + +randomNonce ATTRIBUTE ::= { + WITH SYNTAX RandomNonce + EQUALITY MATCHING RULE octetStringMatch + SINGLE VALUE TRUE + ID pkcs-9-at-randomNonce +} + +RandomNonce ::= OCTET STRING (SIZE(4..MAX)) -- At least four bytes long + +sequenceNumber ATTRIBUTE ::= { + WITH SYNTAX SequenceNumber + EQUALITY MATCHING RULE integerMatch + SINGLE VALUE TRUE + ID pkcs-9-at-sequenceNumber +} + +SequenceNumber ::= INTEGER (1..MAX) + +counterSignature ATTRIBUTE ::= { + WITH SYNTAX SignerInfo + ID pkcs-9-at-counterSignature +} + +challengePassword ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {pkcs-9-ub-challengePassword} + EQUALITY MATCHING RULE caseExactMatch + SINGLE VALUE TRUE + ID pkcs-9-at-challengePassword +} + +extensionRequest ATTRIBUTE ::= { + WITH SYNTAX ExtensionRequest + SINGLE VALUE TRUE + ID pkcs-9-at-extensionRequest +} + +ExtensionRequest ::= Extensions + +extendedCertificateAttributes ATTRIBUTE ::= { + WITH SYNTAX SET OF Attribute + SINGLE VALUE TRUE + ID pkcs-9-at-extendedCertificateAttributes +} + +friendlyName ATTRIBUTE ::= { + WITH SYNTAX BMPString (SIZE(1..pkcs-9-ub-friendlyName)) + EQUALITY MATCHING RULE caseIgnoreMatch + SINGLE VALUE TRUE + ID pkcs-9-at-friendlyName +} + +localKeyId ATTRIBUTE ::= { + WITH SYNTAX OCTET STRING + EQUALITY MATCHING RULE octetStringMatch + SINGLE VALUE TRUE + ID pkcs-9-at-localKeyId +} + +signingDescription ATTRIBUTE ::= { + WITH SYNTAX DirectoryString {pkcs-9-ub-signingDescription} + EQUALITY MATCHING RULE caseIgnoreMatch + SINGLE VALUE TRUE + ID pkcs-9-at-signingDescription +} + +smimeCapabilities ATTRIBUTE ::= { + WITH SYNTAX SMIMECapabilities + SINGLE VALUE TRUE + ID pkcs-9-at-smimeCapabilities +} + +SMIMECapabilities ::= SEQUENCE OF SMIMECapability + +SMIMECapability ::= SEQUENCE { + algorithm ALGORITHM.&id ({SMIMEv3Algorithms}), + parameters ALGORITHM.&Type ({SMIMEv3Algorithms}{@algorithm}) +} + +SMIMEv3Algorithms ALGORITHM ::= {...-- See RFC 2633 --} + + -- Matching rules + +pkcs9CaseIgnoreMatch MATCHING-RULE ::= { + SYNTAX PKCS9String {pkcs-9-ub-match} + ID pkcs-9-mr-caseIgnoreMatch +} + +signingTimeMatch MATCHING-RULE ::= { + SYNTAX SigningTime + ID pkcs-9-mr-signingTimeMatch +} + +END
\ No newline at end of file diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS7BodyPartType.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS7BodyPartType.asn1 new file mode 100644 index 0000000000..1bcc2281a1 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKCS7BodyPartType.asn1 @@ -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 PKCS-7 {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/rfcs/PKIX-CommonTypes-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX-CommonTypes-2009.asn1 new file mode 100644 index 0000000000..fde5bddbf3 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX-CommonTypes-2009.asn1 @@ -0,0 +1,166 @@ + PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} + + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + + -- ATTRIBUTE + -- + -- Describe the set of data associated with an attribute of some type + -- + -- &id is an OID identifying the attribute + -- &Type is the ASN.1 type structure for the attribute; not all + -- attributes have a data structure, so this field is optional + -- &minCount contains the minimum number of times the attribute can + -- occur in an AttributeSet + -- &maxCount contains the maximum number of times the attribute can + -- appear in an AttributeSet + -- Note: this cannot be automatically enforced as the field + -- cannot be defaulted to MAX. + -- &equality-match contains information about how matching should be + -- done + -- + -- Currently we are using two different prefixes for attributes. + -- + -- at- for certificate attributes + -- aa- for CMS attributes + -- + + ATTRIBUTE ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &Type OPTIONAL, + &equality-match MATCHING-RULE OPTIONAL, + &minCount INTEGER DEFAULT 1, + &maxCount INTEGER OPTIONAL + } WITH SYNTAX { + [TYPE &Type] + [EQUALITY MATCHING RULE &equality-match] + [COUNTS [MIN &minCount] [MAX &maxCount]] + IDENTIFIED BY &id + } + + -- Specification of MATCHING-RULE information object class + -- + + MATCHING-RULE ::= CLASS { + &ParentMatchingRules MATCHING-RULE OPTIONAL, + &AssertionType OPTIONAL, + &uniqueMatchIndicator ATTRIBUTE OPTIONAL, + &id OBJECT IDENTIFIER UNIQUE + } + WITH SYNTAX { + [PARENT &ParentMatchingRules] + [SYNTAX &AssertionType] + [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator] + ID &id + } + + -- AttributeSet + -- + -- Used when a set of attributes is to occur. + -- + -- type contains the identifier of the attribute + -- values contains a set of values where the structure of the ASN.1 + -- is defined by the attribute + -- + -- The parameter contains the set of objects describing + -- those attributes that can occur in this location. + -- + + AttributeSet{ATTRIBUTE:AttrSet} ::= SEQUENCE { + type ATTRIBUTE.&id({AttrSet}), + values SET SIZE (1..MAX) OF ATTRIBUTE. + &Type({AttrSet}{@type}) + } + + -- SingleAttribute + -- + -- Used for a single valued attribute + -- + -- The parameter contains the set of objects describing the + -- attributes that can occur in this location + -- + + SingleAttribute{ATTRIBUTE:AttrSet} ::= SEQUENCE { + type ATTRIBUTE.&id({AttrSet}), + value ATTRIBUTE.&Type({AttrSet}{@type}) + } + + -- EXTENSION + -- + -- This class definition is used to describe the association of + -- object identifier and ASN.1 type structure for extensions + -- + -- All extensions are prefixed with ext- + -- + -- &id contains the object identifier for the extension + -- &ExtnType specifies the ASN.1 type structure for the extension + -- &Critical contains the set of legal values for the critical field. + -- This is normally {TRUE|FALSE} but in some instances may be + -- restricted to just one of these values. + -- + + EXTENSION ::= CLASS { + &id OBJECT IDENTIFIER UNIQUE, + &ExtnType, + &Critical BOOLEAN DEFAULT {TRUE | FALSE } + } WITH SYNTAX { + SYNTAX &ExtnType IDENTIFIED BY &id + [CRITICALITY &Critical] + } + + -- Extensions + -- + -- Used for a sequence of extensions. + -- + -- The parameter contains the set of legal extensions that can + -- occur in this sequence. + -- + + Extensions{EXTENSION:ExtensionSet} ::= + SEQUENCE SIZE (1..MAX) OF Extension{{ExtensionSet}} + + -- Extension + -- + -- Used for a single extension + -- + -- The parameter contains the set of legal extensions that can + -- occur in this extension. + -- + -- The restriction on the critical field has been commented out + -- the authors are not completely sure it is correct. + -- The restriction could be done using custom code rather than + -- compiler-generated code, however. + -- + + Extension{EXTENSION:ExtensionSet} ::= SEQUENCE { + extnID EXTENSION.&id({ExtensionSet}), + critical BOOLEAN + -- (EXTENSION.&Critical({ExtensionSet}{@extnID})) + DEFAULT FALSE, + extnValue OCTET STRING (CONTAINING + EXTENSION.&ExtnType({ExtensionSet}{@extnID})) + -- contains the DER encoding of the ASN.1 value + -- corresponding to the extension type identified + -- by extnID + } + + -- Security Category + -- + -- Security categories are used both for specifying clearances and + -- for labeling objects. We move this here from RFC 3281 so that + -- they will use a common single object class to express this + -- information. + -- + + SECURITY-CATEGORY ::= TYPE-IDENTIFIER + + SecurityCategory{SECURITY-CATEGORY:Supported} ::= SEQUENCE { + type [0] IMPLICIT SECURITY-CATEGORY. + &id({Supported}), + value [1] EXPLICIT SECURITY-CATEGORY. + &Type({Supported}{@type}) + } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX-X400Address-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX-X400Address-2009.asn1 new file mode 100644 index 0000000000..41cbaea67e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX-X400Address-2009.asn1 @@ -0,0 +1,300 @@ + -- + -- This module is used to isolate all the X.400 naming information. + -- There is no reason to expect this to occur in a PKIX certificate. + -- + + PKIX-X400Address-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-x400address-02(60) } + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + + -- X.400 address syntax starts here + + ORAddress ::= SEQUENCE { + built-in-standard-attributes BuiltInStandardAttributes, + built-in-domain-defined-attributes + BuiltInDomainDefinedAttributes OPTIONAL, + + -- see also teletex-domain-defined-attributes + extension-attributes ExtensionAttributes OPTIONAL } + + -- Built-in Standard Attributes + + BuiltInStandardAttributes ::= SEQUENCE { + country-name CountryName OPTIONAL, + administration-domain-name AdministrationDomainName OPTIONAL, + network-address [0] IMPLICIT NetworkAddress OPTIONAL, + -- see also extended-network-address + terminal-identifier [1] IMPLICIT TerminalIdentifier OPTIONAL, + private-domain-name [2] PrivateDomainName OPTIONAL, + organization-name [3] IMPLICIT OrganizationName OPTIONAL, + -- see also teletex-organization-name + numeric-user-identifier [4] IMPLICIT NumericUserIdentifier + OPTIONAL, + personal-name [5] IMPLICIT PersonalName OPTIONAL, + -- see also teletex-personal-name + organizational-unit-names [6] IMPLICIT 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] IMPLICIT PrintableString + (SIZE (1..ub-surname-length)), + given-name [1] IMPLICIT PrintableString + (SIZE (1..ub-given-name-length)) OPTIONAL, + initials [2] IMPLICIT PrintableString + (SIZE (1..ub-initials-length)) OPTIONAL, + generation-qualifier [3] IMPLICIT 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 + + EXTENSION-ATTRIBUTE ::= CLASS { + &id INTEGER (0..ub-extension-attributes) UNIQUE, + &Type + } WITH SYNTAX { &Type IDENTIFIED BY &id } + + ExtensionAttribute ::= SEQUENCE { + extension-attribute-type [0] IMPLICIT EXTENSION-ATTRIBUTE. + &id({SupportedExtensionAttributes}), + extension-attribute-value [1] EXTENSION-ATTRIBUTE. + &Type({SupportedExtensionAttributes} + {@extension-attribute-type})} + + SupportedExtensionAttributes EXTENSION-ATTRIBUTE ::= { + ea-commonName | ea-teletexCommonName | ea-teletexOrganizationName + | ea-teletexPersonalName | ea-teletexOrganizationalUnitNames | + ea-pDSName | ea-physicalDeliveryCountryName | ea-postalCode | + ea-physicalDeliveryOfficeName | ea-physicalDeliveryOfficeNumber | + ea-extensionORAddressComponents | ea-physicalDeliveryPersonalName + | ea-physicalDeliveryOrganizationName | + ea-extensionPhysicalDeliveryAddressComponents | + ea-unformattedPostalAddress | ea-streetAddress | + ea-postOfficeBoxAddress | ea-posteRestanteAddress | + ea-uniquePostalName | ea-localPostalAttributes | + ea-extendedNetworkAddress | ea-terminalType | + ea-teletexDomainDefinedAttributes, ... } + + -- Extension types and attribute values + + ea-commonName EXTENSION-ATTRIBUTE ::= { PrintableString + (SIZE (1..ub-common-name-length)) IDENTIFIED BY 1 } + + ea-teletexCommonName EXTENSION-ATTRIBUTE ::= {TeletexString + (SIZE (1..ub-common-name-length)) IDENTIFIED BY 2 } + + ea-teletexOrganizationName EXTENSION-ATTRIBUTE::= { TeletexString + (SIZE (1..ub-organization-name-length)) IDENTIFIED BY 3 } + + ea-teletexPersonalName EXTENSION-ATTRIBUTE ::= {SET { + surname [0] IMPLICIT TeletexString + (SIZE (1..ub-surname-length)), + given-name [1] IMPLICIT TeletexString + (SIZE (1..ub-given-name-length)) OPTIONAL, + initials [2] IMPLICIT TeletexString + (SIZE (1..ub-initials-length)) OPTIONAL, + generation-qualifier [3] IMPLICIT TeletexString + (SIZE (1..ub-generation-qualifier-length)) + OPTIONAL } IDENTIFIED BY 4 } + + ea-teletexOrganizationalUnitNames EXTENSION-ATTRIBUTE ::= + { SEQUENCE SIZE (1..ub-organizational-units) OF + TeletexOrganizationalUnitName IDENTIFIED BY 5 } + + TeletexOrganizationalUnitName ::= TeletexString + (SIZE (1..ub-organizational-unit-name-length)) + + ea-pDSName EXTENSION-ATTRIBUTE ::= {PrintableString + (SIZE (1..ub-pds-name-length)) IDENTIFIED BY 7 } + + ea-physicalDeliveryCountryName EXTENSION-ATTRIBUTE ::= { CHOICE { + x121-dcc-code NumericString (SIZE + (ub-country-name-numeric-length)), + iso-3166-alpha2-code PrintableString + (SIZE (ub-country-name-alpha-length)) } + IDENTIFIED BY 8 } + + ea-postalCode EXTENSION-ATTRIBUTE ::= { CHOICE { + numeric-code NumericString (SIZE (1..ub-postal-code-length)), + printable-code PrintableString (SIZE (1..ub-postal-code-length)) } + IDENTIFIED BY 9 } + + ea-physicalDeliveryOfficeName EXTENSION-ATTRIBUTE ::= + { PDSParameter IDENTIFIED BY 10 } + + ea-physicalDeliveryOfficeNumber EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 11 } + + ea-extensionORAddressComponents EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 12 } + + ea-physicalDeliveryPersonalName EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 13} + + ea-physicalDeliveryOrganizationName EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 14 } + + ea-extensionPhysicalDeliveryAddressComponents EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 15 } + + ea-unformattedPostalAddress EXTENSION-ATTRIBUTE ::= { 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 } + IDENTIFIED BY 16 } + + ea-streetAddress EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 17 } + + ea-postOfficeBoxAddress EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 18 } + + ea-posteRestanteAddress EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 19 } + + ea-uniquePostalName EXTENSION-ATTRIBUTE ::= + { PDSParameter IDENTIFIED BY 20 } + + ea-localPostalAttributes EXTENSION-ATTRIBUTE ::= + {PDSParameter IDENTIFIED BY 21 } + PDSParameter ::= SET { + printable-string PrintableString + (SIZE(1..ub-pds-parameter-length)) OPTIONAL, + teletex-string TeletexString + (SIZE(1..ub-pds-parameter-length)) OPTIONAL } + + ea-extendedNetworkAddress EXTENSION-ATTRIBUTE ::= { + CHOICE { + e163-4-address SEQUENCE { + number [0] IMPLICIT NumericString + (SIZE (1..ub-e163-4-number-length)), + sub-address [1] IMPLICIT NumericString + (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL + }, + psap-address [0] IMPLICIT PresentationAddress + } IDENTIFIED BY 22 + } + + PresentationAddress ::= SEQUENCE { + pSelector [0] EXPLICIT OCTET STRING OPTIONAL, + sSelector [1] EXPLICIT OCTET STRING OPTIONAL, + tSelector [2] EXPLICIT OCTET STRING OPTIONAL, + nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING } + + ea-terminalType EXTENSION-ATTRIBUTE ::= {INTEGER { + telex (3), + teletex (4), + g3-facsimile (5), + g4-facsimile (6), + ia5-terminal (7), + videotex (8) } (0..ub-integer-options) + IDENTIFIED BY 23 } + + -- Extension Domain-defined Attributes + + ea-teletexDomainDefinedAttributes EXTENSION-ATTRIBUTE ::= + { SEQUENCE SIZE (1..ub-domain-defined-attributes) OF + TeletexDomainDefinedAttribute IDENTIFIED BY 6 } + + TeletexDomainDefinedAttribute ::= SEQUENCE { + type TeletexString + (SIZE (1..ub-domain-defined-attribute-type-length)), + value TeletexString + (SIZE (1..ub-domain-defined-attribute-value-length)) } + + -- specifications of Upper Bounds MUST be regarded as mandatory + -- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter + -- Upper Bounds + -- Upper Bounds + ub-match INTEGER ::= 128 + ub-common-name-length INTEGER ::= 64 + ub-country-name-alpha-length INTEGER ::= 2 + ub-country-name-numeric-length INTEGER ::= 3 + 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-extension-attributes 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-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-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-surname-length INTEGER ::= 40 + ub-terminal-id-length INTEGER ::= 24 + ub-unformatted-address-length INTEGER ::= 180 + ub-x121-address-length INTEGER ::= 16 + + -- Note - upper bounds on string types, such as TeletexString, are + -- measured in characters. Excepting PrintableString or IA5String, a + -- significantly greater number of octets will be required to hold + -- such a value. As a minimum, 16 octets or twice the specified + -- upper bound, whichever is the larger, should be allowed for + -- TeletexString. For UTF8String or UniversalString, at least four + -- times the upper bound should be allowed. + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1-PSS-OAEP-Algorithms-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1-PSS-OAEP-Algorithms-2009.asn1 new file mode 100644 index 0000000000..b1232fb8f2 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1-PSS-OAEP-Algorithms-2009.asn1 @@ -0,0 +1,308 @@ + PKIX1-PSS-OAEP-Algorithms-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-rsa-pkalgs-02(54)} + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + IMPORTS + + AlgorithmIdentifier{}, ALGORITHM, DIGEST-ALGORITHM, KEY-TRANSPORT, + SIGNATURE-ALGORITHM, PUBLIC-KEY, SMIME-CAPS + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + id-sha1, mda-sha1, pk-rsa, RSAPublicKey + FROM PKIXAlgs-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56)}; + + -- ============================ + -- Object Set exports + -- ============================ + -- + -- Define top-level symbols with all of the objects defined for + -- export to other modules. These objects would be included as part + -- of an Object Set to restrict the set of legal values. + -- + + PublicKeys PUBLIC-KEY ::= { pk-rsaSSA-PSS | pk-rsaES-OAEP, ... } + SignatureAlgs SIGNATURE-ALGORITHM ::= { sa-rsaSSA-PSS, ...} + KeyTransportAlgs KEY-TRANSPORT ::= { kta-rsaES-OAEP, ... } + HashAlgs DIGEST-ALGORITHM ::= { mda-sha224 | mda-sha256 | mda-sha384 + | mda-sha512, ... } + SMimeCaps SMIME-CAPS ::= { + sa-rsaSSA-PSS.&smimeCaps | + kta-rsaES-OAEP.&smimeCaps, + ... + } + + -- ============================= + -- Algorithm Objects + -- ============================= + + -- + -- Public key object for PSS signatures + -- + + pk-rsaSSA-PSS PUBLIC-KEY ::= { + IDENTIFIER id-RSASSA-PSS + KEY RSAPublicKey + PARAMS TYPE RSASSA-PSS-params ARE optional + -- Private key format not in this module -- + CERT-KEY-USAGE { nonRepudiation, digitalSignature, + keyCertSign, cRLSign } + } + + -- + -- Signature algorithm definition for PSS signatures + -- + + sa-rsaSSA-PSS SIGNATURE-ALGORITHM ::= { + IDENTIFIER id-RSASSA-PSS + PARAMS TYPE RSASSA-PSS-params ARE required + HASHES { mda-sha1 | mda-sha224 | mda-sha256 | mda-sha384 + | mda-sha512 } + PUBLIC-KEYS { pk-rsa | pk-rsaSSA-PSS } + SMIME-CAPS { IDENTIFIED BY id-RSASSA-PSS } + } + + -- + -- Signature algorithm definitions for PKCS v1.5 signatures + -- + + sa-sha224WithRSAEncryption SIGNATURE-ALGORITHM ::= { + IDENTIFIER sha224WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-sha224 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS { IDENTIFIED BY sha224WithRSAEncryption } + } + sha224WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 14 } + + sa-sha256WithRSAEncryption SIGNATURE-ALGORITHM ::= { + IDENTIFIER sha256WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-sha256 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS { IDENTIFIED BY sha256WithRSAEncryption } + } + sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 } + + sa-sha384WithRSAEncryption SIGNATURE-ALGORITHM ::= { + IDENTIFIER sha384WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-sha384 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS { IDENTIFIED BY sha384WithRSAEncryption } + } + sha384WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 12 } + + sa-sha512WithRSAEncryption SIGNATURE-ALGORITHM ::= { + IDENTIFIER sha512WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-sha512 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS { IDENTIFIED BY sha512WithRSAEncryption } + } + sha512WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 13 } + + -- + -- Public key definition for OAEP encryption + -- + + pk-rsaES-OAEP PUBLIC-KEY ::= { + IDENTIFIER id-RSAES-OAEP + KEY RSAPublicKey + PARAMS TYPE RSAES-OAEP-params ARE optional + -- Private key format not in this module -- + CERT-KEY-USAGE {keyEncipherment, dataEncipherment} + } + + -- + -- Key transport key lock definition for OAEP encryption + -- + + kta-rsaES-OAEP KEY-TRANSPORT ::= { + IDENTIFIER id-RSAES-OAEP + PARAMS TYPE RSAES-OAEP-params ARE required + PUBLIC-KEYS { pk-rsa | pk-rsaES-OAEP } + SMIME-CAPS { TYPE RSAES-OAEP-params IDENTIFIED BY id-RSAES-OAEP} + } + -- ============================ + -- Basic object identifiers + -- ============================ + + pkcs-1 OBJECT IDENTIFIER ::= + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 } + + -- When rsaEncryption is used in an AlgorithmIdentifier, the + -- parameters MUST be present and MUST be NULL. + -- rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 } + + -- When id-RSAES-OAEP is used in an AlgorithmIdentifier, + -- and the parameters field is present, it MUST be + -- RSAES-OAEP-params. + + id-RSAES-OAEP OBJECT IDENTIFIER ::= { pkcs-1 7 } + + -- When id-mgf1 is used in an AlgorithmIdentifier, the parameters + -- MUST be present and MUST be a HashAlgorithm. + + id-mgf1 OBJECT IDENTIFIER ::= { pkcs-1 8 } + + -- When id-pSpecified is used in an AlgorithmIdentifier, the + -- parameters MUST be an OCTET STRING. + + id-pSpecified OBJECT IDENTIFIER ::= { pkcs-1 9 } + + -- When id-RSASSA-PSS is used in an AlgorithmIdentifier, and the + -- parameters field is present, it MUST be RSASSA-PSS-params. + + id-RSASSA-PSS OBJECT IDENTIFIER ::= { pkcs-1 10 } + + -- When the following OIDs are used in an AlgorithmIdentifier, the + -- parameters SHOULD be absent, but if the parameters are present, + -- they MUST be NULL. + + -- + -- id-sha1 is imported from RFC 3279. Additionally, the v1.5 + -- signature algorithms (i.e., rsaWithSHA256) are now solely placed + -- in that module. + -- + + id-sha224 OBJECT IDENTIFIER ::= + { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) + csor(3) nistAlgorithms(4) hashalgs(2) 4 } + + mda-sha224 DIGEST-ALGORITHM ::= { + IDENTIFIER id-sha224 + PARAMS TYPE NULL ARE preferredAbsent + } + + id-sha256 OBJECT IDENTIFIER ::= + { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) + csor(3) nistAlgorithms(4) hashalgs(2) 1 } + + mda-sha256 DIGEST-ALGORITHM ::= { + IDENTIFIER id-sha256 + PARAMS TYPE NULL ARE preferredAbsent + } + id-sha384 OBJECT IDENTIFIER ::= + { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) + csor(3) nistAlgorithms(4) hashalgs(2) 2 } + + mda-sha384 DIGEST-ALGORITHM ::= { + IDENTIFIER id-sha384 + PARAMS TYPE NULL ARE preferredAbsent + } + id-sha512 OBJECT IDENTIFIER ::= + { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) + csor(3) nistAlgorithms(4) hashalgs(2) 3 } + + mda-sha512 DIGEST-ALGORITHM ::= { + IDENTIFIER id-sha512 + PARAMS TYPE NULL ARE preferredAbsent + } + + -- ============= + -- Constants + -- ============= + + EncodingParameters ::= OCTET STRING(SIZE(0..MAX)) + + nullOctetString EncodingParameters ::= ''H + + nullParameters NULL ::= NULL + + -- ========================= + -- Algorithm Identifiers + -- ========================= + + HashAlgorithm ::= AlgorithmIdentifier{DIGEST-ALGORITHM, + {HashAlgorithms}} + + HashAlgorithms DIGEST-ALGORITHM ::= { + { IDENTIFIER id-sha1 PARAMS TYPE NULL ARE preferredPresent } | + { IDENTIFIER id-sha224 PARAMS TYPE NULL ARE preferredPresent } | + { IDENTIFIER id-sha256 PARAMS TYPE NULL ARE preferredPresent } | + { IDENTIFIER id-sha384 PARAMS TYPE NULL ARE preferredPresent } | + { IDENTIFIER id-sha512 PARAMS TYPE NULL ARE preferredPresent } + } + + sha1Identifier HashAlgorithm ::= { + algorithm id-sha1, + parameters NULL : NULL + } + + -- + -- We have a default algorithm - create the value here + -- + + MaskGenAlgorithm ::= AlgorithmIdentifier{ALGORITHM, + {PKCS1MGFAlgorithms}} + + mgf1SHA1 MaskGenAlgorithm ::= { + algorithm id-mgf1, + parameters HashAlgorithm : sha1Identifier + } + + -- + -- Define the set of mask generation functions + -- + -- If the identifier is id-mgf1, any of the listed hash + -- algorithms may be used. + -- + + PKCS1MGFAlgorithms ALGORITHM ::= { + { IDENTIFIER id-mgf1 PARAMS TYPE HashAlgorithm ARE required }, + ... + } + + -- + -- Define the set of known source algorithms for PSS + -- + + PSourceAlgorithm ::= AlgorithmIdentifier{ALGORITHM, + {PSS-SourceAlgorithms}} + + PSS-SourceAlgorithms ALGORITHM ::= { + { IDENTIFIER id-pSpecified PARAMS TYPE EncodingParameters + ARE required }, + ... + } + pSpecifiedEmpty PSourceAlgorithm ::= { + algorithm id-pSpecified, + parameters EncodingParameters : nullOctetString + } + + -- =================== + -- Main structures + -- =================== + + -- AlgorithmIdentifier parameters for id-RSASSA-PSS. + -- Note that the tags in this Sequence are explicit. + -- Note: The hash algorithm in hashAlgorithm and in + -- maskGenAlgorithm should be the same. + + RSASSA-PSS-params ::= SEQUENCE { + hashAlgorithm [0] HashAlgorithm DEFAULT sha1Identifier, + maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT mgf1SHA1, + saltLength [2] INTEGER DEFAULT 20, + trailerField [3] INTEGER DEFAULT 1 + } + + -- AlgorithmIdentifier parameters for id-RSAES-OAEP. + -- Note that the tags in this Sequence are explicit. + -- Note: The hash algorithm in hashFunc and in + -- maskGenFunc should be the same. + + RSAES-OAEP-params ::= SEQUENCE { + hashFunc [0] HashAlgorithm DEFAULT sha1Identifier, + maskGenFunc [1] MaskGenAlgorithm DEFAULT mgf1SHA1, + pSourceFunc [2] PSourceAlgorithm DEFAULT + pSpecifiedEmpty + } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1Explicit-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1Explicit-2009.asn1 new file mode 100644 index 0000000000..613e0e9d2c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1Explicit-2009.asn1 @@ -0,0 +1,415 @@ + PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-explicit-02(51)} + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + + IMPORTS + + Extensions{}, EXTENSION, ATTRIBUTE, SingleAttribute{} + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} + + AlgorithmIdentifier{}, PUBLIC-KEY, SIGNATURE-ALGORITHM + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + CertExtensions, CrlExtensions, CrlEntryExtensions + FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + SignatureAlgs, PublicKeys + FROM PKIXAlgs-2009 + {iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) 56} + + SignatureAlgs, PublicKeys + FROM PKIX1-PSS-OAEP-Algorithms-2009 + {iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-rsa-pkalgs-02(54)} + + ORAddress + FROM PKIX-X400Address-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-x400address-02(60)}; + + id-pkix OBJECT IDENTIFIER ::= + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7)} + + -- PKIX arcs + + id-pe OBJECT IDENTIFIER ::= { id-pkix 1 } + -- arc for private certificate extensions + id-qt OBJECT IDENTIFIER ::= { id-pkix 2 } + -- arc for policy qualifier types + id-kp OBJECT IDENTIFIER ::= { id-pkix 3 } + -- arc for extended key purpose OIDs + id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } + -- arc for access descriptors + + -- policyQualifierIds for Internet policy qualifiers + + id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 } + -- OID for CPS qualifier + id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 } + -- OID for user notice qualifier + + -- access descriptor definitions + + id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 } + id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 } + id-ad-timeStamping OBJECT IDENTIFIER ::= { id-ad 3 } + id-ad-caRepository OBJECT IDENTIFIER ::= { id-ad 5 } + + -- attribute data types + AttributeType ::= ATTRIBUTE.&id + + -- Replaced by SingleAttribute{} + -- + -- AttributeTypeAndValue ::= SEQUENCE { + -- type ATTRIBUTE.&id({SupportedAttributes}), + -- value ATTRIBUTE.&Type({SupportedAttributes}{@type}) } + -- + + -- Suggested naming attributes: Definition of the following + -- information object set may be augmented to meet local + -- requirements. Note that deleting members of the set may + -- prevent interoperability with conforming implementations. + -- All attributes are presented in pairs: the AttributeType + -- followed by the type definition for the corresponding + -- AttributeValue. + + -- Arc for standard naming attributes + + id-at OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 4 } + + -- Naming attributes of type X520name + + id-at-name AttributeType ::= { id-at 41 } + at-name ATTRIBUTE ::= { TYPE X520name IDENTIFIED BY id-at-name } + + id-at-surname AttributeType ::= { id-at 4 } + at-surname ATTRIBUTE ::= { TYPE X520name IDENTIFIED BY id-at-surname } + + id-at-givenName AttributeType ::= { id-at 42 } + at-givenName ATTRIBUTE ::= + { TYPE X520name IDENTIFIED BY id-at-givenName } + + id-at-initials AttributeType ::= { id-at 43 } + at-initials ATTRIBUTE ::= + { TYPE X520name IDENTIFIED BY id-at-initials } + + id-at-generationQualifier AttributeType ::= { id-at 44 } + at-generationQualifier ATTRIBUTE ::= + { TYPE X520name IDENTIFIED BY id-at-generationQualifier } + + -- Directory string type -- + + DirectoryString{INTEGER:maxSize} ::= CHOICE { + teletexString TeletexString(SIZE (1..maxSize)), + printableString PrintableString(SIZE (1..maxSize)), + bmpString BMPString(SIZE (1..maxSize)), + universalString UniversalString(SIZE (1..maxSize)), + uTF8String UTF8String(SIZE (1..maxSize)) + } + + X520name ::= DirectoryString {ub-name} + + -- Naming attributes of type X520CommonName + + id-at-commonName AttributeType ::= { id-at 3 } + + at-x520CommonName ATTRIBUTE ::= + {TYPE X520CommonName IDENTIFIED BY id-at-commonName } + + X520CommonName ::= DirectoryString {ub-common-name} + + -- Naming attributes of type X520LocalityName + + id-at-localityName AttributeType ::= { id-at 7 } + + at-x520LocalityName ATTRIBUTE ::= + { TYPE X520LocalityName IDENTIFIED BY id-at-localityName } + X520LocalityName ::= DirectoryString {ub-locality-name} + + -- Naming attributes of type X520StateOrProvinceName + + id-at-stateOrProvinceName AttributeType ::= { id-at 8 } + + at-x520StateOrProvinceName ATTRIBUTE ::= + { TYPE DirectoryString {ub-state-name} + IDENTIFIED BY id-at-stateOrProvinceName } + X520StateOrProvinceName ::= DirectoryString {ub-state-name} + + -- Naming attributes of type X520OrganizationName + + id-at-organizationName AttributeType ::= { id-at 10 } + + at-x520OrganizationName ATTRIBUTE ::= + { TYPE DirectoryString {ub-organization-name} + IDENTIFIED BY id-at-organizationName } + X520OrganizationName ::= DirectoryString {ub-organization-name} + + -- Naming attributes of type X520OrganizationalUnitName + + id-at-organizationalUnitName AttributeType ::= { id-at 11 } + + at-x520OrganizationalUnitName ATTRIBUTE ::= + { TYPE DirectoryString {ub-organizational-unit-name} + IDENTIFIED BY id-at-organizationalUnitName } + X520OrganizationalUnitName ::= DirectoryString + {ub-organizational-unit-name} + + -- Naming attributes of type X520Title + + id-at-title AttributeType ::= { id-at 12 } + + at-x520Title ATTRIBUTE ::= { TYPE DirectoryString { ub-title } + IDENTIFIED BY id-at-title } + + -- Naming attributes of type X520dnQualifier + + id-at-dnQualifier AttributeType ::= { id-at 46 } + + at-x520dnQualifier ATTRIBUTE ::= { TYPE PrintableString + IDENTIFIED BY id-at-dnQualifier } + + -- Naming attributes of type X520countryName (digraph from IS 3166) + + id-at-countryName AttributeType ::= { id-at 6 } + + at-x520countryName ATTRIBUTE ::= { TYPE PrintableString (SIZE (2)) + IDENTIFIED BY id-at-countryName } + + -- Naming attributes of type X520SerialNumber + + id-at-serialNumber AttributeType ::= { id-at 5 } + + at-x520SerialNumber ATTRIBUTE ::= {TYPE PrintableString + (SIZE (1..ub-serial-number)) IDENTIFIED BY id-at-serialNumber } + + -- Naming attributes of type X520Pseudonym + + id-at-pseudonym AttributeType ::= { id-at 65 } + + at-x520Pseudonym ATTRIBUTE ::= { TYPE DirectoryString {ub-pseudonym} + IDENTIFIED BY id-at-pseudonym } + + -- Naming attributes of type DomainComponent (from RFC 2247) + + id-domainComponent AttributeType ::= + { itu-t(0) data(9) pss(2342) ucl(19200300) pilot(100) + pilotAttributeType(1) 25 } + + at-domainComponent ATTRIBUTE ::= {TYPE IA5String + IDENTIFIED BY id-domainComponent } + + -- Legacy attributes + + pkcs-9 OBJECT IDENTIFIER ::= + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 } + id-emailAddress AttributeType ::= { pkcs-9 1 } + + at-emailAddress ATTRIBUTE ::= {TYPE IA5String + (SIZE (1..ub-emailaddress-length)) IDENTIFIED BY + id-emailAddress } + + -- naming data types -- + + Name ::= CHOICE { -- only one possibility for now -- + rdnSequence RDNSequence } + + RDNSequence ::= SEQUENCE OF RelativeDistinguishedName + + DistinguishedName ::= RDNSequence + + RelativeDistinguishedName ::= + SET SIZE (1 .. MAX) OF SingleAttribute { {SupportedAttributes} } + + -- These are the known name elements for a DN + + SupportedAttributes ATTRIBUTE ::= { + at-name | at-surname | at-givenName | at-initials | + at-generationQualifier | at-x520CommonName | + at-x520LocalityName | at-x520StateOrProvinceName | + at-x520OrganizationName | at-x520OrganizationalUnitName | + at-x520Title | at-x520dnQualifier | at-x520countryName | + at-x520SerialNumber | at-x520Pseudonym | at-domainComponent | + at-emailAddress, ... } + + -- + -- Certificate- and CRL-specific structures begin here + -- + + Certificate ::= SIGNED{TBSCertificate} + + TBSCertificate ::= SEQUENCE { + version [0] Version DEFAULT v1, + serialNumber CertificateSerialNumber, + signature AlgorithmIdentifier{SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + issuer Name, + validity Validity, + subject Name, + subjectPublicKeyInfo SubjectPublicKeyInfo, + ... , + [[2: -- If present, version MUST be v2 + issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, + subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL + ]], + [[3: -- If present, version MUST be v3 -- + extensions [3] Extensions{{CertExtensions}} OPTIONAL + ]], ... } + + Version ::= INTEGER { v1(0), v2(1), v3(2) } + + CertificateSerialNumber ::= INTEGER + + Validity ::= SEQUENCE { + notBefore Time, + notAfter Time } + + Time ::= CHOICE { + utcTime UTCTime, + generalTime GeneralizedTime } + + UniqueIdentifier ::= BIT STRING + + SubjectPublicKeyInfo ::= SEQUENCE { + algorithm AlgorithmIdentifier{PUBLIC-KEY, + {PublicKeyAlgorithms}}, + subjectPublicKey BIT STRING } + + -- CRL structures + + CertificateList ::= SIGNED{TBSCertList} + + TBSCertList ::= SEQUENCE { + version Version OPTIONAL, + -- if present, MUST be v2 + signature AlgorithmIdentifier{SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + issuer Name, + thisUpdate Time, + nextUpdate Time OPTIONAL, + revokedCertificates SEQUENCE SIZE (1..MAX) OF SEQUENCE { + userCertificate CertificateSerialNumber, + revocationDate Time, + ... , + [[2: -- if present, version MUST be v2 + crlEntryExtensions Extensions{{CrlEntryExtensions}} + OPTIONAL + ]], ... + } OPTIONAL, + ... , + [[2: -- if present, version MUST be v2 + crlExtensions [0] Extensions{{CrlExtensions}} + OPTIONAL + ]], ... } + + -- Version, Time, CertificateSerialNumber, and Extensions were + -- defined earlier for use in the certificate structure + + -- + -- The two object sets below should be expanded to include + -- those algorithms which are supported by the system. + -- + -- For example: + -- SignatureAlgorithms SIGNATURE-ALGORITHM ::= { + -- PKIXAlgs-2008.SignatureAlgs, ..., + -- - - RFC 3279 provides the base set + -- PKIX1-PSS-OAEP-ALGORITHMS.SignatureAlgs | + -- - - RFC 4055 provides extension algs + -- OtherModule.SignatureAlgs + -- - - RFC XXXX provides additional extension algs + -- } + + SignatureAlgorithms SIGNATURE-ALGORITHM ::= { + PKIXAlgs-2009.SignatureAlgs, ..., + PKIX1-PSS-OAEP-Algorithms-2009.SignatureAlgs } + + PublicKeyAlgorithms PUBLIC-KEY ::= { + PKIXAlgs-2009.PublicKeys, ..., + PKIX1-PSS-OAEP-Algorithms-2009.PublicKeys} + + -- Upper Bounds + + ub-state-name INTEGER ::= 128 + ub-organization-name INTEGER ::= 64 + ub-organizational-unit-name INTEGER ::= 64 + ub-title INTEGER ::= 64 + ub-serial-number INTEGER ::= 64 + ub-pseudonym INTEGER ::= 128 + ub-emailaddress-length INTEGER ::= 255 + ub-locality-name INTEGER ::= 128 + ub-common-name INTEGER ::= 64 + ub-name INTEGER ::= 32768 + + -- Note - upper bounds on string types, such as TeletexString, are + -- measured in characters. Excepting PrintableString or IA5String, a + -- significantly greater number of octets will be required to hold + -- such a value. As a minimum, 16 octets or twice the specified + -- upper bound, whichever is the larger, should be allowed for + -- TeletexString. For UTF8String or UniversalString, at least four + -- times the upper bound should be allowed. + + -- Information object classes used in the definition + -- of certificates and CRLs + + -- Parameterized Type SIGNED + -- + -- Three different versions of doing SIGNED: + -- 1. Simple and close to the previous version + -- + -- SIGNED{ToBeSigned} ::= SEQUENCE { + -- toBeSigned ToBeSigned, + -- algorithm AlgorithmIdentifier{SIGNATURE-ALGORITHM, + -- {SignatureAlgorithms}}, + -- signature BIT STRING + -- } + + -- 2. From Authenticated Framework + -- + -- SIGNED{ToBeSigned} ::= SEQUENCE { + -- toBeSigned ToBeSigned, + -- COMPONENTS OF SIGNATURE{ToBeSigned} + -- } + -- SIGNATURE{ToBeSigned} ::= SEQUENCE { + -- algorithmIdentifier AlgorithmIdentifier, + -- encrypted ENCRYPTED-HASH{ToBeSigned} + -- } + -- ENCRYPTED-HASH{ToBeSigned} ::= + -- BIT STRING + -- (CONSTRAINED BY { + -- shall be the result of applying a hashing procedure to + -- the DER-encoded (see 4.1) octets of a value of + -- ToBeSigned and then applying an encipherment procedure + -- to those octets + -- }) + -- + -- + -- 3. A more complex version, but one that automatically ties + -- together both the signature algorithm and the + -- signature value for automatic decoding. + -- + SIGNED{ToBeSigned} ::= SEQUENCE { + toBeSigned ToBeSigned, + algorithmIdentifier SEQUENCE { + algorithm SIGNATURE-ALGORITHM. + &id({SignatureAlgorithms}), + parameters SIGNATURE-ALGORITHM. + &Params({SignatureAlgorithms} + {@algorithmIdentifier.algorithm}) OPTIONAL + }, + signature BIT STRING (CONTAINING SIGNATURE-ALGORITHM.&Value( + {SignatureAlgorithms} + {@algorithmIdentifier.algorithm})) + } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1Implicit-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1Implicit-2009.asn1 new file mode 100644 index 0000000000..3651a5249b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIX1Implicit-2009.asn1 @@ -0,0 +1,447 @@ + PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + AttributeSet{}, EXTENSION, ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57) } + + id-pe, id-kp, id-qt-unotice, id-qt-cps, ORAddress, Name, + RelativeDistinguishedName, CertificateSerialNumber, + DirectoryString{}, SupportedAttributes + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) }; + + CertExtensions EXTENSION ::= { + ext-AuthorityKeyIdentifier | ext-SubjectKeyIdentifier | + ext-KeyUsage | ext-PrivateKeyUsagePeriod | + ext-CertificatePolicies | ext-PolicyMappings | + ext-SubjectAltName | ext-IssuerAltName | + ext-SubjectDirectoryAttributes | + ext-BasicConstraints | ext-NameConstraints | + ext-PolicyConstraints | ext-ExtKeyUsage | + ext-CRLDistributionPoints | ext-InhibitAnyPolicy | + ext-FreshestCRL | ext-AuthorityInfoAccess | + ext-SubjectInfoAccessSyntax, ... } + + CrlExtensions EXTENSION ::= { + ext-AuthorityKeyIdentifier | ext-IssuerAltName | + ext-CRLNumber | ext-DeltaCRLIndicator | + ext-IssuingDistributionPoint | ext-FreshestCRL, ... } + + CrlEntryExtensions EXTENSION ::= { + ext-CRLReason | ext-CertificateIssuer | + ext-HoldInstructionCode | ext-InvalidityDate, ... } + -- Shared arc for standard certificate and CRL extensions + + id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 } + + -- authority key identifier OID and syntax + + ext-AuthorityKeyIdentifier EXTENSION ::= { SYNTAX + AuthorityKeyIdentifier IDENTIFIED BY + id-ce-authorityKeyIdentifier } + id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 } + + 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 + + -- subject key identifier OID and syntax + + ext-SubjectKeyIdentifier EXTENSION ::= { SYNTAX + KeyIdentifier IDENTIFIED BY id-ce-subjectKeyIdentifier } + id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 } + + -- key usage extension OID and syntax + + ext-KeyUsage EXTENSION ::= { SYNTAX + KeyUsage IDENTIFIED BY id-ce-keyUsage } + id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 } + + KeyUsage ::= BIT STRING { + digitalSignature (0), + nonRepudiation (1), -- recent editions of X.509 have + -- renamed this bit to + -- contentCommitment + keyEncipherment (2), + dataEncipherment (3), + keyAgreement (4), + keyCertSign (5), + cRLSign (6), + encipherOnly (7), + decipherOnly (8) + } + + -- private key usage period extension OID and syntax + + ext-PrivateKeyUsagePeriod EXTENSION ::= { SYNTAX + PrivateKeyUsagePeriod IDENTIFIED BY id-ce-privateKeyUsagePeriod } + id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 } + + PrivateKeyUsagePeriod ::= SEQUENCE { + notBefore [0] GeneralizedTime OPTIONAL, + notAfter [1] GeneralizedTime OPTIONAL } + (WITH COMPONENTS {..., notBefore PRESENT } | + WITH COMPONENTS {..., notAfter PRESENT }) + + -- certificate policies extension OID and syntax + + ext-CertificatePolicies EXTENSION ::= { SYNTAX + CertificatePolicies IDENTIFIED BY id-ce-certificatePolicies} + id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 } + + CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation + + PolicyInformation ::= SEQUENCE { + policyIdentifier CertPolicyId, + policyQualifiers SEQUENCE SIZE (1..MAX) OF + PolicyQualifierInfo OPTIONAL } + + CertPolicyId ::= OBJECT IDENTIFIER + + CERT-POLICY-QUALIFIER ::= TYPE-IDENTIFIER + + PolicyQualifierInfo ::= SEQUENCE { + policyQualifierId CERT-POLICY-QUALIFIER. + &id({PolicyQualifierId}), + qualifier CERT-POLICY-QUALIFIER. + &Type({PolicyQualifierId}{@policyQualifierId})} + + -- Implementations that recognize additional policy qualifiers MUST + -- augment the following definition for PolicyQualifierId + + PolicyQualifierId CERT-POLICY-QUALIFIER ::= + { pqid-cps | pqid-unotice, ... } + + pqid-cps CERT-POLICY-QUALIFIER ::= { CPSuri IDENTIFIED BY id-qt-cps } + pqid-unotice CERT-POLICY-QUALIFIER ::= { UserNotice + IDENTIFIED BY id-qt-unotice } + + -- CPS pointer qualifier + + CPSuri ::= IA5String + + -- user notice qualifier + + UserNotice ::= SEQUENCE { + noticeRef NoticeReference OPTIONAL, + explicitText DisplayText OPTIONAL} + + -- + -- This is not made explicit in the text + -- + -- {WITH COMPONENTS {..., noticeRef PRESENT} | + -- WITH COMPONENTS {..., DisplayText PRESENT }} + + NoticeReference ::= SEQUENCE { + organization DisplayText, + noticeNumbers SEQUENCE OF INTEGER } + + DisplayText ::= CHOICE { + ia5String IA5String (SIZE (1..200)), + visibleString VisibleString (SIZE (1..200)), + bmpString BMPString (SIZE (1..200)), + utf8String UTF8String (SIZE (1..200)) } + + -- policy mapping extension OID and syntax + + ext-PolicyMappings EXTENSION ::= { SYNTAX + PolicyMappings IDENTIFIED BY id-ce-policyMappings } + id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 } + + PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE { + issuerDomainPolicy CertPolicyId, + subjectDomainPolicy CertPolicyId + } + + -- subject alternative name extension OID and syntax + + ext-SubjectAltName EXTENSION ::= { SYNTAX + GeneralNames IDENTIFIED BY id-ce-subjectAltName } + id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 } + + 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 + } + + -- AnotherName replaces OTHER-NAME ::= TYPE-IDENTIFIER, as + -- TYPE-IDENTIFIER is not supported in the '88 ASN.1 syntax + + OTHER-NAME ::= TYPE-IDENTIFIER + + EDIPartyName ::= SEQUENCE { + nameAssigner [0] DirectoryString {ubMax} OPTIONAL, + partyName [1] DirectoryString {ubMax} + } + + -- issuer alternative name extension OID and syntax + + ext-IssuerAltName EXTENSION ::= { SYNTAX + GeneralNames IDENTIFIED BY id-ce-issuerAltName } + id-ce-issuerAltName OBJECT IDENTIFIER ::= { id-ce 18 } + + ext-SubjectDirectoryAttributes EXTENSION ::= { SYNTAX + SubjectDirectoryAttributes IDENTIFIED BY + id-ce-subjectDirectoryAttributes } + id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 } + + SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF + AttributeSet{{SupportedAttributes}} + + -- basic constraints extension OID and syntax + + ext-BasicConstraints EXTENSION ::= { SYNTAX + BasicConstraints IDENTIFIED BY id-ce-basicConstraints } + id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 } + + BasicConstraints ::= SEQUENCE { + cA BOOLEAN DEFAULT FALSE, + pathLenConstraint INTEGER (0..MAX) OPTIONAL + } + + -- name constraints extension OID and syntax + ext-NameConstraints EXTENSION ::= { SYNTAX + NameConstraints IDENTIFIED BY id-ce-nameConstraints } + id-ce-nameConstraints OBJECT IDENTIFIER ::= { id-ce 30 } + + NameConstraints ::= SEQUENCE { + permittedSubtrees [0] GeneralSubtrees OPTIONAL, + excludedSubtrees [1] GeneralSubtrees OPTIONAL + } + -- + -- This is a constraint in the issued certificates by CAs, but is + -- not a requirement on EEs. + -- + -- (WITH COMPONENTS { ..., permittedSubtrees PRESENT} | + -- WITH COMPONENTS { ..., excludedSubtrees PRESENT }} + + GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree + + GeneralSubtree ::= SEQUENCE { + base GeneralName, + minimum [0] BaseDistance DEFAULT 0, + maximum [1] BaseDistance OPTIONAL + } + + BaseDistance ::= INTEGER (0..MAX) + + -- policy constraints extension OID and syntax + + ext-PolicyConstraints EXTENSION ::= { SYNTAX + PolicyConstraints IDENTIFIED BY id-ce-policyConstraints } + id-ce-policyConstraints OBJECT IDENTIFIER ::= { id-ce 36 } + + PolicyConstraints ::= SEQUENCE { + requireExplicitPolicy [0] SkipCerts OPTIONAL, + inhibitPolicyMapping [1] SkipCerts OPTIONAL } + -- + -- This is a constraint in the issued certificates by CAs, + -- but is not a requirement for EEs + -- + -- (WITH COMPONENTS { ..., requireExplicitPolicy PRESENT} | + -- WITH COMPONENTS { ..., inhibitPolicyMapping PRESENT}) + + SkipCerts ::= INTEGER (0..MAX) + + -- CRL distribution points extension OID and syntax + + ext-CRLDistributionPoints EXTENSION ::= { SYNTAX + CRLDistributionPoints IDENTIFIED BY id-ce-cRLDistributionPoints} + id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= {id-ce 31} + CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint + + DistributionPoint ::= SEQUENCE { + distributionPoint [0] DistributionPointName OPTIONAL, + reasons [1] ReasonFlags OPTIONAL, + cRLIssuer [2] GeneralNames OPTIONAL + } + -- + -- This is not a requirement in the text, but it seems as if it + -- should be + -- + --(WITH COMPONENTS {..., distributionPoint PRESENT} | + -- WITH COMPONENTS {..., cRLIssuer PRESENT}) + + 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), + privilegeWithdrawn (7), + aACompromise (8) + } + + -- extended key usage extension OID and syntax + + ext-ExtKeyUsage EXTENSION ::= { SYNTAX + ExtKeyUsageSyntax IDENTIFIED BY id-ce-extKeyUsage } + id-ce-extKeyUsage OBJECT IDENTIFIER ::= {id-ce 37} + + ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId + + KeyPurposeId ::= OBJECT IDENTIFIER + + -- permit unspecified key uses + + anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 } + + -- extended key purpose OIDs + + id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } + id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 } + id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 } + id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 } + id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 } + id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 } + + -- inhibit any policy OID and syntax + + ext-InhibitAnyPolicy EXTENSION ::= {SYNTAX + SkipCerts IDENTIFIED BY id-ce-inhibitAnyPolicy } + id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 } + + -- freshest (delta)CRL extension OID and syntax + + ext-FreshestCRL EXTENSION ::= {SYNTAX + CRLDistributionPoints IDENTIFIED BY id-ce-freshestCRL } + id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 } + + -- authority info access + + ext-AuthorityInfoAccess EXTENSION ::= { SYNTAX + AuthorityInfoAccessSyntax IDENTIFIED BY + id-pe-authorityInfoAccess } + id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 } + + AuthorityInfoAccessSyntax ::= + SEQUENCE SIZE (1..MAX) OF AccessDescription + + AccessDescription ::= SEQUENCE { + accessMethod OBJECT IDENTIFIER, + accessLocation GeneralName } + + -- subject info access + + ext-SubjectInfoAccessSyntax EXTENSION ::= { SYNTAX + SubjectInfoAccessSyntax IDENTIFIED BY id-pe-subjectInfoAccess } + id-pe-subjectInfoAccess OBJECT IDENTIFIER ::= { id-pe 11 } + + SubjectInfoAccessSyntax ::= + SEQUENCE SIZE (1..MAX) OF AccessDescription + + -- CRL number extension OID and syntax + + ext-CRLNumber EXTENSION ::= {SYNTAX + INTEGER (0..MAX) IDENTIFIED BY id-ce-cRLNumber } + id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 } + + CRLNumber ::= INTEGER (0..MAX) + -- issuing distribution point extension OID and syntax + + ext-IssuingDistributionPoint EXTENSION ::= { SYNTAX + IssuingDistributionPoint IDENTIFIED BY + id-ce-issuingDistributionPoint } + id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 } + + IssuingDistributionPoint ::= SEQUENCE { + distributionPoint [0] DistributionPointName OPTIONAL, + onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, + onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, + onlySomeReasons [3] ReasonFlags OPTIONAL, + indirectCRL [4] BOOLEAN DEFAULT FALSE, + onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE + } + -- at most one of onlyContainsUserCerts, onlyContainsCACerts, + -- or onlyContainsAttributeCerts may be set to TRUE. + + ext-DeltaCRLIndicator EXTENSION ::= { SYNTAX + CRLNumber IDENTIFIED BY id-ce-deltaCRLIndicator } + id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 } + + -- CRL reasons extension OID and syntax + + ext-CRLReason EXTENSION ::= { SYNTAX + CRLReason IDENTIFIED BY id-ce-cRLReasons } + id-ce-cRLReasons OBJECT IDENTIFIER ::= { id-ce 21 } + + CRLReason ::= ENUMERATED { + unspecified (0), + keyCompromise (1), + cACompromise (2), + affiliationChanged (3), + superseded (4), + cessationOfOperation (5), + certificateHold (6), + removeFromCRL (8), + privilegeWithdrawn (9), + aACompromise (10) + } + + -- certificate issuer CRL entry extension OID and syntax + + ext-CertificateIssuer EXTENSION ::= { SYNTAX + GeneralNames IDENTIFIED BY id-ce-certificateIssuer } + id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 } + + -- hold instruction extension OID and syntax + ext-HoldInstructionCode EXTENSION ::= { SYNTAX + OBJECT IDENTIFIER IDENTIFIED BY id-ce-holdInstructionCode } + id-ce-holdInstructionCode OBJECT IDENTIFIER ::= { id-ce 23 } + + -- ANSI x9 holdinstructions + + holdInstruction OBJECT IDENTIFIER ::= + {joint-iso-itu-t(2) member-body(2) us(840) x9cm(10040) 2} + id-holdinstruction-none OBJECT IDENTIFIER ::= + {holdInstruction 1} -- deprecated + id-holdinstruction-callissuer OBJECT IDENTIFIER ::= + {holdInstruction 2} + id-holdinstruction-reject OBJECT IDENTIFIER ::= + {holdInstruction 3} + + -- invalidity date CRL entry extension OID and syntax + + ext-InvalidityDate EXTENSION ::= { SYNTAX + GeneralizedTime IDENTIFIED BY id-ce-invalidityDate } + id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 } + -- Upper bounds + ubMax INTEGER ::= 32768 + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXAlgs-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXAlgs-2009.asn1 new file mode 100644 index 0000000000..d58bcb5b19 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXAlgs-2009.asn1 @@ -0,0 +1,528 @@ + PKIXAlgs-2009 { iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56) } + + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + IMPORTS + + PUBLIC-KEY, SIGNATURE-ALGORITHM, DIGEST-ALGORITHM, SMIME-CAPS + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + mda-sha224, mda-sha256, mda-sha384, mda-sha512 + FROM PKIX1-PSS-OAEP-Algorithms-2009 + {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-rsa-pkalgs-02(54)} ; + + -- + -- Public Key (pk-) Algorithms + -- + + PublicKeys PUBLIC-KEY ::= { + pk-rsa | + pk-dsa | + pk-dh | + pk-kea, + ..., + pk-ec | + pk-ecDH | + pk-ecMQV + } + + -- + -- Signature Algorithms (sa-) + -- + + SignatureAlgs SIGNATURE-ALGORITHM ::= { + sa-rsaWithMD2 | + sa-rsaWithMD5 | + sa-rsaWithSHA1 | + sa-dsaWithSHA1 | + sa-ecdsaWithSHA1, + ..., -- Extensible + sa-dsaWithSHA224 | + sa-dsaWithSHA256 | + sa-ecdsaWithSHA224 | + sa-ecdsaWithSHA256 | + sa-ecdsaWithSHA384 | + sa-ecdsaWithSHA512 + } + + -- + -- S/MIME CAPS for algorithms in this document + -- + -- For all of the algorithms laid out in this document, the + -- parameters field for the S/MIME capabilities is defined as + -- ABSENT as there are no specific values that need to be known + -- by the receiver for negotiation. + + -- + + SMimeCaps SMIME-CAPS ::= { + sa-rsaWithMD2.&smimeCaps | + sa-rsaWithMD5.&smimeCaps | + sa-rsaWithSHA1.&smimeCaps | + sa-dsaWithSHA1.&smimeCaps | + sa-dsaWithSHA224.&smimeCaps | + sa-dsaWithSHA256.&smimeCaps | + sa-ecdsaWithSHA1.&smimeCaps | + sa-ecdsaWithSHA224.&smimeCaps | + sa-ecdsaWithSHA256.&smimeCaps | + sa-ecdsaWithSHA384.&smimeCaps | + sa-ecdsaWithSHA512.&smimeCaps, + ... } + + -- RSA PK Algorithm, Parameters, and Keys + + pk-rsa PUBLIC-KEY ::= { + IDENTIFIER rsaEncryption + KEY RSAPublicKey + PARAMS TYPE NULL ARE absent + -- Private key format not in this module -- + CERT-KEY-USAGE {digitalSignature, nonRepudiation, + keyEncipherment, dataEncipherment, keyCertSign, cRLSign} + } + + rsaEncryption OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) + pkcs-1(1) 1 } + + RSAPublicKey ::= SEQUENCE { + modulus INTEGER, -- n + publicExponent INTEGER -- e + } + + -- DSA PK Algorithm, Parameters, and Keys + + pk-dsa PUBLIC-KEY ::= { + IDENTIFIER id-dsa + KEY DSAPublicKey + PARAMS TYPE DSA-Params ARE inheritable + -- Private key format not in this module -- + CERT-KEY-USAGE { digitalSignature, nonRepudiation, keyCertSign, + cRLSign } + } + + id-dsa OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 } + + DSA-Params ::= SEQUENCE { + p INTEGER, + q INTEGER, + g INTEGER + } + + DSAPublicKey ::= INTEGER -- public key, y + + -- Diffie-Hellman PK Algorithm, Parameters, and Keys + + pk-dh PUBLIC-KEY ::= { + IDENTIFIER dhpublicnumber + KEY DHPublicKey + PARAMS TYPE DomainParameters ARE inheritable + -- Private key format not in this module -- + CERT-KEY-USAGE {keyAgreement, encipherOnly, decipherOnly } + } + + dhpublicnumber OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-x942(10046) + number-type(2) 1 } + + DomainParameters ::= SEQUENCE { + p INTEGER, -- odd prime, p=jq +1 + g INTEGER, -- generator, g + q INTEGER, -- factor of p-1 + j INTEGER OPTIONAL, -- subgroup factor, j>= 2 + validationParams ValidationParams OPTIONAL + } + + ValidationParams ::= SEQUENCE { + seed BIT STRING, + pgenCounter INTEGER + } + + DiffieHellmanPublicNumber ::= INTEGER -- according to http://wikisec.free.fr/crypto/crypto.html + + DHPublicKey ::= INTEGER -- public key, y = g^x mod p + + -- KEA PK Algorithm and Parameters + + pk-kea PUBLIC-KEY ::= { + IDENTIFIER id-keyExchangeAlgorithm + -- key is not encoded -- + PARAMS TYPE KEA-Params-Id ARE required + -- Private key format not in this module -- + CERT-KEY-USAGE {keyAgreement, encipherOnly, decipherOnly } + } + id-keyExchangeAlgorithm OBJECT IDENTIFIER ::= { + joint-iso-itu-t(2) country(16) us(840) organization(1) + gov(101) dod(2) infosec(1) algorithms(1) 22 } + + KEA-Params-Id ::= OCTET STRING + + -- Elliptic Curve (EC) Signatures: Unrestricted Algorithms + -- (Section 2.1.1 of RFC 5480) + -- + -- EC Unrestricted Algorithm ID -- -- this is used for ECDSA + + pk-ec PUBLIC-KEY ::= { + IDENTIFIER id-ecPublicKey + KEY ECPoint + PARAMS TYPE ECParameters ARE required + -- Private key format not in this module -- + CERT-KEY-USAGE { digitalSignature, nonRepudiation, keyAgreement, + keyCertSign, cRLSign } + } + + ECPoint ::= OCTET STRING -- see RFC 5480 for syntax and restrictions + + id-ecPublicKey OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 } + + -- Elliptic Curve (EC) Signatures: Restricted Algorithms + -- (Section 2.1.2 of RFC 5480) + -- + -- EC Diffie-Hellman Algorithm ID + + pk-ecDH PUBLIC-KEY ::= { + IDENTIFIER id-ecDH + KEY ECPoint + PARAMS TYPE ECParameters ARE required + -- Private key format not in this module -- + CERT-KEY-USAGE { keyAgreement, encipherOnly, decipherOnly } + } + + id-ecDH OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) schemes(1) + ecdh(12) } + + -- EC Menezes-Qu-Vanstone Algorithm ID + + pk-ecMQV PUBLIC-KEY ::= { + IDENTIFIER id-ecMQV + KEY ECPoint + PARAMS TYPE ECParameters ARE required + -- Private key format not in this module -- + CERT-KEY-USAGE { keyAgreement, encipherOnly, decipherOnly } + } + + id-ecMQV OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) schemes(1) + ecmqv(13) } + + -- Parameters and Keys for both Restricted and Unrestricted EC + + ECParameters ::= CHOICE { + namedCurve CURVE.&id({NamedCurve}) + -- implicitCurve NULL + -- implicitCurve MUST NOT be used in PKIX + -- specifiedCurve SpecifiedCurve + -- specifiedCurve MUST NOT be used in PKIX + -- Details for specifiedCurve can be found in [X9.62] + -- Any future additions to this CHOICE should be coordinated + -- with ANSI X.9. + } + -- If you need to be able to decode ANSI X.9 parameter structures, + -- uncomment the implicitCurve and specifiedCurve above, and also + -- uncomment the following: + --(WITH COMPONENTS {namedCurve PRESENT}) + + -- Sec 2.1.1.1 Named Curve + + CURVE ::= CLASS { &id OBJECT IDENTIFIER UNIQUE } + WITH SYNTAX { ID &id } + + NamedCurve CURVE ::= { + { ID secp192r1 } | { ID sect163k1 } | { ID sect163r2 } | + { ID secp224r1 } | { ID sect233k1 } | { ID sect233r1 } | + { ID secp256r1 } | { ID sect283k1 } | { ID sect283r1 } | + { ID secp384r1 } | { ID sect409k1 } | { ID sect409r1 } | + { ID secp521r1 } | { ID sect571k1 } | { ID sect571r1 }, + ... -- Extensible + } + + -- Note in [X9.62] the curves are referred to as 'ansiX9' as + -- opposed to 'sec'. For example, secp192r1 is the same curve as + -- ansix9p192r1. + + -- Note that in [PKI-ALG] the secp192r1 curve was referred to as + -- prime192v1 and the secp256r1 curve was referred to as + -- prime256v1. + + -- Note that [FIPS186-3] refers to secp192r1 as P-192, + -- secp224r1 as P-224, secp256r1 as P-256, secp384r1 as P-384, + -- and secp521r1 as P-521. + + secp192r1 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) + prime(1) 1 } + + sect163k1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 1 } + + sect163r2 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 15 } + + secp224r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 33 } + + sect233k1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 26 } + + sect233r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 27 } + + secp256r1 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) + prime(1) 7 } + + sect283k1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 16 } + + sect283r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 17 } + + secp384r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 34 } + + sect409k1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 36 } + + sect409r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 37 } + + secp521r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 35 } + + sect571k1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 38 } + + sect571r1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) certicom(132) curve(0) 39 } + + -- RSA with MD-2 + + sa-rsaWithMD2 SIGNATURE-ALGORITHM ::= { + IDENTIFIER md2WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-md2 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS { IDENTIFIED BY md2WithRSAEncryption } + } + + md2WithRSAEncryption OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) + pkcs-1(1) 2 } + + -- RSA with MD-5 + + sa-rsaWithMD5 SIGNATURE-ALGORITHM ::= { + IDENTIFIER md5WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-md5 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS { IDENTIFIED BY md5WithRSAEncryption } + } + + md5WithRSAEncryption OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) + pkcs-1(1) 4 } + + -- RSA with SHA-1 + + sa-rsaWithSHA1 SIGNATURE-ALGORITHM ::= { + IDENTIFIER sha1WithRSAEncryption + PARAMS TYPE NULL ARE required + HASHES { mda-sha1 } + PUBLIC-KEYS { pk-rsa } + SMIME-CAPS {IDENTIFIED BY sha1WithRSAEncryption } + } + + sha1WithRSAEncryption OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) + pkcs-1(1) 5 } + + -- DSA with SHA-1 + + sa-dsaWithSHA1 SIGNATURE-ALGORITHM ::= { + IDENTIFIER dsa-with-sha1 + VALUE DSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha1 } + PUBLIC-KEYS { pk-dsa } + SMIME-CAPS { IDENTIFIED BY dsa-with-sha1 } + } + + dsa-with-sha1 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 3 } + + -- DSA with SHA-224 + + sa-dsaWithSHA224 SIGNATURE-ALGORITHM ::= { + IDENTIFIER dsa-with-sha224 + VALUE DSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha224 } + PUBLIC-KEYS { pk-dsa } + SMIME-CAPS { IDENTIFIED BY dsa-with-sha224 } + } + + dsa-with-sha224 OBJECT IDENTIFIER ::= { + joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101) + csor(3) algorithms(4) id-dsa-with-sha2(3) 1 } + + -- DSA with SHA-256 + + sa-dsaWithSHA256 SIGNATURE-ALGORITHM ::= { + IDENTIFIER dsa-with-sha256 + VALUE DSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha256 } + PUBLIC-KEYS { pk-dsa } + SMIME-CAPS { IDENTIFIED BY dsa-with-sha256 } + } + + dsa-with-sha256 OBJECT IDENTIFIER ::= { + joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101) + csor(3) algorithms(4) id-dsa-with-sha2(3) 2 } + + -- ECDSA with SHA-1 + + sa-ecdsaWithSHA1 SIGNATURE-ALGORITHM ::= { + IDENTIFIER ecdsa-with-SHA1 + VALUE ECDSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha1 } + PUBLIC-KEYS { pk-ec } + SMIME-CAPS {IDENTIFIED BY ecdsa-with-SHA1 } + } + + ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) + signatures(4) 1 } + + -- ECDSA with SHA-224 + + sa-ecdsaWithSHA224 SIGNATURE-ALGORITHM ::= { + IDENTIFIER ecdsa-with-SHA224 + VALUE ECDSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha224 } + PUBLIC-KEYS { pk-ec } + SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA224 } + } + + ecdsa-with-SHA224 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) + ecdsa-with-SHA2(3) 1 } + + -- ECDSA with SHA-256 + + sa-ecdsaWithSHA256 SIGNATURE-ALGORITHM ::= { + IDENTIFIER ecdsa-with-SHA256 + VALUE ECDSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha256 } + PUBLIC-KEYS { pk-ec } + SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA256 } + } + + ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) + ecdsa-with-SHA2(3) 2 } + + -- ECDSA with SHA-384 + + sa-ecdsaWithSHA384 SIGNATURE-ALGORITHM ::= { + IDENTIFIER ecdsa-with-SHA384 + VALUE ECDSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha384 } + PUBLIC-KEYS { pk-ec } + SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA384 } + } + ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) + ecdsa-with-SHA2(3) 3 } + + -- ECDSA with SHA-512 + + sa-ecdsaWithSHA512 SIGNATURE-ALGORITHM ::= { + IDENTIFIER ecdsa-with-SHA512 + VALUE ECDSA-Sig-Value + PARAMS TYPE NULL ARE absent + HASHES { mda-sha512 } + PUBLIC-KEYS { pk-ec } + SMIME-CAPS { IDENTIFIED BY ecdsa-with-SHA512 } + } + + ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) + ecdsa-with-SHA2(3) 4 } + + -- + -- Signature Values + -- + + -- DSA + + DSA-Sig-Value ::= SEQUENCE { + r INTEGER, + s INTEGER + } + + -- ECDSA + + ECDSA-Sig-Value ::= SEQUENCE { + r INTEGER, + s INTEGER + } + + -- + -- Message Digest Algorithms (mda-) + -- + + HashAlgs DIGEST-ALGORITHM ::= { + mda-md2 | + mda-md5 | + mda-sha1, + ... -- Extensible + } + -- MD-2 + + mda-md2 DIGEST-ALGORITHM ::= { + IDENTIFIER id-md2 + PARAMS TYPE NULL ARE preferredAbsent + } + + id-md2 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) rsadsi(113549) + digestAlgorithm(2) 2 } + + -- MD-5 + + mda-md5 DIGEST-ALGORITHM ::= { + IDENTIFIER id-md5 + PARAMS TYPE NULL ARE preferredAbsent + } + + id-md5 OBJECT IDENTIFIER ::= { + iso(1) member-body(2) us(840) rsadsi(113549) + digestAlgorithm(2) 5 } + + -- SHA-1 + + mda-sha1 DIGEST-ALGORITHM ::= { + IDENTIFIER id-sha1 + PARAMS TYPE NULL ARE preferredAbsent + } + + id-sha1 OBJECT IDENTIFIER ::= { + iso(1) identified-organization(3) oiw(14) secsig(3) + algorithm(2) 26 } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXAttributeCertificate-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXAttributeCertificate-2009.asn1 new file mode 100644 index 0000000000..3ab074643f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXAttributeCertificate-2009.asn1 @@ -0,0 +1,292 @@ + PKIXAttributeCertificate-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-attribute-cert-02(47)} + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + AttributeSet{}, Extensions{}, SecurityCategory{}, + EXTENSION, ATTRIBUTE, SECURITY-CATEGORY + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57) } + + AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, DIGEST-ALGORITHM + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + -- IMPORTed module OIDs MAY change if [PKIXPROF] changes + -- PKIX Certificate Extensions + + CertificateSerialNumber, UniqueIdentifier, id-pkix, id-pe, id-kp, + id-ad, id-at, SIGNED{}, SignatureAlgorithms + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} + + GeneralName, GeneralNames, id-ce, ext-AuthorityKeyIdentifier, + ext-AuthorityInfoAccess, ext-CRLDistributionPoints + FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + + ContentInfo + FROM CryptographicMessageSyntax-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) + pkcs(1) pkcs-9(9) smime(16) modules(0) id-mod-cms-2004-02(41) }; + -- Define the set of extensions that can appear. + -- Some of these are imported from PKIX Cert + + AttributeCertExtensions EXTENSION ::= { + ext-auditIdentity | ext-targetInformation | + ext-AuthorityKeyIdentifier | ext-AuthorityInfoAccess | + ext-CRLDistributionPoints | ext-noRevAvail | ext-ac-proxying | + ext-aaControls, ... } + + ext-auditIdentity EXTENSION ::= { SYNTAX + OCTET STRING IDENTIFIED BY id-pe-ac-auditIdentity} + + ext-targetInformation EXTENSION ::= { SYNTAX + Targets IDENTIFIED BY id-ce-targetInformation } + + ext-noRevAvail EXTENSION ::= { SYNTAX + NULL IDENTIFIED BY id-ce-noRevAvail} + + ext-ac-proxying EXTENSION ::= { SYNTAX + ProxyInfo IDENTIFIED BY id-pe-ac-proxying} + + ext-aaControls EXTENSION ::= { SYNTAX + AAControls IDENTIFIED BY id-pe-aaControls} + + -- Define the set of attributes used here + + AttributesDefined ATTRIBUTE ::= { at-authenticationInfo | + at-accesIdentity | at-chargingIdentity | at-group | + at-role | at-clearance | at-encAttrs, ...} + + at-authenticationInfo ATTRIBUTE ::= { TYPE SvceAuthInfo + IDENTIFIED BY id-aca-authenticationInfo} + + at-accesIdentity ATTRIBUTE ::= { TYPE SvceAuthInfo + IDENTIFIED BY id-aca-accessIdentity} + + at-chargingIdentity ATTRIBUTE ::= { TYPE IetfAttrSyntax + IDENTIFIED BY id-aca-chargingIdentity} + + at-group ATTRIBUTE ::= { TYPE IetfAttrSyntax + IDENTIFIED BY id-aca-group} + + at-role ATTRIBUTE ::= { TYPE RoleSyntax + IDENTIFIED BY id-at-role} + + at-clearance ATTRIBUTE ::= { TYPE Clearance + IDENTIFIED BY id-at-clearance} + at-clearance-RFC3281 ATTRIBUTE ::= {TYPE Clearance-rfc3281 + IDENTIFIED BY id-at-clearance-rfc3281 } + + at-encAttrs ATTRIBUTE ::= { TYPE ContentInfo + IDENTIFIED BY id-aca-encAttrs} + + -- + -- OIDs used by Attribute Certificate Extensions + -- + + id-pe-ac-auditIdentity OBJECT IDENTIFIER ::= { id-pe 4 } + id-pe-aaControls OBJECT IDENTIFIER ::= { id-pe 6 } + id-pe-ac-proxying OBJECT IDENTIFIER ::= { id-pe 10 } + id-ce-targetInformation OBJECT IDENTIFIER ::= { id-ce 55 } + id-ce-noRevAvail OBJECT IDENTIFIER ::= { id-ce 56 } + + -- + -- OIDs used by Attribute Certificate Attributes + -- + + id-aca OBJECT IDENTIFIER ::= { id-pkix 10 } + + id-aca-authenticationInfo OBJECT IDENTIFIER ::= { id-aca 1 } + id-aca-accessIdentity OBJECT IDENTIFIER ::= { id-aca 2 } + id-aca-chargingIdentity OBJECT IDENTIFIER ::= { id-aca 3 } + id-aca-group OBJECT IDENTIFIER ::= { id-aca 4 } + -- { id-aca 5 } is reserved + id-aca-encAttrs OBJECT IDENTIFIER ::= { id-aca 6 } + + id-at-role OBJECT IDENTIFIER ::= { id-at 72} + id-at-clearance OBJECT IDENTIFIER ::= { + joint-iso-ccitt(2) ds(5) attributeType(4) clearance (55) } + + -- Uncomment the following declaration and comment the above line if + -- using the id-at-clearance attribute as defined in [RFC3281] + -- id-at-clearance ::= id-at-clearance-3281 + + id-at-clearance-rfc3281 OBJECT IDENTIFIER ::= { + joint-iso-ccitt(2) ds(5) module(1) selected-attribute-types(5) + clearance (55) } + + -- + -- The syntax of an Attribute Certificate + -- + + AttributeCertificate ::= SIGNED{AttributeCertificateInfo} + + AttributeCertificateInfo ::= SEQUENCE { + version AttCertVersion, -- version is v2 + holder Holder, + issuer AttCertIssuer, + signature AlgorithmIdentifier{SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + serialNumber CertificateSerialNumber, + attrCertValidityPeriod AttCertValidityPeriod, + attributes SEQUENCE OF + AttributeSet{{AttributesDefined}}, + issuerUniqueID UniqueIdentifier OPTIONAL, + extensions Extensions{{AttributeCertExtensions}} OPTIONAL + } + + AttCertVersion ::= INTEGER { v2(1) } + + Holder ::= SEQUENCE { + baseCertificateID [0] IssuerSerial OPTIONAL, + -- the issuer and serial number of + -- the holder's Public Key Certificate + entityName [1] GeneralNames OPTIONAL, + -- the name of the claimant or role + objectDigestInfo [2] ObjectDigestInfo OPTIONAL + -- used to directly authenticate the + -- holder, for example, an executable + } + + ObjectDigestInfo ::= SEQUENCE { + digestedObjectType ENUMERATED { + publicKey (0), + publicKeyCert (1), + otherObjectTypes (2) }, + -- otherObjectTypes MUST NOT + -- be used in this profile + otherObjectTypeID OBJECT IDENTIFIER OPTIONAL, + digestAlgorithm AlgorithmIdentifier{DIGEST-ALGORITHM, {...}}, + objectDigest BIT STRING + } + + AttCertIssuer ::= CHOICE { + v1Form GeneralNames, -- MUST NOT be used in this + -- profile + v2Form [0] V2Form -- v2 only + } + + V2Form ::= SEQUENCE { + issuerName GeneralNames OPTIONAL, + baseCertificateID [0] IssuerSerial OPTIONAL, + objectDigestInfo [1] ObjectDigestInfo OPTIONAL + -- issuerName MUST be present in this profile + -- baseCertificateID and objectDigestInfo MUST + -- NOT be present in this profile + } + + IssuerSerial ::= SEQUENCE { + issuer GeneralNames, + serial CertificateSerialNumber, + issuerUID UniqueIdentifier OPTIONAL + } + + AttCertValidityPeriod ::= SEQUENCE { + notBeforeTime GeneralizedTime, + notAfterTime GeneralizedTime + } + + -- + -- Syntax used by Attribute Certificate Extensions + -- + + Targets ::= SEQUENCE OF Target + + Target ::= CHOICE { + targetName [0] GeneralName, + targetGroup [1] GeneralName, + targetCert [2] TargetCert + } + + TargetCert ::= SEQUENCE { + targetCertificate IssuerSerial, + targetName GeneralName OPTIONAL, + certDigestInfo ObjectDigestInfo OPTIONAL + } + + AAControls ::= SEQUENCE { + pathLenConstraint INTEGER (0..MAX) OPTIONAL, + permittedAttrs [0] AttrSpec OPTIONAL, + excludedAttrs [1] AttrSpec OPTIONAL, + permitUnSpecified BOOLEAN DEFAULT TRUE + } + + AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER + + ProxyInfo ::= SEQUENCE OF Targets + + -- + -- Syntax used by Attribute Certificate Attributes + -- + IetfAttrSyntax ::= SEQUENCE { + policyAuthority[0] GeneralNames OPTIONAL, + values SEQUENCE OF CHOICE { + octets OCTET STRING, + oid OBJECT IDENTIFIER, + string UTF8String + } + } + + SvceAuthInfo ::= SEQUENCE { + service GeneralName, + ident GeneralName, + authInfo OCTET STRING OPTIONAL + } + + RoleSyntax ::= SEQUENCE { + roleAuthority [0] GeneralNames OPTIONAL, + roleName [1] GeneralName + } + + Clearance ::= SEQUENCE { + policyId OBJECT IDENTIFIER, + classList ClassList DEFAULT {unclassified}, + securityCategories SET OF SecurityCategory + {{SupportedSecurityCategories}} OPTIONAL + } + + -- Uncomment the following lines to support deprecated clearance + -- syntax and comment out previous Clearance. + + -- Clearance ::= Clearance-rfc3281 + + Clearance-rfc3281 ::= SEQUENCE { + policyId [0] OBJECT IDENTIFIER, + classList [1] ClassList DEFAULT {unclassified}, + securityCategories [2] SET OF SecurityCategory-rfc3281 + {{SupportedSecurityCategories}} OPTIONAL + } + + ClassList ::= BIT STRING { + unmarked (0), + unclassified (1), + restricted (2), + confidential (3), + secret (4), + topSecret (5) + } + SupportedSecurityCategories SECURITY-CATEGORY ::= { ... } + + SecurityCategory-rfc3281{SECURITY-CATEGORY:Supported} ::= SEQUENCE { + type [0] IMPLICIT SECURITY-CATEGORY. + &id({Supported}), + value [1] EXPLICIT SECURITY-CATEGORY. + &Type({Supported}{@type}) + } + + ACClearAttrs ::= SEQUENCE { + acIssuer GeneralName, + acSerial INTEGER, + attrs SEQUENCE OF AttributeSet{{AttributesDefined}} + } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXCMP-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXCMP-2009.asn1 new file mode 100644 index 0000000000..968a142f28 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXCMP-2009.asn1 @@ -0,0 +1,495 @@ + PKIXCMP-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-cmp2000-02(50) } + DEFINITIONS EXPLICIT TAGS ::= + BEGIN + IMPORTS + + AttributeSet{}, Extensions{}, EXTENSION, ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} + + AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, ALGORITHM, + DIGEST-ALGORITHM, MAC-ALGORITHM + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + Certificate, CertificateList + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} + + GeneralName, KeyIdentifier + FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + + CertTemplate, PKIPublicationInfo, EncryptedValue, CertId, + CertReqMessages + FROM PKIXCRMF-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-crmf2005-02(55) } + -- see also the behavioral clarifications to CRMF codified in + -- Appendix C of this specification + + CertificationRequest + FROM PKCS-10 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkcs10-2009(69)} + -- (specified in RFC 2986 with 1993 ASN.1 syntax and IMPLICIT + -- tags). Alternatively, implementers may directly include + -- the [PKCS10] syntax in this module + ; + + -- the rest of the module contains locally defined OIDs and + -- constructs + + CMPCertificate ::= CHOICE { x509v3PKCert Certificate, ... } + -- This syntax, while bits-on-the-wire compatible with the + -- standard X.509 definition of "Certificate", allows the + -- possibility of future certificate types (such as X.509 + -- attribute certificates, WAP WTLS certificates, or other kinds + -- of certificates) within this certificate management protocol, + -- should a need ever arise to support such generality. Those + -- implementations that do not foresee a need to ever support + -- other certificate types MAY, if they wish, comment out the + -- above structure and "uncomment" the following one prior to + -- compiling this ASN.1 module. (Note that interoperability + -- with implementations that don't do this will be unaffected by + -- this change.) + + -- CMPCertificate ::= Certificate + + PKIMessage ::= SEQUENCE { + header PKIHeader, + body PKIBody, + protection [0] PKIProtection OPTIONAL, + extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate + OPTIONAL } + + PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage + + PKIHeader ::= SEQUENCE { + pvno INTEGER { cmp1999(1), cmp2000(2) }, + sender GeneralName, + -- identifies the sender + recipient GeneralName, + -- identifies the intended recipient + messageTime [0] GeneralizedTime OPTIONAL, + -- time of production of this message (used when sender + -- believes that the transport will be "suitable"; i.e., + -- that the time will still be meaningful upon receipt) + protectionAlg [1] AlgorithmIdentifier{ALGORITHM, {...}} + OPTIONAL, + -- algorithm used for calculation of protection bits + senderKID [2] KeyIdentifier OPTIONAL, + recipKID [3] KeyIdentifier OPTIONAL, + -- to identify specific keys used for protection + transactionID [4] OCTET STRING OPTIONAL, + -- identifies the transaction; i.e., this will be the same in + -- corresponding request, response, certConf, and PKIConf + -- messages + senderNonce [5] OCTET STRING OPTIONAL, + recipNonce [6] OCTET STRING OPTIONAL, + -- nonces used to provide replay protection, senderNonce + -- is inserted by the creator of this message; recipNonce + -- is a nonce previously inserted in a related message by + -- the intended recipient of this message + freeText [7] PKIFreeText OPTIONAL, + -- this may be used to indicate context-specific instructions + -- (this field is intended for human consumption) + generalInfo [8] SEQUENCE SIZE (1..MAX) OF + InfoTypeAndValue OPTIONAL + -- this may be used to convey context-specific information + -- (this field not primarily intended for human consumption) + } + + PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String + -- text encoded as UTF-8 String [RFC3629] (note: each + -- UTF8String MAY include an [RFC3066] language tag + -- to indicate the language of the contained text; + -- see [RFC2482] for details) + + PKIBody ::= CHOICE { -- message-specific body elements + ir [0] CertReqMessages, --Initialization Request + ip [1] CertRepMessage, --Initialization Response + cr [2] CertReqMessages, --Certification Request + cp [3] CertRepMessage, --Certification Response + p10cr [4] CertificationRequest, --imported from [PKCS10] + popdecc [5] POPODecKeyChallContent, --pop Challenge + popdecr [6] POPODecKeyRespContent, --pop Response + kur [7] CertReqMessages, --Key Update Request + kup [8] CertRepMessage, --Key Update Response + krr [9] CertReqMessages, --Key Recovery Request + krp [10] KeyRecRepContent, --Key Recovery Response + rr [11] RevReqContent, --Revocation Request + rp [12] RevRepContent, --Revocation Response + ccr [13] CertReqMessages, --Cross-Cert. Request + ccp [14] CertRepMessage, --Cross-Cert. Response + ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann. + cann [16] CertAnnContent, --Certificate Ann. + rann [17] RevAnnContent, --Revocation Ann. + crlann [18] CRLAnnContent, --CRL Announcement + pkiconf [19] PKIConfirmContent, --Confirmation + nested [20] NestedMessageContent, --Nested Message + genm [21] GenMsgContent, --General Message + genp [22] GenRepContent, --General Response + error [23] ErrorMsgContent, --Error Message + certConf [24] CertConfirmContent, --Certificate confirm + pollReq [25] PollReqContent, --Polling request + pollRep [26] PollRepContent --Polling response + } + + PKIProtection ::= BIT STRING + + ProtectedPart ::= SEQUENCE { + header PKIHeader, + body PKIBody } + + id-PasswordBasedMac OBJECT IDENTIFIER ::= { iso(1) member-body(2) + usa(840) nt(113533) nsn(7) algorithms(66) 13 } + PBMParameter ::= SEQUENCE { + salt OCTET STRING, + -- note: implementations MAY wish to limit acceptable sizes + -- of this string to values appropriate for their environment + -- in order to reduce the risk of denial-of-service attacks + owf AlgorithmIdentifier{DIGEST-ALGORITHM, {...}}, + -- AlgId for a One-Way Function (SHA-1 recommended) + iterationCount INTEGER, + -- number of times the OWF is applied + -- note: implementations MAY wish to limit acceptable sizes + -- of this integer to values appropriate for their environment + -- in order to reduce the risk of denial-of-service attacks + mac AlgorithmIdentifier{MAC-ALGORITHM, {...}} + -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11], + -- or HMAC [RFC2104, RFC2202]) + } + + id-DHBasedMac OBJECT IDENTIFIER ::= { iso(1) member-body(2) + usa(840) nt(113533) nsn(7) algorithms(66) 30 } + DHBMParameter ::= SEQUENCE { + owf AlgorithmIdentifier{DIGEST-ALGORITHM, {...}}, + -- AlgId for a One-Way Function (SHA-1 recommended) + mac AlgorithmIdentifier{MAC-ALGORITHM, {...}} + -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11], + -- or HMAC [RFC2104, RFC2202]) + } + + PKIStatus ::= INTEGER { + accepted (0), + -- you got exactly what you asked for + grantedWithMods (1), + -- you got something like what you asked for; the + -- requester is responsible for ascertaining the differences + rejection (2), + -- you don't get it, more information elsewhere in the message + waiting (3), + -- the request body part has not yet been processed; expect to + -- hear more later (note: proper handling of this status + -- response MAY use the polling req/rep PKIMessages specified + -- in Section 5.3.22; alternatively, polling in the underlying + -- transport layer MAY have some utility in this regard) + revocationWarning (4), + -- this message contains a warning that a revocation is + -- imminent + revocationNotification (5), + -- notification that a revocation has occurred + keyUpdateWarning (6) + -- update already done for the oldCertId specified in + -- CertReqMsg + } + + PKIFailureInfo ::= BIT STRING { + -- since we can fail in more than one way! + -- More codes may be added in the future if/when required. + badAlg (0), + -- unrecognized or unsupported Algorithm Identifier + badMessageCheck (1), + -- integrity check failed (e.g., signature did not verify) + badRequest (2), + -- transaction not permitted or supported + badTime (3), + -- messageTime was not sufficiently close to the system time, + -- as defined by local policy + badCertId (4), + -- no certificate could be found matching the provided criteria + badDataFormat (5), + -- the data submitted has the wrong format + wrongAuthority (6), + -- the authority indicated in the request is different from the + -- one creating the response token + incorrectData (7), + -- the requester's data is incorrect (for notary services) + missingTimeStamp (8), + -- when the timestamp is missing but should be there + -- (by policy) + badPOP (9), + -- the proof-of-possession failed + certRevoked (10), + -- the certificate has already been revoked + certConfirmed (11), + -- the certificate has already been confirmed + wrongIntegrity (12), + -- invalid integrity, password based instead of signature or + -- vice versa + badRecipientNonce (13), + -- invalid recipient nonce, either missing or wrong value + timeNotAvailable (14), + -- the TSA's time source is not available + unacceptedPolicy (15), + -- the requested TSA policy is not supported by the TSA + unacceptedExtension (16), + -- the requested extension is not supported by the TSA + addInfoNotAvailable (17), + -- the additional information requested could not be + -- understood or is not available + badSenderNonce (18), + -- invalid sender nonce, either missing or wrong size + badCertTemplate (19), + -- invalid cert. template or missing mandatory information + signerNotTrusted (20), + -- signer of the message unknown or not trusted + transactionIdInUse (21), + -- the transaction identifier is already in use + unsupportedVersion (22), + -- the version of the message is not supported + notAuthorized (23), + -- the sender was not authorized to make the preceding + -- request or perform the preceding action + systemUnavail (24), + -- the request cannot be handled due to system unavailability + systemFailure (25), + -- the request cannot be handled due to system failure + duplicateCertReq (26) + -- certificate cannot be issued because a duplicate + -- certificate already exists + } + + PKIStatusInfo ::= SEQUENCE { + status PKIStatus, + statusString PKIFreeText OPTIONAL, + failInfo PKIFailureInfo OPTIONAL } + + OOBCert ::= CMPCertificate + + OOBCertHash ::= SEQUENCE { + hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} + OPTIONAL, + certId [1] CertId OPTIONAL, + hashVal BIT STRING + -- hashVal is calculated over the DER encoding of the + -- self-signed certificate with the identifier certID. + } + + POPODecKeyChallContent ::= SEQUENCE OF Challenge + -- One Challenge per encryption key certification request (in the + -- same order as these requests appear in CertReqMessages). + + Challenge ::= SEQUENCE { + owf AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} + OPTIONAL, + -- MUST be present in the first Challenge; MAY be omitted in + -- any subsequent Challenge in POPODecKeyChallContent (if + -- omitted, then the owf used in the immediately preceding + -- Challenge is to be used). + witness OCTET STRING, + -- the result of applying the one-way function (owf) to a + -- randomly-generated INTEGER, A. [Note that a different + -- INTEGER MUST be used for each Challenge.] + challenge OCTET STRING + -- the encryption (under the public key for which the cert. + -- request is being made) of Rand, where Rand is specified as + -- Rand ::= SEQUENCE { + -- int INTEGER, + -- - the randomly-generated INTEGER A (above) + -- sender GeneralName + -- - the sender's name (as included in PKIHeader) + -- } + } + + POPODecKeyRespContent ::= SEQUENCE OF INTEGER + -- One INTEGER per encryption key certification request (in the + -- same order as these requests appear in CertReqMessages). The + -- retrieved INTEGER A (above) is returned to the sender of the + -- corresponding Challenge. + + CertRepMessage ::= SEQUENCE { + caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate + OPTIONAL, + response SEQUENCE OF CertResponse } + + CertResponse ::= SEQUENCE { + certReqId INTEGER, + -- to match this response with the corresponding request (a value + -- of -1 is to be used if certReqId is not specified in the + -- corresponding request) + status PKIStatusInfo, + certifiedKeyPair CertifiedKeyPair OPTIONAL, + rspInfo OCTET STRING OPTIONAL + -- analogous to the id-regInfo-utf8Pairs string defined + -- for regInfo in CertReqMsg [RFC4211] + } + + CertifiedKeyPair ::= SEQUENCE { + certOrEncCert CertOrEncCert, + privateKey [0] EncryptedValue OPTIONAL, + -- see [RFC4211] for comment on encoding + publicationInfo [1] PKIPublicationInfo OPTIONAL } + + CertOrEncCert ::= CHOICE { + certificate [0] CMPCertificate, + encryptedCert [1] EncryptedValue } + KeyRecRepContent ::= SEQUENCE { + status PKIStatusInfo, + newSigCert [0] CMPCertificate OPTIONAL, + caCerts [1] SEQUENCE SIZE (1..MAX) OF + CMPCertificate OPTIONAL, + keyPairHist [2] SEQUENCE SIZE (1..MAX) OF + CertifiedKeyPair OPTIONAL } + + RevReqContent ::= SEQUENCE OF RevDetails + + RevDetails ::= SEQUENCE { + certDetails CertTemplate, + -- allows requester to specify as much as they can about + -- the cert. for which revocation is requested + -- (e.g., for cases in which serialNumber is not available) + crlEntryDetails Extensions{{...}} OPTIONAL + -- requested crlEntryExtensions + } + + RevRepContent ::= SEQUENCE { + status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo, + -- in same order as was sent in RevReqContent + revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL, + -- IDs for which revocation was requested + -- (same order as status) + crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL + -- the resulting CRLs (there may be more than one) + } + + CAKeyUpdAnnContent ::= SEQUENCE { + oldWithNew CMPCertificate, -- old pub signed with new priv + newWithOld CMPCertificate, -- new pub signed with old priv + newWithNew CMPCertificate -- new pub signed with new priv + } + + CertAnnContent ::= CMPCertificate + + RevAnnContent ::= SEQUENCE { + status PKIStatus, + certId CertId, + willBeRevokedAt GeneralizedTime, + badSinceDate GeneralizedTime, + crlDetails Extensions{{...}} OPTIONAL + -- extra CRL details (e.g., crl number, reason, location, etc.) + } + + CRLAnnContent ::= SEQUENCE OF CertificateList + PKIConfirmContent ::= NULL + + NestedMessageContent ::= PKIMessages + + INFO-TYPE-AND-VALUE ::= TYPE-IDENTIFIER + + InfoTypeAndValue ::= SEQUENCE { + infoType INFO-TYPE-AND-VALUE. + &id({SupportedInfoSet}), + infoValue INFO-TYPE-AND-VALUE. + &Type({SupportedInfoSet}{@infoType}) } + + SupportedInfoSet INFO-TYPE-AND-VALUE ::= { ... } + + -- Example InfoTypeAndValue contents include, but are not limited + -- to, the following (uncomment in this ASN.1 module and use as + -- appropriate for a given environment): + -- + -- id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} + -- CAProtEncCertValue ::= CMPCertificate + -- id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} + -- SignKeyPairTypesValue ::= SEQUENCE OF + -- AlgorithmIdentifier{{...}} + -- id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} + -- EncKeyPairTypesValue ::= SEQUENCE OF + -- AlgorithmIdentifier{{...}} + -- id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} + -- PreferredSymmAlgValue ::= AlgorithmIdentifier{{...}} + -- id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} + -- CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent + -- id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} + -- CurrentCRLValue ::= CertificateList + -- id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} + -- UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER + -- id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} + -- KeyPairParamReqValue ::= OBJECT IDENTIFIER + -- id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} + -- KeyPairParamRepValue ::= AlgorithmIdentifer + -- id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} + -- RevPassphraseValue ::= EncryptedValue + -- id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} + -- ImplicitConfirmValue ::= NULL + -- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} + -- ConfirmWaitTimeValue ::= GeneralizedTime + -- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} + -- OrigPKIMessageValue ::= PKIMessages + -- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} + -- SuppLangTagsValue ::= SEQUENCE OF UTF8String + -- + -- where + -- + -- id-pkix OBJECT IDENTIFIER ::= { + -- iso(1) identified-organization(3) + -- dod(6) internet(1) security(5) mechanisms(5) pkix(7)} + -- and + -- id-it OBJECT IDENTIFIER ::= {id-pkix 4} + -- + -- + -- This construct MAY also be used to define new PKIX Certificate + -- Management Protocol request and response messages, or general- + -- purpose (e.g., announcement) messages for future needs or for + -- specific environments. + + GenMsgContent ::= SEQUENCE OF InfoTypeAndValue + + -- May be sent by EE, RA, or CA (depending on message content). + -- The OPTIONAL infoValue parameter of InfoTypeAndValue will + -- typically be omitted for some of the examples given above. + -- The receiver is free to ignore any contained OBJECT IDs that it + -- does not recognize. If sent from EE to CA, the empty set + -- indicates that the CA may send + -- any/all information that it wishes. + + GenRepContent ::= SEQUENCE OF InfoTypeAndValue + -- Receiver MAY ignore any contained OIDs that it does not + -- recognize. + + ErrorMsgContent ::= SEQUENCE { + pKIStatusInfo PKIStatusInfo, + errorCode INTEGER OPTIONAL, + -- implementation-specific error codes + errorDetails PKIFreeText OPTIONAL + -- implementation-specific error details + } + + CertConfirmContent ::= SEQUENCE OF CertStatus + + CertStatus ::= SEQUENCE { + certHash OCTET STRING, + -- the hash of the certificate, using the same hash algorithm + -- as is used to create and verify the certificate signature + certReqId INTEGER, + -- to match this confirmation with the corresponding req/rep + statusInfo PKIStatusInfo OPTIONAL } + + PollReqContent ::= SEQUENCE OF SEQUENCE { + certReqId INTEGER } + + PollRepContent ::= SEQUENCE OF SEQUENCE { + certReqId INTEGER, + checkAfter INTEGER, -- time in seconds + reason PKIFreeText OPTIONAL } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXCRMF-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXCRMF-2009.asn1 new file mode 100644 index 0000000000..1c0b780499 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/PKIXCRMF-2009.asn1 @@ -0,0 +1,409 @@ + PKIXCRMF-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-crmf2005-02(55)} + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + AttributeSet{}, Extensions{}, EXTENSION, ATTRIBUTE, + SingleAttribute{} + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkixCommon-02(57) } + + AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, ALGORITHM, + DIGEST-ALGORITHM, MAC-ALGORITHM, PUBLIC-KEY + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + Version, Name, Time, SubjectPublicKeyInfo, UniqueIdentifier, id-pkix, + SignatureAlgorithms + FROM PKIX1Explicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} + + GeneralName, CertExtensions + FROM PKIX1Implicit-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} + + EnvelopedData, CONTENT-TYPE + FROM CryptographicMessageSyntax-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cms-2004-02(41)} + maca-hMAC-SHA1 + FROM CryptographicMessageSyntaxAlgorithms-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cmsalg-2001-02(37) } + + mda-sha1 + FROM PKIXAlgs-2009 + { iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56) } ; + + -- arc for Internet X.509 PKI protocols and their components + + id-pkip OBJECT IDENTIFIER ::= { id-pkix 5 } + + id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 } + + id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types + + -- Core definitions for this module + + CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg + + CertReqMsg ::= SEQUENCE { + certReq CertRequest, + popo ProofOfPossession OPTIONAL, + -- content depends upon key type + regInfo SEQUENCE SIZE(1..MAX) OF + SingleAttribute{{RegInfoSet}} OPTIONAL } + + CertRequest ::= SEQUENCE { + certReqId INTEGER, + -- ID for matching request and reply + certTemplate CertTemplate, + -- Selected fields of cert to be issued + controls Controls OPTIONAL } + -- Attributes affecting issuance + + CertTemplate ::= SEQUENCE { + version [0] Version OPTIONAL, + serialNumber [1] INTEGER OPTIONAL, + signingAlg [2] AlgorithmIdentifier{SIGNATURE-ALGORITHM, + {SignatureAlgorithms}} OPTIONAL, + issuer [3] Name OPTIONAL, + validity [4] OptionalValidity OPTIONAL, + subject [5] Name OPTIONAL, + publicKey [6] SubjectPublicKeyInfo OPTIONAL, + issuerUID [7] UniqueIdentifier OPTIONAL, + subjectUID [8] UniqueIdentifier OPTIONAL, + extensions [9] Extensions{{CertExtensions}} OPTIONAL } + + OptionalValidity ::= SEQUENCE { + notBefore [0] Time OPTIONAL, + notAfter [1] Time OPTIONAL } -- at least one MUST be present + + Controls ::= SEQUENCE SIZE(1..MAX) OF SingleAttribute + {{RegControlSet}} + + ProofOfPossession ::= CHOICE { + raVerified [0] NULL, + -- used if the RA has already verified that the requester is in + -- possession of the private key + signature [1] POPOSigningKey, + keyEncipherment [2] POPOPrivKey, + keyAgreement [3] POPOPrivKey } + + POPOSigningKey ::= SEQUENCE { + poposkInput [0] POPOSigningKeyInput OPTIONAL, + algorithmIdentifier AlgorithmIdentifier{SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + signature BIT STRING } + -- The signature (using "algorithmIdentifier") is on the + -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg + -- certReq CertTemplate contains the subject and publicKey values, + -- then poposkInput MUST be omitted and the signature MUST be + -- computed over the DER-encoded value of CertReqMsg certReq. If + -- the CertReqMsg certReq CertTemplate does not contain both the + -- public key and subject values (i.e., if it contains only one + -- of these, or neither), then poposkInput MUST be present and + -- MUST be signed. + + POPOSigningKeyInput ::= SEQUENCE { + authInfo CHOICE { + sender [0] GeneralName, + -- used only if an authenticated identity has been + -- established for the sender (e.g., a DN from a + -- previously-issued and currently-valid certificate) + publicKeyMAC PKMACValue }, + -- used if no authenticated GeneralName currently exists for + -- the sender; publicKeyMAC contains a password-based MAC + -- on the DER-encoded value of publicKey + publicKey SubjectPublicKeyInfo } -- from CertTemplate + + PKMACValue ::= SEQUENCE { + algId AlgorithmIdentifier{MAC-ALGORITHM, + {Password-MACAlgorithms}}, + value BIT STRING } + + -- + -- Define the currently only acceptable MAC algorithm to be used + -- for the PKMACValue structure + -- + + id-PasswordBasedMac OBJECT IDENTIFIER ::= { iso(1) member-body(2) + usa(840) nt(113533) nsn(7) algorithms(66) 13 } + + Password-MACAlgorithms MAC-ALGORITHM ::= { + {IDENTIFIER id-PasswordBasedMac + PARAMS TYPE PBMParameter ARE required + IS-KEYED-MAC TRUE + }, ... + } + + PBMParameter ::= SEQUENCE { + salt OCTET STRING, + owf AlgorithmIdentifier{DIGEST-ALGORITHM, + {DigestAlgorithms}}, + -- AlgId for a One-Way Function (SHA-1 recommended) + iterationCount INTEGER, + -- number of times the OWF is applied + mac AlgorithmIdentifier{MAC-ALGORITHM, + {MACAlgorithms}} + -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC, or HMAC + } + + DigestAlgorithms DIGEST-ALGORITHM ::= { + mda-sha1, ... + } + + MACAlgorithms MAC-ALGORITHM ::= { + -- The modules containing the ASN.1 for the DES and 3DES MAC + -- algorithms have not been updated at the time that this is + -- being published. Users of this module should define the + -- appropriate MAC-ALGORITHM objects and uncomment the + -- following lines if they support these MAC algorithms. + -- maca-des-mac | maca-3des-mac -- + maca-hMAC-SHA1, + ... + } + + POPOPrivKey ::= CHOICE { + thisMessage [0] BIT STRING, -- Deprecated + -- possession is proven in this message (which contains + -- the private key itself (encrypted for the CA)) + subsequentMessage [1] SubsequentMessage, + -- possession will be proven in a subsequent message + dhMAC [2] BIT STRING, -- Deprecated + agreeMAC [3] PKMACValue, + encryptedKey [4] EnvelopedData } + -- for keyAgreement (only), possession is proven in this message + -- (which contains a MAC (over the DER-encoded value of the + -- certReq parameter in CertReqMsg, which MUST include both + -- subject and publicKey) based on a key derived from the end + -- entity's private DH key and the CA's public DH key); + + SubsequentMessage ::= INTEGER { + encrCert (0), + -- requests that resulting certificate be encrypted for the + -- end entity (following which, POP will be proven in a + -- confirmation message) + challengeResp (1) } + -- requests that CA engage in challenge-response exchange with + -- end entity in order to prove private key possession + + -- + -- id-ct-encKeyWithID content type used as the content type for the + -- EnvelopedData in POPOPrivKey. + -- It contains both a private key and an identifier for key escrow + -- agents to check against recovery requestors. + -- + + ct-encKeyWithID CONTENT-TYPE ::= + { EncKeyWithID IDENTIFIED BY id-ct-encKeyWithID } + + id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21} + + EncKeyWithID ::= SEQUENCE { + privateKey PrivateKeyInfo, + identifier CHOICE { + string UTF8String, + generalName GeneralName + } OPTIONAL + } + + PrivateKeyInfo ::= SEQUENCE { + version INTEGER, + privateKeyAlgorithm AlgorithmIdentifier{PUBLIC-KEY, {...}}, + privateKey OCTET STRING, + -- Structure of public key is in PUBLIC-KEY.&PrivateKey + attributes [0] IMPLICIT Attributes OPTIONAL + } + + Attributes ::= SET OF AttributeSet{{PrivateKeyAttributes}} + PrivateKeyAttributes ATTRIBUTE ::= {...} + + -- + -- 6. Registration Controls in CRMF + -- + + id-regCtrl OBJECT IDENTIFIER ::= { id-pkip 1 } + + RegControlSet ATTRIBUTE ::= { + regCtrl-regToken | regCtrl-authenticator | + regCtrl-pkiPublicationInfo | regCtrl-pkiArchiveOptions | + regCtrl-oldCertID | regCtrl-protocolEncrKey, ... } + + -- + -- 6.1. Registration Token Control + -- + + regCtrl-regToken ATTRIBUTE ::= + { TYPE RegToken IDENTIFIED BY id-regCtrl-regToken } + + id-regCtrl-regToken OBJECT IDENTIFIER ::= { id-regCtrl 1 } + + RegToken ::= UTF8String + + -- + -- 6.2. Authenticator Control + -- + + regCtrl-authenticator ATTRIBUTE ::= + { TYPE Authenticator IDENTIFIED BY id-regCtrl-authenticator } + + id-regCtrl-authenticator OBJECT IDENTIFIER ::= { id-regCtrl 2 } + + Authenticator ::= UTF8String + + -- + -- 6.3. Publication Information Control + -- + + regCtrl-pkiPublicationInfo ATTRIBUTE ::= + { TYPE PKIPublicationInfo IDENTIFIED BY + id-regCtrl-pkiPublicationInfo } + + id-regCtrl-pkiPublicationInfo OBJECT IDENTIFIER ::= { id-regCtrl 3 } + + PKIPublicationInfo ::= SEQUENCE { + action INTEGER { + dontPublish (0), + pleasePublish (1) }, + pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL } + -- pubInfos MUST NOT be present if action is "dontPublish" + -- (if action is "pleasePublish" and pubInfos is omitted, + -- "dontCare" is assumed) + + SinglePubInfo ::= SEQUENCE { + pubMethod INTEGER { + dontCare (0), + x500 (1), + web (2), + ldap (3) }, + pubLocation GeneralName OPTIONAL } + + -- + -- 6.4. Archive Options Control + -- + + regCtrl-pkiArchiveOptions ATTRIBUTE ::= + { TYPE PKIArchiveOptions IDENTIFIED BY + id-regCtrl-pkiArchiveOptions } + + id-regCtrl-pkiArchiveOptions OBJECT IDENTIFIER ::= { id-regCtrl 4 } + + PKIArchiveOptions ::= CHOICE { + encryptedPrivKey [0] EncryptedKey, + -- the actual value of the private key + keyGenParameters [1] KeyGenParameters, + -- parameters that allow the private key to be re-generated + archiveRemGenPrivKey [2] BOOLEAN } + -- set to TRUE if sender wishes receiver to archive the private + -- key of a key pair that the receiver generates in response to + -- this request; set to FALSE if no archive is desired. + + EncryptedKey ::= CHOICE { + encryptedValue EncryptedValue, -- Deprecated + envelopedData [0] EnvelopedData } + -- The encrypted private key MUST be placed in the envelopedData + -- encryptedContentInfo encryptedContent OCTET STRING. + + -- + -- We skipped doing the full constraints here since this structure + -- has been deprecated in favor of EnvelopedData + -- + + EncryptedValue ::= SEQUENCE { + intendedAlg [0] AlgorithmIdentifier{ALGORITHM, {...}} OPTIONAL, + -- the intended algorithm for which the value will be used + symmAlg [1] AlgorithmIdentifier{ALGORITHM, {...}} OPTIONAL, + -- the symmetric algorithm used to encrypt the value + encSymmKey [2] BIT STRING OPTIONAL, + -- the (encrypted) symmetric key used to encrypt the value + keyAlg [3] AlgorithmIdentifier{ALGORITHM, {...}} OPTIONAL, + -- algorithm used to encrypt the symmetric key + valueHint [4] OCTET STRING OPTIONAL, + -- a brief description or identifier of the encValue content + -- (may be meaningful only to the sending entity, and used only + -- if EncryptedValue might be re-examined by the sending entity + -- in the future) + encValue BIT STRING } + -- the encrypted value itself + -- When EncryptedValue is used to carry a private key (as opposed to + -- a certificate), implementations MUST support the encValue field + -- containing an encrypted PrivateKeyInfo as defined in [PKCS11], + -- section 12.11. If encValue contains some other format/encoding + -- for the private key, the first octet of valueHint MAY be used + -- to indicate the format/encoding (but note that the possible values + -- of this octet are not specified at this time). In all cases, the + -- intendedAlg field MUST be used to indicate at least the OID of + -- the intended algorithm of the private key, unless this information + -- is known a priori to both sender and receiver by some other means. + + KeyGenParameters ::= OCTET STRING + + -- + -- 6.5. OldCert ID Control + -- + + regCtrl-oldCertID ATTRIBUTE ::= + { TYPE OldCertId IDENTIFIED BY id-regCtrl-oldCertID } + + id-regCtrl-oldCertID OBJECT IDENTIFIER ::= { id-regCtrl 5 } + + OldCertId ::= CertId + + CertId ::= SEQUENCE { + issuer GeneralName, + serialNumber INTEGER } + + -- + -- 6.6. Protocol Encryption Key Control + -- + + regCtrl-protocolEncrKey ATTRIBUTE ::= + { TYPE ProtocolEncrKey IDENTIFIED BY id-regCtrl-protocolEncrKey } + id-regCtrl-protocolEncrKey OBJECT IDENTIFIER ::= { id-regCtrl 6 } + + ProtocolEncrKey ::= SubjectPublicKeyInfo + + -- + -- 7. Registration Info in CRMF + -- + + id-regInfo OBJECT IDENTIFIER ::= { id-pkip 2 } + + RegInfoSet ATTRIBUTE ::= + { regInfo-utf8Pairs | regInfo-certReq } + + -- + -- 7.1. utf8Pairs RegInfo Control + -- + + regInfo-utf8Pairs ATTRIBUTE ::= + { TYPE UTF8Pairs IDENTIFIED BY id-regInfo-utf8Pairs } + + id-regInfo-utf8Pairs OBJECT IDENTIFIER ::= { id-regInfo 1 } + --with syntax + UTF8Pairs ::= UTF8String + + -- + -- 7.2. certReq RegInfo Control + -- + + regInfo-certReq ATTRIBUTE ::= + { TYPE CertReq IDENTIFIED BY id-regInfo-certReq } + + id-regInfo-certReq OBJECT IDENTIFIER ::= { id-regInfo 2 } + --with syntax + CertReq ::= CertRequest + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/Protected-Part-Descriptors.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Protected-Part-Descriptors.asn1 new file mode 100644 index 0000000000..5512f1590b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Protected-Part-Descriptors.asn1 @@ -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/rfcs/ProtocolObjectIdentifiers.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/ProtocolObjectIdentifiers.asn1 new file mode 100644 index 0000000000..d6e88a2e47 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/ProtocolObjectIdentifiers.asn1 @@ -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/rfcs/Raster-Gr-Coding-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Raster-Gr-Coding-Attributes.asn1 new file mode 100644 index 0000000000..258c5f0b23 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Raster-Gr-Coding-Attributes.asn1 @@ -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/rfcs/Raster-Gr-Presentation-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Raster-Gr-Presentation-Attributes.asn1 new file mode 100644 index 0000000000..c8f3a2ff33 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Raster-Gr-Presentation-Attributes.asn1 @@ -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/rfcs/Raster-Gr-Profile-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Raster-Gr-Profile-Attributes.asn1 new file mode 100644 index 0000000000..365144ff35 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Raster-Gr-Profile-Attributes.asn1 @@ -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/rfcs/Reliable-Transfer-APDU.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Reliable-Transfer-APDU.asn1 new file mode 100644 index 0000000000..d00570b7e7 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Reliable-Transfer-APDU.asn1 @@ -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/rfcs/Remote-Operations-Abstract-Syntaxes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Abstract-Syntaxes.asn1 new file mode 100644 index 0000000000..4a59cc403b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Abstract-Syntaxes.asn1 @@ -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/rfcs/Remote-Operations-Generic-ROS-PDUs.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Generic-ROS-PDUs.asn1 new file mode 100644 index 0000000000..e55ea3c05e --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Generic-ROS-PDUs.asn1 @@ -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/rfcs/Remote-Operations-Information-Objects-extensions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Information-Objects-extensions.asn1 new file mode 100644 index 0000000000..671cf0e780 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Information-Objects-extensions.asn1 @@ -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/rfcs/Remote-Operations-Information-Objects.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Information-Objects.asn1 new file mode 100644 index 0000000000..b497e4126b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Information-Objects.asn1 @@ -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/rfcs/Remote-Operations-Realizations.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Realizations.asn1 new file mode 100644 index 0000000000..73b49c8d7a --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Realizations.asn1 @@ -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/rfcs/Remote-Operations-Useful-Definitions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Useful-Definitions.asn1 new file mode 100644 index 0000000000..e526ff4600 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Remote-Operations-Useful-Definitions.asn1 @@ -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/rfcs/SCVP-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/SCVP-2009.asn1 new file mode 100644 index 0000000000..f74f76ff7c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/SCVP-2009.asn1 @@ -0,0 +1,608 @@ + SCVP-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-scvp-02(52) } + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + Extensions{}, EXTENSION, ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57) } + + AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, PUBLIC-KEY, KEY-AGREE, + DIGEST-ALGORITHM, KEY-DERIVATION, MAC-ALGORITHM + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + Certificate, CertificateList, CertificateSerialNumber, + SignatureAlgorithms, SubjectPublicKeyInfo + FROM PKIX1Explicit-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) } + + GeneralNames, GeneralName, KeyUsage, KeyPurposeId + FROM PKIX1Implicit-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59) } + + AttributeCertificate + FROM PKIXAttributeCertificate-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-attribute-cert-02(47) } + + OCSPResponse + FROM OCSP-2009 + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-ocsp-02(48) } + + ContentInfo, CONTENT-TYPE + FROM CryptographicMessageSyntax-2009 + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cms-2004-02(41) } + + mda-sha1 + FROM PKIXAlgs-2009 + { iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56) } ; + + ContentTypes CONTENT-TYPE ::= {ct-scvp-certValRequest | + ct-scvp-certValResponse | ct-scvp-valPolRequest | + ct-scvp-valPolResponse, ... } + + id-ct OBJECT IDENTIFIER ::= + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) + id-smime(16) 1 } + + ct-scvp-certValRequest CONTENT-TYPE ::= + { CVRequest IDENTIFIED BY id-ct-scvp-certValRequest } + + id-ct-scvp-certValRequest OBJECT IDENTIFIER ::= { id-ct 10 } + + -- SCVP Certificate Validation Request + + CVRequest ::= SEQUENCE { + cvRequestVersion INTEGER DEFAULT 1, + query Query, + requestorRef [0] GeneralNames OPTIONAL, + requestNonce [1] OCTET STRING OPTIONAL, + requestorName [2] GeneralName OPTIONAL, + responderName [3] GeneralName OPTIONAL, + requestExtensions [4] Extensions{{RequestExtensions}} + OPTIONAL, + signatureAlg [5] AlgorithmIdentifier + {SIGNATURE-ALGORITHM, + {SignatureAlgorithms}} + OPTIONAL, + hashAlg [6] OBJECT IDENTIFIER OPTIONAL, + requestorText [7] UTF8String (SIZE (1..256)) OPTIONAL + } + + -- Set of signature algorithms is coming from RFC 5280 + -- SignatureAlgorithms SIGNATURE-ALGORITHM ::= {...} + + -- Add supported request extensions here; all new items should + -- be added after the extension marker + + RequestExtensions EXTENSION ::= {...} + + Query ::= SEQUENCE { + queriedCerts CertReferences, + checks CertChecks, + wantBack [1] WantBack OPTIONAL, + validationPolicy ValidationPolicy, + responseFlags ResponseFlags OPTIONAL, + serverContextInfo [2] OCTET STRING OPTIONAL, + validationTime [3] GeneralizedTime OPTIONAL, + intermediateCerts [4] CertBundle OPTIONAL, + revInfos [5] RevocationInfos OPTIONAL, + producedAt [6] GeneralizedTime OPTIONAL, + queryExtensions [7] Extensions{{QueryExtensions}} OPTIONAL + } + + -- Add supported query extensions here; all new items should be added + -- after the extension marker + + QueryExtensions EXTENSION ::= {...} + + CertReferences ::= CHOICE { + pkcRefs [0] SEQUENCE SIZE (1..MAX) OF PKCReference, + acRefs [1] SEQUENCE SIZE (1..MAX) OF ACReference + } + + CertReference::= CHOICE { + pkc PKCReference, + ac ACReference + } + + PKCReference ::= CHOICE { + cert [0] Certificate, + pkcRef [1] SCVPCertID + } + + ACReference ::= CHOICE { + attrCert [2] AttributeCertificate, + acRef [3] SCVPCertID + } + + HashAlgorithm ::= AlgorithmIdentifier{DIGEST-ALGORITHM, + {mda-sha1, ...}} + + SCVPCertID ::= SEQUENCE { + certHash OCTET STRING, + issuerSerial SCVPIssuerSerial, + hashAlgorithm HashAlgorithm + DEFAULT { algorithm mda-sha1.&id } + } + + SCVPIssuerSerial ::= SEQUENCE { + issuer GeneralNames, + serialNumber CertificateSerialNumber + } + + ValidationPolicy ::= SEQUENCE { + validationPolRef ValidationPolRef, + validationAlg [0] ValidationAlg OPTIONAL, + userPolicySet [1] SEQUENCE SIZE (1..MAX) OF OBJECT + IDENTIFIER OPTIONAL, + inhibitPolicyMapping [2] BOOLEAN OPTIONAL, + requireExplicitPolicy [3] BOOLEAN OPTIONAL, + inhibitAnyPolicy [4] BOOLEAN OPTIONAL, + trustAnchors [5] TrustAnchors OPTIONAL, + keyUsages [6] SEQUENCE OF KeyUsage OPTIONAL, + extendedKeyUsages [7] SEQUENCE OF KeyPurposeId OPTIONAL, + specifiedKeyUsages [8] SEQUENCE OF KeyPurposeId OPTIONAL + } + + CertChecks ::= SEQUENCE SIZE (1..MAX) OF + OBJECT IDENTIFIER (CertCheckSet | ACertCheckSet, ... ) + + WantBack ::= SEQUENCE SIZE (1..MAX) OF + WANT-BACK.&id ({AllWantBacks}) + + POLICY ::= ATTRIBUTE + + ValidationPolRefSet POLICY ::= { + svp-defaultValPolicy, ... + } + + ValidationPolRef ::= SEQUENCE { + valPolId POLICY.&id, + valPolParams POLICY.&Type OPTIONAL + } + + ValidationAlgSet POLICY ::= { + svp-basicValAlg, ... + } + + ValidationAlg ::= SEQUENCE { + valAlgId POLICY.&id, + parameters POLICY.&Type OPTIONAL + } + + NameValidationAlgSet POLICY ::= { + svp-nameValAlg, ... + } + + NameValidationAlgParams ::= SEQUENCE { + nameCompAlgId OBJECT IDENTIFIER (NameCompAlgSet, ... ), + validationNames GeneralNames + } + + TrustAnchors ::= SEQUENCE SIZE (1..MAX) OF PKCReference + KeyAgreePublicKey ::= SEQUENCE { + algorithm AlgorithmIdentifier{KEY-AGREE, + {SupportedKeyAgreePublicKeys}}, + publicKey BIT STRING, + macAlgorithm AlgorithmIdentifier{MAC-ALGORITHM, + {SupportedMACAlgorithms}}, + kDF AlgorithmIdentifier{KEY-DERIVATION, + {SupportedKeyDerivationFunctions}} + OPTIONAL + } + + SupportedKeyAgreePublicKeys KEY-AGREE ::= {...} + SupportedMACAlgorithms MAC-ALGORITHM ::= {...} + SupportedKeyDerivationFunctions KEY-DERIVATION ::= {...} + + ResponseFlags ::= SEQUENCE { + fullRequestInResponse [0] BOOLEAN DEFAULT FALSE, + responseValidationPolByRef [1] BOOLEAN DEFAULT TRUE, + protectResponse [2] BOOLEAN DEFAULT TRUE, + cachedResponse [3] BOOLEAN DEFAULT TRUE + } + + CertBundle ::= SEQUENCE SIZE (1..MAX) OF Certificate + + RevocationInfos ::= SEQUENCE SIZE (1..MAX) OF RevocationInfo + + RevocationInfo ::= CHOICE { + crl [0] CertificateList, + delta-crl [1] CertificateList, + ocsp [2] OCSPResponse, + other [3] OtherRevInfo + } + + REV-INFO ::= TYPE-IDENTIFIER + + OtherRevInfo ::= SEQUENCE { + riType REV-INFO.&id, + riValue REV-INFO.&Type + } + + -- SCVP Certificate Validation Response + + ct-scvp-certValResponse CONTENT-TYPE ::= + { CVResponse IDENTIFIED BY id-ct-scvp-certValResponse } + + id-ct-scvp-certValResponse OBJECT IDENTIFIER ::= { id-ct 11 } + + CVResponse ::= SEQUENCE { + cvResponseVersion INTEGER, + serverConfigurationID INTEGER, + producedAt GeneralizedTime, + responseStatus ResponseStatus, + respValidationPolicy [0] RespValidationPolicy OPTIONAL, + requestRef [1] RequestReference OPTIONAL, + requestorRef [2] GeneralNames OPTIONAL, + requestorName [3] GeneralNames OPTIONAL, + replyObjects [4] ReplyObjects OPTIONAL, + respNonce [5] OCTET STRING OPTIONAL, + serverContextInfo [6] OCTET STRING OPTIONAL, + cvResponseExtensions [7] Extensions{{CVResponseExtensions}} + OPTIONAL, + requestorText [8] UTF8String (SIZE (1..256)) OPTIONAL + } + + -- This document defines no extensions + CVResponseExtensions EXTENSION ::= {...} + + ResponseStatus ::= SEQUENCE { + statusCode CVStatusCode DEFAULT okay, + errorMessage UTF8String OPTIONAL + } + + CVStatusCode ::= ENUMERATED { + okay (0), + skipUnrecognizedItems (1), + tooBusy (10), + invalidRequest (11), + internalError (12), + badStructure (20), + unsupportedVersion (21), + abortUnrecognizedItems (22), + unrecognizedSigKey (23), + badSignatureOrMAC (24), + unableToDecode (25), + notAuthorized (26), + unsupportedChecks (27), + unsupportedWantBacks (28), + unsupportedSignatureOrMAC (29), + invalidSignatureOrMAC (30), + protectedResponseUnsupported (31), + unrecognizedResponderName (32), + relayingLoop (40), + unrecognizedValPol (50), + unrecognizedValAlg (51), + fullRequestInResponseUnsupported (52), + fullPolResponseUnsupported (53), + inhibitPolicyMappingUnsupported (54), + requireExplicitPolicyUnsupported (55), + inhibitAnyPolicyUnsupported (56), + validationTimeUnsupported (57), + unrecognizedCritQueryExt (63), + unrecognizedCritRequestExt (64), + ... + } + + RespValidationPolicy ::= ValidationPolicy + + RequestReference ::= CHOICE { + requestHash [0] HashValue, -- hash of CVRequest + fullRequest [1] CVRequest } + + HashValue ::= SEQUENCE { + algorithm HashAlgorithm + DEFAULT { algorithm mda-sha1.&id }, + value OCTET STRING } + + ReplyObjects ::= SEQUENCE SIZE (1..MAX) OF CertReply + + CertReply ::= SEQUENCE { + cert CertReference, + replyStatus ReplyStatus DEFAULT success, + replyValTime GeneralizedTime, + replyChecks ReplyChecks, + replyWantBacks ReplyWantBacks, + validationErrors [0] SEQUENCE SIZE (1..MAX) OF + OBJECT IDENTIFIER ( BasicValidationErrorSet | + NameValidationErrorSet, + ... ) OPTIONAL, + nextUpdate [1] GeneralizedTime OPTIONAL, + certReplyExtensions [2] Extensions{{...}} OPTIONAL + } + + ReplyStatus ::= ENUMERATED { + success (0), + malformedPKC (1), + malformedAC (2), + unavailableValidationTime (3), + referenceCertHashFail (4), + certPathConstructFail (5), + certPathNotValid (6), + certPathNotValidNow (7), + wantBackUnsatisfied (8) + } + ReplyChecks ::= SEQUENCE OF ReplyCheck + + ReplyCheck ::= SEQUENCE { + check OBJECT IDENTIFIER (CertCheckSet | ACertCheckSet, ... ), + status INTEGER DEFAULT 0 + } + + ReplyWantBacks ::= SEQUENCE OF ReplyWantBack + + ReplyWantBack::= SEQUENCE { + wb WANT-BACK.&id({AllWantBacks}), + value OCTET STRING + (CONTAINING WANT-BACK.&Type({AllWantBacks}{@wb})) + } + + WANT-BACK ::= TYPE-IDENTIFIER + + AllWantBacks WANT-BACK ::= { + WantBackSet | ACertWantBackSet | AnyWantBackSet, ... + } + + CertBundles ::= SEQUENCE SIZE (1..MAX) OF CertBundle + + RevInfoWantBack ::= SEQUENCE { + revocationInfo RevocationInfos, + extraCerts CertBundle OPTIONAL + } + + SCVPResponses ::= SEQUENCE OF ContentInfo + + -- SCVP Validation Policies Request + + ct-scvp-valPolRequest CONTENT-TYPE ::= + { ValPolRequest IDENTIFIED BY id-ct-scvp-valPolRequest } + + id-ct-scvp-valPolRequest OBJECT IDENTIFIER ::= { id-ct 12 } + + ValPolRequest ::= SEQUENCE { + vpRequestVersion INTEGER DEFAULT 1, + requestNonce OCTET STRING + } + + -- SCVP Validation Policies Response + + ct-scvp-valPolResponse CONTENT-TYPE ::= + { ValPolResponse IDENTIFIED BY id-ct-scvp-valPolResponse } + + id-ct-scvp-valPolResponse OBJECT IDENTIFIER ::= { id-ct 13 } + ValPolResponse ::= SEQUENCE { + vpResponseVersion INTEGER, + maxCVRequestVersion INTEGER, + maxVPRequestVersion INTEGER, + serverConfigurationID INTEGER, + thisUpdate GeneralizedTime, + nextUpdate GeneralizedTime OPTIONAL, + supportedChecks CertChecks, + supportedWantBacks WantBack, + validationPolicies SEQUENCE OF OBJECT IDENTIFIER, + validationAlgs SEQUENCE OF OBJECT IDENTIFIER, + authPolicies SEQUENCE OF AuthPolicy, + responseTypes ResponseTypes, + defaultPolicyValues RespValidationPolicy, + revocationInfoTypes RevocationInfoTypes, + signatureGeneration SEQUENCE OF AlgorithmIdentifier + {SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + signatureVerification SEQUENCE OF AlgorithmIdentifier + {SIGNATURE-ALGORITHM, + {SignatureAlgorithms}}, + hashAlgorithms SEQUENCE SIZE (1..MAX) OF + OBJECT IDENTIFIER, + serverPublicKeys SEQUENCE OF KeyAgreePublicKey + OPTIONAL, + clockSkew INTEGER DEFAULT 10, + requestNonce OCTET STRING OPTIONAL + } + + ResponseTypes ::= ENUMERATED { + cached-only (0), + non-cached-only (1), + cached-and-non-cached (2) + } + + RevocationInfoTypes ::= BIT STRING { + fullCRLs (0), + deltaCRLs (1), + indirectCRLs (2), + oCSPResponses (3) + } + + AuthPolicy ::= OBJECT IDENTIFIER + + -- SCVP Check Identifiers + + id-stc OBJECT IDENTIFIER ::= + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) 17 } + + CertCheckSet OBJECT IDENTIFIER ::= { + id-stc-build-pkc-path | id-stc-build-valid-pkc-path | + id-stc-build-status-checked-pkc-path, ... } + + id-stc-build-pkc-path OBJECT IDENTIFIER ::= { id-stc 1 } + id-stc-build-valid-pkc-path OBJECT IDENTIFIER ::= { id-stc 2 } + id-stc-build-status-checked-pkc-path + OBJECT IDENTIFIER ::= { id-stc 3 } + + ACertCheckSet OBJECT IDENTIFIER ::= { + id-stc-build-aa-path | id-stc-build-valid-aa-path | + id-stc-build-status-checked-aa-path | + id-stc-status-check-ac-and-build-status-checked-aa-path + } + + id-stc-build-aa-path OBJECT IDENTIFIER ::= { id-stc 4 } + id-stc-build-valid-aa-path OBJECT IDENTIFIER ::= { id-stc 5 } + id-stc-build-status-checked-aa-path + OBJECT IDENTIFIER ::= { id-stc 6 } + id-stc-status-check-ac-and-build-status-checked-aa-path + OBJECT IDENTIFIER ::= { id-stc 7 } + + -- SCVP WantBack Identifiers + + id-swb OBJECT IDENTIFIER ::= + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) 18 } + + WantBackSet WANT-BACK ::= { + swb-pkc-cert | swb-pkc-best-cert-path | + swb-pkc-revocation-info | swb-pkc-public-key-info | + swb-pkc-all-cert-paths | swb-pkc-ee-revocation-info | + swb-pkc-CAs-revocation-info + } + + ACertWantBackSet WANT-BACK ::= { + swb-ac-cert | swb-aa-cert-path | + swb-aa-revocation-info | swb-ac-revocation-info + } + + AnyWantBackSet WANT-BACK ::= { swb-relayed-responses } + + swb-pkc-best-cert-path WANT-BACK ::= + { CertBundle IDENTIFIED BY id-swb-pkc-best-cert-path } + id-swb-pkc-best-cert-path OBJECT IDENTIFIER ::= { id-swb 1 } + swb-pkc-revocation-info WANT-BACK ::= + { RevInfoWantBack IDENTIFIED BY id-swb-pkc-revocation-info } + id-swb-pkc-revocation-info OBJECT IDENTIFIER ::= { id-swb 2 } + + swb-pkc-public-key-info WANT-BACK ::= + { SubjectPublicKeyInfo IDENTIFIED BY id-swb-pkc-public-key-info } + id-swb-pkc-public-key-info OBJECT IDENTIFIER ::= { id-swb 4 } + + swb-aa-cert-path WANT-BACK ::= + {CertBundle IDENTIFIED BY id-swb-aa-cert-path } + id-swb-aa-cert-path OBJECT IDENTIFIER ::= { id-swb 5 } + + swb-aa-revocation-info WANT-BACK ::= + { RevInfoWantBack IDENTIFIED BY id-swb-aa-revocation-info } + id-swb-aa-revocation-info OBJECT IDENTIFIER ::= { id-swb 6 } + + swb-ac-revocation-info WANT-BACK ::= + { RevInfoWantBack IDENTIFIED BY id-swb-ac-revocation-info } + id-swb-ac-revocation-info OBJECT IDENTIFIER ::= { id-swb 7 } + + swb-relayed-responses WANT-BACK ::= + {SCVPResponses IDENTIFIED BY id-swb-relayed-responses } + + id-swb-relayed-responses OBJECT IDENTIFIER ::= { id-swb 9 } + + swb-pkc-all-cert-paths WANT-BACK ::= + {CertBundles IDENTIFIED BY id-swb-pkc-all-cert-paths } + id-swb-pkc-all-cert-paths OBJECT IDENTIFIER ::= { id-swb 12} + + swb-pkc-ee-revocation-info WANT-BACK ::= + { RevInfoWantBack IDENTIFIED BY id-swb-pkc-ee-revocation-info } + id-swb-pkc-ee-revocation-info OBJECT IDENTIFIER ::= { id-swb 13} + + swb-pkc-CAs-revocation-info WANT-BACK ::= + { RevInfoWantBack IDENTIFIED BY id-swb-pkc-CAs-revocation-info } + id-swb-pkc-CAs-revocation-info OBJECT IDENTIFIER ::= { id-swb 14} + + swb-pkc-cert WANT-BACK ::= + { Certificate IDENTIFIED BY id-swb-pkc-cert } + id-swb-pkc-cert OBJECT IDENTIFIER ::= { id-swb 10} + + swb-ac-cert WANT-BACK ::= + { AttributeCertificate IDENTIFIED BY id-swb-ac-cert } + id-swb-ac-cert OBJECT IDENTIFIER ::= { id-swb 11} + + -- SCVP Validation Policy and Algorithm Identifiers + + id-svp OBJECT IDENTIFIER ::= + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) 19 } + + svp-defaultValPolicy POLICY ::= + { IDENTIFIED BY id-svp-defaultValPolicy } + + id-svp-defaultValPolicy OBJECT IDENTIFIER ::= { id-svp 1 } + + -- SCVP Basic Validation Algorithm Identifier + + svp-basicValAlg POLICY ::= {IDENTIFIED BY id-svp-basicValAlg } + + id-svp-basicValAlg OBJECT IDENTIFIER ::= { id-svp 3 } + + -- SCVP Basic Validation Algorithm Errors + + id-bvae OBJECT IDENTIFIER ::= id-svp-basicValAlg + + BasicValidationErrorSet OBJECT IDENTIFIER ::= { + id-bvae-expired | id-bvae-not-yet-valid | + id-bvae-wrongTrustAnchor | id-bvae-noValidCertPath | + id-bvae-revoked | id-bvae-invalidKeyPurpose | + id-bvae-invalidKeyUsage | id-bvae-invalidCertPolicy + } + + id-bvae-expired OBJECT IDENTIFIER ::= { id-bvae 1 } + id-bvae-not-yet-valid OBJECT IDENTIFIER ::= { id-bvae 2 } + id-bvae-wrongTrustAnchor OBJECT IDENTIFIER ::= { id-bvae 3 } + id-bvae-noValidCertPath OBJECT IDENTIFIER ::= { id-bvae 4 } + id-bvae-revoked OBJECT IDENTIFIER ::= { id-bvae 5 } + id-bvae-invalidKeyPurpose OBJECT IDENTIFIER ::= { id-bvae 9 } + id-bvae-invalidKeyUsage OBJECT IDENTIFIER ::= { id-bvae 10 } + id-bvae-invalidCertPolicy OBJECT IDENTIFIER ::= { id-bvae 11 } + + -- SCVP Name Validation Algorithm Identifier + + svp-nameValAlg POLICY ::= + {TYPE NameValidationAlgParams IDENTIFIED BY id-svp-nameValAlg } + + id-svp-nameValAlg OBJECT IDENTIFIER ::= { id-svp 2 } + + -- SCVP Name Validation Algorithm DN comparison algorithm + + NameCompAlgSet OBJECT IDENTIFIER ::= { + id-nva-dnCompAlg + } + + id-nva-dnCompAlg OBJECT IDENTIFIER ::= { id-svp 4 } + -- SCVP Name Validation Algorithm Errors + + id-nvae OBJECT IDENTIFIER ::= id-svp-nameValAlg + + NameValidationErrorSet OBJECT IDENTIFIER ::= { + id-nvae-name-mismatch | id-nvae-no-name | id-nvae-unknown-alg | + id-nvae-bad-name | id-nvae-bad-name-type | id-nvae-mixed-names + } + + id-nvae-name-mismatch OBJECT IDENTIFIER ::= { id-nvae 1 } + id-nvae-no-name OBJECT IDENTIFIER ::= { id-nvae 2 } + id-nvae-unknown-alg OBJECT IDENTIFIER ::= { id-nvae 3 } + id-nvae-bad-name OBJECT IDENTIFIER ::= { id-nvae 4 } + id-nvae-bad-name-type OBJECT IDENTIFIER ::= { id-nvae 5 } + id-nvae-mixed-names OBJECT IDENTIFIER ::= { id-nvae 6 } + + -- SCVP Extended Key Usage Key Purpose Identifiers + + id-kp OBJECT IDENTIFIER ::= + { iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) 3 } + + SvcpExtKeyUsageSet OBJECT IDENTIFIER ::= { + id-kp-scvpServer | id-kp-scvpClient + } + + id-kp-scvpServer OBJECT IDENTIFIER ::= { id-kp 15 } + + id-kp-scvpClient OBJECT IDENTIFIER ::= { id-kp 16 } + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/SecureMimeMessageV3dot1-2009.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/SecureMimeMessageV3dot1-2009.asn1 new file mode 100644 index 0000000000..2bd2aaa435 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/SecureMimeMessageV3dot1-2009.asn1 @@ -0,0 +1,122 @@ + SecureMimeMessageV3dot1-2009 + {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-msg-v3dot1-02(39)} + DEFINITIONS IMPLICIT TAGS ::= + BEGIN + IMPORTS + + SMIME-CAPS, SMIMECapabilities{} + FROM AlgorithmInformation-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-algorithmInformation-02(58)} + + ATTRIBUTE + FROM PKIX-CommonTypes-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} + + SubjectKeyIdentifier, IssuerAndSerialNumber, RecipientKeyIdentifier + FROM CryptographicMessageSyntax-2009 + {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cms-2004-02(41)} + + rc2-cbc, SMimeCaps + FROM CryptographicMessageSyntaxAlgorithms-2009 + {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) modules(0) id-mod-cmsalg-2001-02(37)} + + SMimeCaps + FROM PKIXAlgs-2009 + {iso(1) identified-organization(3) dod(6) internet(1) security(5) + mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-algorithms2008-02(56)} + + SMimeCaps + FROM PKIX1-PSS-OAEP-Algorithms-2009 + {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) + id-mod-pkix1-rsa-pkalgs-02(54)}; + + SMimeAttributeSet ATTRIBUTE ::= + { aa-smimeCapabilities | aa-encrypKeyPref, ... } + + -- id-aa is the arc with all new authenticated and unauthenticated + -- attributes produced by the S/MIME Working Group + + id-aa OBJECT IDENTIFIER ::= + { iso(1) member-body(2) usa(840) rsadsi(113549) pkcs(1) pkcs-9(9) + smime(16) attributes(2)} + + -- The S/MIME Capabilities attribute provides a method of broadcasting + -- the symmetric capabilities understood. Algorithms SHOULD be ordered + -- by preference and grouped by type + + aa-smimeCapabilities ATTRIBUTE ::= + { TYPE SMIMECapabilities{{SMimeCapsSet}} IDENTIFIED BY + smimeCapabilities } + smimeCapabilities OBJECT IDENTIFIER ::= + { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + 15 } + + SMimeCapsSet SMIME-CAPS ::= + { cap-preferBinaryInside | cap-RC2CBC | + PKIXAlgs-2009.SMimeCaps | + CryptographicMessageSyntaxAlgorithms-2009.SMimeCaps | + PKIX1-PSS-OAEP-Algorithms-2009.SMimeCaps, ... } + + -- Encryption Key Preference provides a method of broadcasting the + -- preferred encryption certificate. + + aa-encrypKeyPref ATTRIBUTE ::= + { TYPE SMIMEEncryptionKeyPreference + IDENTIFIED BY id-aa-encrypKeyPref } + + id-aa-encrypKeyPref OBJECT IDENTIFIER ::= {id-aa 11} + + SMIMEEncryptionKeyPreference ::= CHOICE { + issuerAndSerialNumber [0] IssuerAndSerialNumber, + receipentKeyId [1] RecipientKeyIdentifier, + subjectAltKeyIdentifier [2] SubjectKeyIdentifier + } + + -- receipentKeyId is spelt incorrectly, but kept for historical + -- reasons. + + id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs9(9) 16 } + + id-cap OBJECT IDENTIFIER ::= { id-smime 11 } + + -- The preferBinaryInside indicates an ability to receive messages + -- with binary encoding inside the CMS wrapper + + cap-preferBinaryInside SMIME-CAPS ::= + { -- No value -- IDENTIFIED BY id-cap-preferBinaryInside } + + id-cap-preferBinaryInside OBJECT IDENTIFIER ::= { id-cap 1 } + + -- The following list OIDs to be used with S/MIME V3 + + -- Signature Algorithms Not Found in [RFC3370] + -- + -- md2WithRSAEncryption OBJECT IDENTIFIER ::= + -- {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) + -- 2} + -- + -- Other Signed Attributes + -- + -- signingTime OBJECT IDENTIFIER ::= + -- {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) + -- 5} + -- See [RFC5652] for a description of how to encode the attribute + -- value. + + cap-RC2CBC SMIME-CAPS ::= + { TYPE SMIMECapabilitiesParametersForRC2CBC + IDENTIFIED BY rc2-cbc} + + SMIMECapabilitiesParametersForRC2CBC ::= INTEGER (40 | 128, ...) + -- (RC2 Key Length (number of bits)) + + END diff --git a/lib/asn1/test/asn1_SUITE_data/rfcs/SelectedAttributeTypes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/SelectedAttributeTypes.asn1 new file mode 100644 index 0000000000..07bba30690 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/SelectedAttributeTypes.asn1 @@ -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/rfcs/SeseAPDUs.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/SeseAPDUs.asn1 new file mode 100644 index 0000000000..2917122e94 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/SeseAPDUs.asn1 @@ -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/rfcs/SpkmGssTokens.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/SpkmGssTokens.asn1 new file mode 100644 index 0000000000..02205bd64c --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/SpkmGssTokens.asn1 @@ -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/rfcs/Style-Descriptors.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Style-Descriptors.asn1 new file mode 100644 index 0000000000..8f033eab6f --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Style-Descriptors.asn1 @@ -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/rfcs/Subprofiles.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Subprofiles.asn1 new file mode 100644 index 0000000000..bfcd0b5dbc --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Subprofiles.asn1 @@ -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/rfcs/Temporal-Relationships.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Temporal-Relationships.asn1 new file mode 100644 index 0000000000..9633995e3b --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Temporal-Relationships.asn1 @@ -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/rfcs/Text-Units.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Text-Units.asn1 new file mode 100644 index 0000000000..ccc64a52f5 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Text-Units.asn1 @@ -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/rfcs/UpperBounds.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/UpperBounds.asn1 new file mode 100644 index 0000000000..c97c83a569 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/UpperBounds.asn1 @@ -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/rfcs/UsefulDefinitions.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/UsefulDefinitions.asn1 new file mode 100644 index 0000000000..d9601bb7d0 --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/UsefulDefinitions.asn1 @@ -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/rfcs/Videotex-Coding-Attributes.asn1 b/lib/asn1/test/asn1_SUITE_data/rfcs/Videotex-Coding-Attributes.asn1 new file mode 100644 index 0000000000..18e51cbc0d --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/rfcs/Videotex-Coding-Attributes.asn1 @@ -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 + |