aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/x509if
diff options
context:
space:
mode:
Diffstat (limited to 'asn1/x509if')
-rw-r--r--asn1/x509if/InformationFramework.asn872
-rw-r--r--asn1/x509if/packet-x509if-template.c96
-rw-r--r--asn1/x509if/packet-x509if-template.h33
-rw-r--r--asn1/x509if/x509if.cnf21
-rw-r--r--asn1/x509if/x509if_exp.cnf7
5 files changed, 1029 insertions, 0 deletions
diff --git a/asn1/x509if/InformationFramework.asn b/asn1/x509if/InformationFramework.asn
new file mode 100644
index 0000000000..bc6c537725
--- /dev/null
+++ b/asn1/x509if/InformationFramework.asn
@@ -0,0 +1,872 @@
+-- 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;
+
+AttributeId ::= OBJECT IDENTIFIER
+
+-- attribute data types
+-- Attribute ::= SEQUENCE {
+-- type AttributeId,
+-- 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 ::= AttributeId
+
+-- 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 AttributeId,
+-- 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 AttributeId,
+-- 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 {
+ rdnSequence RDNSequence
+}
+
+RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+DistinguishedName ::= RDNSequence
+
+RelativeDistinguishedName ::=
+ SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
+
+AttributeTypeAndDistinguishedValue ::= SEQUENCE {
+-- type AttributeId,
+-- 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 {
+-- either &Type or &derivation required
+-- &derivation ATTRIBUTE OPTIONAL,
+-- &Type OPTIONAL,
+-- &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 AttributeId 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 AttributeId OPTIONAL,
+-- optional [2] SET SIZE (1..MAX) OF AttributeId OPTIONAL,
+-- precluded [3] SET SIZE (1..MAX) OF AttributeId OPTIONAL
+-- }
+--
+-- CONTEXT ::= CLASS {
+-- &Type ,
+-- &Assertion OPTIONAL,
+-- &id OBJECT IDENTIFIER UNIQUE
+-- }WITH SYNTAX {WITH SYNTAX &Type
+-- [ASSERTED AS &Assertion]
+-- ID &id
+-- }
+--
+-- DITContextUse ::= SEQUENCE {
+-- attributeType AttributeId,
+-- 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 AttributeId 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 AttributeId,
+-- 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 AttributeId,
+-- 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 AttributeId,
+-- &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 AttributeId,
+-- &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/asn1/x509if/packet-x509if-template.c b/asn1/x509if/packet-x509if-template.c
new file mode 100644
index 0000000000..03921bba51
--- /dev/null
+++ b/asn1/x509if/packet-x509if-template.c
@@ -0,0 +1,96 @@
+/* packet-x509if.c
+ * Routines for X.509 Information Framework packet dissection
+ *
+ * $Id: packet-x509if-template.c,v 1.2 2004/05/25 21:07:43 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-ber.h"
+#include "packet-x509if.h"
+
+#define PNAME "X.509 Information Framework"
+#define PSNAME "X509IF"
+#define PFNAME "x509if"
+
+/* Initialize the protocol and registered fields */
+int proto_x509if = -1;
+#include "packet-x509if-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_x509if_Attribute = -1;
+#include "packet-x509if-ett.c"
+
+static ber_sequence Attribute_sequence[] = {
+ /* { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_hf_x509if_type },*/
+ /*XXX missing stuff here */
+ { 0, 0, 0, NULL }
+};
+
+int
+dissect_x509if_Attribute(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ Attribute_sequence, hf_index, ett_x509if_Attribute);
+
+ return offset;
+}
+
+
+#include "packet-x509if-fn.c"
+
+
+/*--- proto_register_x509if ----------------------------------------------*/
+void proto_register_x509if(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-x509if-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_x509if_Attribute,
+#include "packet-x509if-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_x509if = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x509if, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_x509if -------------------------------------------*/
+void proto_reg_handoff_x509if(void) {
+}
+
diff --git a/asn1/x509if/packet-x509if-template.h b/asn1/x509if/packet-x509if-template.h
new file mode 100644
index 0000000000..3ec1866b2a
--- /dev/null
+++ b/asn1/x509if/packet-x509if-template.h
@@ -0,0 +1,33 @@
+/* packet-x509if.h
+ * Routines for X.509 Information Framework packet dissection
+ *
+ * $Id: packet-x509if-template.h,v 1.1 2004/05/24 08:42:29 sahlberg Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_X509IF_H
+#define PACKET_X509IF_H
+
+#include "packet-x509if-exp.h"
+
+int dissect_x509if_Attribute(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+
+#endif /* PACKET_X509IF_H */
+
diff --git a/asn1/x509if/x509if.cnf b/asn1/x509if/x509if.cnf
new file mode 100644
index 0000000000..440477a16b
--- /dev/null
+++ b/asn1/x509if/x509if.cnf
@@ -0,0 +1,21 @@
+# x509if.cnf
+# X509IF conformation file
+
+# $Id: x509if.cnf,v 1.2 2004/06/03 08:35:44 guy Exp $
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+AttributeType
+Name
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
+
diff --git a/asn1/x509if/x509if_exp.cnf b/asn1/x509if/x509if_exp.cnf
new file mode 100644
index 0000000000..48e3a81777
--- /dev/null
+++ b/asn1/x509if/x509if_exp.cnf
@@ -0,0 +1,7 @@
+
+#.IMPORT_TAG
+GeneralNames BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+Name BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING
+Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+