aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/x509if
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-19 08:57:29 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-19 08:57:29 +0000
commit4f82d639f957f7badff9371be501e063f43d0628 (patch)
tree882e0eadbe11ac050e11230da0886e96960343a2 /asn1/x509if
parente06409d0838068bbcd1dff0a9e6f218630ab4075 (diff)
Work in progress
New protocol X.509 Information framework this new protocol is not yet linked with ethereal and needs extra massage before it can be used. svn path=/trunk/; revision=11430
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
+