diff options
Diffstat (limited to 'lib/asn1/test/asn1_SUITE_data/rfcs/Notation.asn1')
-rw-r--r-- | lib/asn1/test/asn1_SUITE_data/rfcs/Notation.asn1 | 244 |
1 files changed, 244 insertions, 0 deletions
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: +-- |