From Grame Lunt:

updated X.500 dissectors to include DOP support.

The "dop" dissector is the renamed "x501" dissector consequently the asn/x501 directory should be removed. The patch includes the changes to epan/dissectors/Makefile.common to reflect this.

As the DOP dissection is not fully tested, I have disabled it by default for now (like DSP) but it can be enabled by the user.


svn path=/trunk/; revision=16726
This commit is contained in:
Anders Broman 2005-12-07 23:20:11 +00:00
parent 55d5c5cc66
commit fa92d58b40
23 changed files with 1373 additions and 344 deletions

View File

@ -8,6 +8,7 @@ all: \
cmip \
cms \
dap \
dop \
disp \
dsp \
ess \
@ -62,6 +63,7 @@ ber: \
cmip \
cms \
dap \
dop \
disp \
dsp \
ess \
@ -135,7 +137,11 @@ cms::
cd..
dap::
cd cms
cd dap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake copy_files
cd..
dop::
cd dop
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake copy_files
cd..

42
asn1/dap/Makefile.nmake Normal file
View File

@ -0,0 +1,42 @@
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id$
include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=dap
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2eth.py dap.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template dap.asn
!ELSE
@echo Error: You need Python to use asn2eth.py
@exit 1
!ENDIF
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
# Fix EOL in generated dissectors. Cygwin's python generates files with
# mixed EOL styles, which can't be commited to the SVN repository.
# Stuff included from template and "cnf" files has "\r\n" on windows, while
# the generated stuff has "\n".
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y

View File

@ -48,7 +48,6 @@
#include "packet-dap.h"
#include <epan/strutil.h>
/* we don't have a separate dissector for X519 -
most of DAP is defined in X511 */
#define PNAME "X.519 Directory Access Protocol"
@ -294,7 +293,11 @@ void proto_register_dap(void) {
/* Register our configuration options for DAP, particularly our port */
#ifdef PREFERENCE_GROUPING
dap_module = prefs_register_protocol_subtree("OSI/X.500", proto_dap, prefs_register_dap);
#else
dap_module = prefs_register_protocol(proto_dap, prefs_register_dap);
#endif
prefs_register_uint_preference(dap_module, "tcp.port", "DAP TCP Port",
"Set the port for DAP operations (if other"

42
asn1/disp/Makefile.nmake Normal file
View File

@ -0,0 +1,42 @@
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id$
include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=disp
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2eth.py disp.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template disp.asn
!ELSE
@echo Error: You need Python to use asn2eth.py
@exit 1
!ENDIF
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
# Fix EOL in generated dissectors. Cygwin's python generates files with
# mixed EOL styles, which can't be commited to the SVN repository.
# Stuff included from template and "cnf" files has "\r\n" on windows, while
# the generated stuff has "\n".
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y

View File

@ -93,6 +93,9 @@ dSAShadowUnbind OPERATION ::= directoryUnbind
--}
-- types
EstablishParameter ::= NULL
ModificationParameter ::= SEQUENCE {
secondaryShadows SET OF SupplierAndConsumers
}

View File

@ -7,14 +7,14 @@ AuthenticationFramework x509af
ACSE-1 acse
DirectoryAbstractService dap
DistributedOperations dsp
DSAOperationalAttributeTypes x501
DSAOperationalAttributeTypes dop
OperationalBindingManagement dap
#.INCLUDE ../x501/x501-exp.cnf
#.INCLUDE ../x509if/x509if-exp.cnf
#.INCLUDE ../x509af/x509af-exp.cnf
#.INCLUDE ../dap/dap-exp.cnf
#.INCLUDE ../dsp/dsp-exp.cnf
#.INCLUDE ../dop/dop-exp.cnf
#.INCLUDE ../acse/acse-exp.cnf
#.TYPE_RENAME
@ -27,6 +27,21 @@ ModificationParameter/secondaryShadows modifiedSecondaryShadows
CoordinateShadowUpdateArgumentData/updateStrategy/standard standardUpdate
Information/signedInformation/information information-data
#.REGISTER
ShadowingAgreementInfo B "dop.agreement.2.5.19.1" "shadow-agreement"
EstablishParameter B "dop.establish.rolea.2.5.19.1" "shadow-establish-rolea"
EstablishParameter B "dop.establish.roleb.2.5.19.1" "shadow-establish-roleb"
ModificationParameter B "dop.modify.rolea.2.5.19.1" "shadow-modify-rolea"
ModificationParameter B "dop.modify.roleb.2.5.19.1" "shadow-modify-roleb"
# these are useful to Thales DOP
ShadowingAgreementInfo B "dop.agreement.2.5.1.0.2.1" "shadow-agreement"
EstablishParameter B "dop.establish.rolea.2.5.1.0.2.1" "shadow-establish-rolea"
EstablishParameter B "dop.establish.roleb.2.5.1.0.2.1" "shadow-establish-roleb"
ModificationParameter B "dop.modify.rolea.2.5.1.0.2.1" "shadow-modify-rolea"
ModificationParameter B "dop.modify.roleb.2.5.1.0.2.1" "shadow-modify-roleb"
#.FN_PARS T_standard
VAL_PTR = &update

View File

@ -45,7 +45,7 @@
#include "packet-x509sat.h"
#include "packet-crmf.h"
#include "packet-x501.h"
#include "packet-dop.h"
#include "packet-dap.h"
#include "packet-dsp.h"
#include "packet-disp.h"
@ -221,7 +221,11 @@ void proto_register_disp(void) {
/* Register our configuration options for DISP, particularly our port */
#ifdef PREFERENCE_GROUPING
disp_module = prefs_register_protocol_subtree("OSI/X.500", proto_disp, prefs_register_disp);
#else
disp_module = prefs_register_protocol(proto_disp, prefs_register_disp);
#endif
prefs_register_uint_preference(disp_module, "tcp.port", "DISP TCP Port",
"Set the port for DISP operations (if other"
@ -235,7 +239,7 @@ void proto_register_disp(void) {
void proto_reg_handoff_disp(void) {
dissector_handle_t handle = NULL;
/* #include "packet-disp-dis-tab.c" */
#include "packet-disp-dis-tab.c"
/* APPLICATION CONTEXT */
@ -254,6 +258,9 @@ void proto_reg_handoff_disp(void) {
register_rtse_oid_dissector_handle("2.5.9.6", handle, 0, "id-as-directory-reliable-binding", FALSE);
}
/* OPERATIONAL BINDING */
register_ber_oid_name("2.5.1.0.5.1", "id-op-binding-shadow");
tpkt_handle = find_dissector("tpkt");
}

19
asn1/dop/Makefile Normal file
View File

@ -0,0 +1,19 @@
# $Id$
DISSECTOR_FILES=packet-dop.c packet-dop.h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
ASN_EXPORTS=
$(DISSECTOR_FILES): ../../tools/asn2eth.py dop.asn packet-dop-template.c packet-dop-template.h dop.cnf $(ASN_EXPORTS)
python ../../tools/asn2eth.py -X -b -e -p dop -c dop.cnf -s packet-dop-template dop.asn
clean:
rm -f parsetab.py $(DISSECTOR_FILES) *~
copy_files: generate_dissector
cp $(DISSECTOR_FILES) ../../epan/dissectors

42
asn1/dop/Makefile.nmake Normal file
View File

@ -0,0 +1,42 @@
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id$
include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=dop
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2eth.py dop.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template dop.asn
!ELSE
@echo Error: You need Python to use asn2eth.py
@exit 1
!ENDIF
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
# Fix EOL in generated dissectors. Cygwin's python generates files with
# mixed EOL styles, which can't be commited to the SVN repository.
# Stuff included from template and "cnf" files has "\r\n" on windows, while
# the generated stuff has "\n".
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y

691
asn1/dop/dop.asn Normal file
View File

@ -0,0 +1,691 @@
-- Module DSAOperationalAttributeTypes (X.501:02/2001)
DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
dsaOperationalAttributeTypes(22) 4} 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
-- from ITU-T Rec. X.501 | ISO/IEC 9594-2
distributedOperations, id-doa, id-kmr, informationFramework,
opBindingManagement, selectedAttributeTypes, upperBounds
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
usefulDefinitions(0) 4}
ATTRIBUTE, MATCHING-RULE, Name, Attribute, DistinguishedName,
RelativeDistinguishedName
FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
informationFramework(1) 4}
-- OperationalBindingID
-- FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
-- opBindingManagement(18) 4}
-- from ITU-T Rec. X.518 | ISO/IEC 9594-4
AccessPoint, MasterAndShadowAccessPoints
FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
distributedOperations(3) 4}
-- from ITU-T Rec. X.520 | ISO/IEC 9594-6
bitStringMatch
FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
selectedAttributeTypes(5) 4}
PresentationAddress, ProtocolInformation
FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
selectedAttributeTypes(5) 4}
DirectoryBindArgument, DirectoryBindError, SecurityParameters
FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
directoryAbstractService(2) 5}
-- from ITU-T Rec. X.509 | ISO/IEC 9594-8
AlgorithmIdentifier
FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1)
authenticationFramework(7) 4};
-- 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
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
agreementID [3] OperationalBindingID
}
SupplierInformation ::= SET {
-- COMPONENTS OF SupplierOrConsumer, - - supplier
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
agreementID [3] OperationalBindingID,
supplier-is-master [4] BOOLEAN DEFAULT TRUE,
non-supplying-master [5] AccessPoint OPTIONAL
}
ConsumerInformation ::= SupplierOrConsumer -- consumer
SupplierAndConsumers ::= SET {
-- COMPONENTS OF AccessPoint, - - supplier
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
consumers [3] 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
-- we include this here to reduce the number of dissectors
-- Module OperationalBindingManagement (X.501:08/2005)
--OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
-- opBindingManagement(18) 5} 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
-- from ITU-T Rec. X.501 | ISO/IEC 9594-2
-- directoryAbstractService, directoryShadowAbstractService,
-- distributedOperations, directoryOSIProtocols, enhancedSecurity,
-- hierarchicalOperationalBindings, commonProtocolSpecification
-- FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
-- usefulDefinitions(0) 5}
-- OPTIONALLY-PROTECTED-SEQ
-- FROM EnhancedSecurity {joint-iso-itu-t ds(5) modules(1)
-- enhancedSecurity(28) 5}
-- hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding
-- FROM HierarchicalOperationalBindings hierarchicalOperationalBindings
-- from ITU-T Rec. X.511 | ISO/IEC 9594-3
-- CommonResultsSeq, directoryBind, directoryUnbind, securityError,
-- SecurityParameters
-- FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
-- directoryAbstractService(2) 5}
-- from ITU-T Rec. X.518 | ISO/IEC 9594-4
-- AccessPoint
-- FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
-- distributedOperations(3) 5}
-- from ITU-T Rec. X.519 | ISO/IEC 9594-5
-- id-err-operationalBindingError, id-op-establishOperationalBinding,
-- id-op-modifyOperationalBinding, id-op-terminateOperationalBinding,
-- OPERATION, ERROR
-- FROM CommonProtocolSpecification commonProtocolSpecification
-- APPLICATION-CONTEXT
-- FROM DirectoryOSIProtocols directoryOSIProtocols
-- from ITU-T Rec. X.525 | ISO/IEC 9594-9
-- shadowOperationalBinding
-- FROM DirectoryShadowAbstractService directoryShadowAbstractService;
-- bind and unbind
dSAOperationalBindingManagementBind OPERATION ::=
directoryBind
DSAOperationalManagementBindArgument ::= DirectoryBindArgument
DSAOperationalManagementBindResult ::= DirectoryBindArgument
DSAOperationalManagementBindError ::= DirectoryBindError
dSAOperationalBindingManagementUnbind OPERATION ::= directoryUnbind
-- operations, arguments and results
--establishOperationalBinding OPERATION ::= {
-- ARGUMENT EstablishOperationalBindingArgument
-- RESULT EstablishOperationalBindingResult
-- ERRORS {operationalBindingError | securityError}
-- CODE id-op-establishOperationalBinding
--}
EstablishOperationalBindingArgumentData ::=
-- OPTIONALLY-PROTECTED-SEQ
-- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet}) -- OBJECT IDENTIFIER,
-- The following line, whilst wrong, helps with Thales DOP dissection
-- bindingID [1] IMPLICIT OperationalBindingID OPTIONAL,
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}) -- ANY,
roleA-initiates
[4] -- OPERATIONAL-BINDING.&roleA.&EstablishParam
-- ({OpBindingSet}{@bindingType}) -- ANY,
roleB-initiates
[5] -- OPERATIONAL-BINDING.&roleB.&EstablishParam
-- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
agreement
[6] -- OPERATIONAL-BINDING.&Agreement
-- ({OpBindingSet}{@bindingType}) -- ANY,
valid [7] Validity DEFAULT {},
securityParameters [8] SecurityParameters OPTIONAL} --}
-- expand OPTIONALLY-PROTECTED macro
EstablishOperationalBindingArgument ::= CHOICE {
unsignedEstablishOperationalBindingArgument EstablishOperationalBindingArgumentData,
signedEstablishOperationalBindingArgument SEQUENCE {
establishOperationalBindingArgument EstablishOperationalBindingArgumentData,
algorithmIdentifier AlgorithmIdentifier,
encrypted BIT STRING
}
}
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}) -- OBJECT IDENTIFIER,
-- The following line, whilst wrong, helps with Thales DOP dissection
-- bindingID [1] IMPLICIT OperationalBindingID OPTIONAL,
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}) -- ANY,
roleA-replies
[4] -- OPERATIONAL-BINDING.&roleA.&EstablishParam
-- ({OpBindingSet}{@bindingType}) -- ANY,
roleB-replies
[5] -- OPERATIONAL-BINDING.&roleB.&EstablishParam
-- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
-- COMPONENTS OF CommonResultsSeq}}
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL}
--modifyOperationalBinding OPERATION ::= {
-- ARGUMENT ModifyOperationalBindingArgument
-- RESULT ModifyOperationalBindingResult
-- ERRORS {operationalBindingError | securityError}
-- CODE id-op-modifyOperationalBinding
--}
ModifyOperationalBindingArgumentData ::=
-- OPTIONALLY-PROTECTED-SEQ
-- {--SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet})-- OBJECT IDENTIFIER,
-- The following line, whilst wrong, helps with Thales DOP dissection
-- bindingID [1] IMPLICIT OperationalBindingID,
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}) -- ANY,
roleA-initiates
[4] -- OPERATIONAL-BINDING.&roleA.&ModifyParam
-- ({OpBindingSet}{@bindingType}) -- ANY,
roleB-initiates
[5] -- OPERATIONAL-BINDING.&roleB.&ModifyParam
-- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
newBindingID [6] OperationalBindingID,
newAgreement
[7] -- OPERATIONAL-BINDING.&Agreement
-- ({OpBindingSet}{@bindingType}) -- ANY OPTIONAL,
valid [8] Validity OPTIONAL,
securityParameters [9] SecurityParameters OPTIONAL} -- }
ModifyOperationalBindingArgument ::= CHOICE {
unsignedModifyOperationalBindingArgument ModifyOperationalBindingArgumentData,
signedModifyOperationalBindingArgument SEQUENCE {
modifyOperationalBindingArgument ModifyOperationalBindingArgumentData,
algorithmIdentifier AlgorithmIdentifier,
encrypted BIT STRING
}
}
ModifyOperationalBindingResult ::= CHOICE {
null [0] NULL,
protected [1] SEQUENCE {
modifyOperationalBindingResultData ModifyOperationalBindingResultData,
algorithmIdentifier AlgorithmIdentifier,
encrypted BIT STRING
}
}
ModifyOperationalBindingResultData ::= SEQUENCE {
newBindingID OperationalBindingID,
bindingType
-- OPERATIONAL-BINDING.&id
-- ({OpBindingSet}) -- OBJECT IDENTIFIER,
newAgreement
-- OPERATIONAL-BINDING.&Agreement
-- ({OpBindingSet}{@.bindingType}) -- ANY,
valid Validity OPTIONAL,
--COMPONENTS OF CommonResultsSeq
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
-- }}
}
--terminateOperationalBinding OPERATION ::= {
-- ARGUMENT TerminateOperationalBindingArgument
-- RESULT TerminateOperationalBindingResult
-- ERRORS {operationalBindingError | securityError}
-- CODE id-op-terminateOperationalBinding
--}
TerminateOperationalBindingArgumentData ::=
-- OPTIONALLY-PROTECTED-SEQ
-- {-- SEQUENCE {bindingType [0] --OPERATIONAL-BINDING.&id({OpBindingSet})-- OBJECT IDENTIFIER,
-- The following line, whilst wrong, helps with Thales DOP dissection
-- bindingID [1] IMPLICIT OperationalBindingID,
bindingID [1] OperationalBindingID,
-- symmetric, Role A initiates, or Role B initiates
initiator
CHOICE {symmetric
[2] -- OPERATIONAL-BINDING.&both.&TerminateParam
-- ({OpBindingSet}{@bindingType}) -- ANY,
roleA-initiates
[3] -- OPERATIONAL-BINDING.&roleA.&TerminateParam
-- ({OpBindingSet}{@bindingType}) -- ANY,
roleB-initiates
[4] -- OPERATIONAL-BINDING.&roleB.&TerminateParam
-- ({OpBindingSet}{@bindingType}) -- ANY } OPTIONAL,
terminateAt [5] Time OPTIONAL,
securityParameters [6] SecurityParameters OPTIONAL} --}
TerminateOperationalBindingArgument ::= CHOICE {
unsignedTerminateOperationalBindingArgument TerminateOperationalBindingArgumentData,
signedTerminateOperationalBindingArgument SEQUENCE {
terminateOperationalBindingArgument TerminateOperationalBindingArgumentData,
algorithmIdentifier AlgorithmIdentifier,
encrypted BIT STRING
}
}
TerminateOperationalBindingResult ::= CHOICE {
null [0] NULL,
protected [1] SEQUENCE {
terminateOperationalBindingResultData TerminateOperationalBindingResultData,
algorithmIdentifier AlgorithmIdentifier,
encrypted BIT STRING
}
}
TerminateOperationalBindingResultData ::= SEQUENCE {
bindingID OperationalBindingID,
bindingType
-- OPERATIONAL-BINDING.&id
-- ({OpBindingSet}) -- OBJECT IDENTIFIER,
terminateAt GeneralizedTime OPTIONAL,
--COMPONENTS OF CommonResultsSeq
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
-- }}
}
-- 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})-- OBJECT IDENTIFIER OPTIONAL,
agreementProposal
[2] -- OPERATIONAL-BINDING.&Agreement({OpBindingSet}{@bindingType})-- ANY OPTIONAL,
retryAt [3] Time OPTIONAL,
-- COMPONENTS OF CommonResultsSeq
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
-- 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
-- Module HierarchicalOperationalBindings (X.518:08/2005)
--HierarchicalOperationalBindings {joint-iso-itu-t ds(5) module(1)
-- hierarchicalOperationalBindings(20) 5} 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
-- from ITU-T Rec. X.501 | ISO/IEC 9594-2
-- directoryOperationalBindingTypes, directoryOSIProtocols,
-- distributedOperations, informationFramework, opBindingManagement
-- FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
-- usefulDefinitions(0) 5}
-- Attribute, DistinguishedName, RelativeDistinguishedName
-- FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
-- informationFramework(1) 5}
-- OPERATIONAL-BINDING
-- FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
-- opBindingManagement(18) 5}
-- from ITU-T Rec. X.518 | ISO/IEC 9594-4
-- MasterAndShadowAccessPoints
-- FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
-- distributedOperations(3) 5}
-- from ITU-T Rec. X.519 | ISO/IEC 9594-5
-- directorySystemAC
-- FROM DirectoryOSIProtocols {joint-iso-itu-t ds(5) module(1)
-- directoryOSIProtocols(37) 5}
-- id-op-binding-hierarchical, id-op-binding-non-specific-hierarchical
-- FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1)
-- directoryOperationalBindingTypes(25) 5};
-- types
HierarchicalAgreement ::= SEQUENCE {
rdn [0] RelativeDistinguishedName,
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
-- })
SEQUENCE {
contextPrefixInfo [0] DITcontext,
immediateSuperiorInfo [2] SET --SIZE (1..MAX)-- OF Attribute OPTIONAL
}
NonSpecificHierarchicalAgreement ::= SEQUENCE {
immediateSuperior [1] DistinguishedName
}
NHOBSuperiorToSubordinate ::=
-- SuperiorToSubordinate(WITH COMPONENTS {
-- ...,
-- entryInfo ABSENT
-- })
SEQUENCE {
contextPrefixInfo [0] DITcontext,
immediateSuperiorInfo [2] SET --SIZE (1..MAX)-- OF Attribute OPTIONAL
}
NHOBSubordinateToSuperior ::= SEQUENCE {
accessPoints [0] MasterAndShadowAccessPoints OPTIONAL,
subentries [3] SET --SIZE (1..MAX)-- OF SubentryInfo OPTIONAL
}
-- operational binding information objects
--hierarchicalOperationalBinding OPERATIONAL-BINDING ::= {
-- AGREEMENT HierarchicalAgreement
-- APPLICATION CONTEXTS {{directorySystemAC}}
-- ASYMMETRIC ROLE-A - - superior DSA - -
-- {ESTABLISHMENT-INITIATOR TRUE
-- ESTABLISHMENT-PARAMETER SuperiorToSubordinate
-- MODIFICATION-INITIATOR TRUE
-- MODIFICATION-PARAMETER SuperiorToSubordinateModification
-- TERMINATION-INITIATOR TRUE}
-- ROLE-B - - subordinate DSA - -
-- {ESTABLISHMENT-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}}
-- ASYMMETRIC ROLE-A - - superior DSA - -
-- {ESTABLISHMENT-PARAMETER NHOBSuperiorToSubordinate
-- MODIFICATION-INITIATOR TRUE
-- MODIFICATION-PARAMETER NHOBSuperiorToSubordinate
-- TERMINATION-INITIATOR TRUE}
-- ROLE-B - - subordinate DSA - -
-- {ESTABLISHMENT-INITIATOR TRUE
-- ESTABLISHMENT-PARAMETER NHOBSubordinateToSuperior
-- MODIFICATION-INITIATOR TRUE
-- MODIFICATION-PARAMETER NHOBSubordinateToSuperior
-- TERMINATION-INITIATOR TRUE}
-- ID id-op-binding-non-specific-hierarchical
--}
END -- HierarchicalOperationalBindings
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

152
asn1/dop/dop.cnf Normal file
View File

@ -0,0 +1,152 @@
#.MODULE_IMPORT
SelectedAttributeTypes x509sat
DistributedOperations dsp
DirectoryAbstractService dap
InformationFramework x509if
AuthenticationFramework x509af
#.INCLUDE ../x509sat/x509sat-exp.cnf
#.INCLUDE ../x509if/x509if-exp.cnf
#.INCLUDE ../x509af/x509af-exp.cnf
#.INCLUDE ../dsp/dsp-exp.cnf
#.INCLUDE ../dap/dap-exp.cnf
#.EXPORTS
DSEType
SupplierAndConsumers
#.TYPE_RENAME
EstablishOperationalBindingArgumentData/initiator EstablishArgumentInitiator
ModifyOperationalBindingArgumentData/initiator ModifyArgumentInitiator
TerminateOperationalBindingArgumentData/initiator TerminateArgumentInitiator
ModifyOperationalBindingArgumentData/newAgreement ArgumentNewAgreement
ModifyOperationalBindingResultData/newAgreement ResultNewAgreement
ModifyOperationalBindingResult/protected ProtectedModifyResult
TerminateOperationalBindingResult/protected ProtectedTerminateResult
EstablishOperationalBindingArgumentData/initiator/roleA-initiates EstablishRoleAInitiates
ModifyOperationalBindingArgumentData/initiator/roleA-initiates ModifyRoleAInitiates
TerminateOperationalBindingArgumentData/initiator/roleA-initiates TerminateRoleAInitiates
EstablishOperationalBindingArgumentData/initiator/roleB-initiates EstablishRoleBInitiates
ModifyOperationalBindingArgumentData/initiator/roleB-initiates ModifyRoleBInitiates
TerminateOperationalBindingArgumentData/initiator/roleB-initiates TerminateRoleBInitiates
EstablishOperationalBindingArgumentData/initiator/symmetric EstablishSymmetric
ModifyOperationalBindingArgumentData/initiator/symmetric ModifySymmetric
TerminateOperationalBindingArgumentData/initiator/symmetric TerminateSymmetric
#.FIELD_RENAME
EstablishOperationalBindingArgumentData/initiator establishInitiator
ModifyOperationalBindingArgumentData/initiator modifyInitiator
TerminateOperationalBindingArgumentData/initiator terminateInitiator
ModifyOperationalBindingArgumentData/newAgreement argumentNewAgreement
ModifyOperationalBindingResultData/newAgreement resultNewAgreement
ModifyOperationalBindingResult/protected protectedModifyResult
TerminateOperationalBindingResult/protected protectedTerminateResult
EstablishOperationalBindingArgumentData/initiator/roleA-initiates establishRoleAInitiates
ModifyOperationalBindingArgumentData/initiator/roleA-initiates modifyRoleAInitiates
TerminateOperationalBindingArgumentData/initiator/roleA-initiates terminateRoleAInitiates
EstablishOperationalBindingArgumentData/initiator/roleB-initiates establishRoleBInitiates
ModifyOperationalBindingArgumentData/initiator/roleB-initiates modifyRoleBInitiates
TerminateOperationalBindingArgumentData/initiator/roleB-initiates terminateRoleBInitiates
EstablishOperationalBindingArgumentData/initiator/symmetric establishSymmetric
ModifyOperationalBindingArgumentData/initiator/symmetric modifySymmetric
TerminateOperationalBindingArgumentData/initiator/symmetric terminateSymmetric
TerminateOperationalBindingArgumentData/terminateAt terminateAtTime
TerminateOperationalBindingResultData/terminateAt terminateAtGeneralizedTime
#.REGISTER
DSEType B "2.5.12.0" "id-doa-dseType"
SupplierInformation B "2.5.12.5" "id-doa-supplierKnowledge"
ConsumerInformation B "2.5.12.6" "id-doa-consumerKnowledge"
SupplierAndConsumers B "2.5.12.7" "id-doa-secondaryShadows"
HierarchicalAgreement B "dop.agreement.2.5.19.2" "hierarchical-agreement"
SuperiorToSubordinate B "dop.establish.rolea.2.5.19.2" "hierarchical-establish-rolea"
SuperiorToSubordinateModification B "dop.modify.rolea.2.5.19.2" "hierarchical-modify-rolea"
SubordinateToSuperior B "dop.establish.roleb.2.5.19.2" "hierarchical-establish-roleb"
SubordinateToSuperior B "dop.modify.roleb.2.5.19.2" "hierarchical-modify-roleb"
NonSpecificHierarchicalAgreement B "dop.agreement.2.5.19.3" "non-specific-hierarchical-agreement"
NHOBSuperiorToSubordinate B "dop.establish.rolea.2.5.19.3" "non-specific-hierarchical-establish-rolea"
NHOBSuperiorToSubordinate B "dop.modify.rolea.2.5.19.3" "non-specific-hierarchical-modify-rolea"
NHOBSubordinateToSuperior B "dop.establish.roleb.2.5.19.3" "non-specific-hierarchical-establish-roleb"
NHOBSubordinateToSuperior B "dop.modify.roleb.2.5.19.3" "non-specific-hierarchical-modify-roleb"
#.FN_PARS OBJECT_IDENTIFIER
FN_VARIANT = _str VAL_PTR = &binding_type
#.FN_BODY EstablishSymmetric
offset = call_dop_oid_callback("dop.establish.symmetric", tvb, offset, pinfo, tree);
#.FN_BODY EstablishRoleAInitiates
offset = call_dop_oid_callback("dop.establish.rolea", tvb, offset, pinfo, tree);
#.FN_BODY EstablishRoleBInitiates
offset = call_dop_oid_callback("dop.establish.roleb", tvb, offset, pinfo, tree);
#.FN_BODY ModifySymmetric
offset = call_dop_oid_callback("dop.modify.symmetric", tvb, offset, pinfo, tree);
#.FN_BODY ModifyRoleAInitiates
offset = call_dop_oid_callback("dop.modify.rolea", tvb, offset, pinfo, tree);
#.FN_BODY ModifyRoleBInitiates
offset = call_dop_oid_callback("dop.modify.roleb", tvb, offset, pinfo, tree);
#.FN_BODY TerminateSymmetric
offset = call_dop_oid_callback("dop.terminate.symmetric", tvb, offset, pinfo, tree);
#.FN_BODY TerminateRoleAInitiates
offset = call_dop_oid_callback("dop.terminate.rolea", tvb, offset, pinfo, tree);
#.FN_BODY TerminateRoleBInitiates
offset = call_dop_oid_callback("dop.terminate.roleb", tvb, offset, pinfo, tree);
#.FN_BODY T_agreement
offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree);
#.FN_BODY T_symmetric
offset = call_dop_oid_callback("dop.establish.symmetric", tvb, offset, pinfo, tree);
#.FN_BODY T_roleA_replies
offset = call_dop_oid_callback("dop.establish.rolea", tvb, offset, pinfo, tree);
#.FN_BODY T_roleB_replies
offset = call_dop_oid_callback("dop.establish.roleb", tvb, offset, pinfo, tree);
#.FN_BODY T_agreementProposal
offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree);
#.FN_BODY ResultNewAgreement
offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree);
#.FN_BODY ArgumentNewAgreement
offset = call_dop_oid_callback("dop.agreement", tvb, offset, pinfo, tree);

View File

@ -0,0 +1,293 @@
/* packet-dop.c
* Routines for X.501 (DSA Operational Attributes) packet dissection
* Graeme Lunt 2005
*
* $Id$
*
* 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/prefs.h>
#include <epan/conversation.h>
#include <stdio.h>
#include <string.h>
#include "packet-ber.h"
#include "packet-acse.h"
#include "packet-ros.h"
#include "packet-x509sat.h"
#include "packet-x509af.h"
#include "packet-x509if.h"
#include "packet-dap.h"
#include "packet-dsp.h"
#include "packet-dop.h"
#define PNAME "X.501 Directory Operational Binding Management Protocol"
#define PSNAME "DOP"
#define PFNAME "dop"
static guint global_dop_tcp_port = 102;
static guint tcp_port = 0;
static dissector_handle_t tpkt_handle = NULL;
void prefs_register_dop(void); /* forwad declaration for use in preferences registration */
/* Initialize the protocol and registered fields */
int proto_dop = -1;
static struct SESSION_DATA_STRUCTURE* session = NULL;
static const char *binding_type = NULL; /* binding_type */
static int call_dop_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
#include "packet-dop-hf.c"
/* Initialize the subtree pointers */
static gint ett_dop = -1;
#include "packet-dop-ett.c"
#include "packet-dop-fn.c"
static int
call_dop_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
{
char *name = NULL;
char binding_param[BER_MAX_OID_STR_LEN];
sprintf(binding_param, "%s.%s", base_oid, binding_type ? binding_type : "");
name = get_ber_oid_name(binding_param);
proto_item_append_text(tree, " (%s)", name ? name : binding_param);
return call_ber_oid_callback(binding_param, tvb, offset, pinfo, tree);
}
/*
* Dissect DOP PDUs inside a ROS PDUs
*/
static void
dissect_dop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
{
int offset = 0;
int old_offset;
proto_item *item=NULL;
proto_tree *tree=NULL;
int (*dop_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) = NULL;
char *dop_op_name;
/* do we have operation information from the ROS dissector? */
if( !pinfo->private_data ){
if(parent_tree){
proto_tree_add_text(parent_tree, tvb, offset, -1,
"Internal error: can't get operation information from ROS dissector.");
}
return ;
} else {
session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
}
if(parent_tree){
item = proto_tree_add_item(parent_tree, proto_dop, tvb, 0, -1, FALSE);
tree = proto_item_add_subtree(item, ett_dop);
}
if (check_col(pinfo->cinfo, COL_PROTOCOL))
col_set_str(pinfo->cinfo, COL_PROTOCOL, "DOP");
if (check_col(pinfo->cinfo, COL_INFO))
col_clear(pinfo->cinfo, COL_INFO);
switch(session->ros_op & ROS_OP_MASK) {
case (ROS_OP_BIND | ROS_OP_ARGUMENT): /* BindInvoke */
dop_dissector = dissect_dop_DSAOperationalManagementBindArgument;
dop_op_name = "DSA-Operational-Bind-Argument";
break;
case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
dop_dissector = dissect_dop_DSAOperationalManagementBindResult;
dop_op_name = "DSA-Operational-Bind-Result";
break;
case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
dop_dissector = dissect_dop_DSAOperationalManagementBindError;
dop_op_name = "DSA-Operational-Management-Bind-Error";
break;
case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
switch(session->ros_op & ROS_OP_OPCODE_MASK) {
case 100: /* establish */
dop_dissector = dissect_dop_EstablishOperationalBindingArgument;
dop_op_name = "Establish-Operational-Binding-Argument";
break;
case 101: /* terminate */
dop_dissector = dissect_dop_TerminateOperationalBindingArgument;
dop_op_name = "Terminate-Operational-Binding-Argument";
break;
case 102: /* modify */
dop_dissector = dissect_dop_ModifyOperationalBindingArgument;
dop_op_name = "Modify-Operational-Binding-Argument";
break;
default:
proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Argument opcode (%d)",
session->ros_op & ROS_OP_OPCODE_MASK);
break;
}
break;
case (ROS_OP_INVOKE | ROS_OP_RESULT): /* Return Result */
switch(session->ros_op & ROS_OP_OPCODE_MASK) {
case 100: /* establish */
dop_dissector = dissect_dop_EstablishOperationalBindingResult;
dop_op_name = "Establish-Operational-Binding-Result";
break;
case 101: /* terminate */
dop_dissector = dissect_dop_TerminateOperationalBindingResult;
dop_op_name = "Terminate-Operational-Binding-Result";
break;
case 102: /* modify */
dop_dissector = dissect_dop_ModifyOperationalBindingResult;
dop_op_name = "Modify-Operational-Binding-Result";
break;
default:
proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Result opcode (%d)",
session->ros_op & ROS_OP_OPCODE_MASK);
break;
}
break;
case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
switch(session->ros_op & ROS_OP_OPCODE_MASK) {
case 100: /* operational-binding */
dop_dissector = dissect_dop_OpBindingErrorParam;
dop_op_name = "Operational-Binding-Error";
break;
default:
proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP Error opcode (%d)",
session->ros_op & ROS_OP_OPCODE_MASK);
break;
}
break;
default:
proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DOP PDU");
return;
}
if(dop_dissector) {
if (check_col(pinfo->cinfo, COL_INFO))
col_add_str(pinfo->cinfo, COL_INFO, dop_op_name);
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
offset=(*dop_dissector)(FALSE, tvb, offset, pinfo , tree, -1);
if(offset == old_offset){
proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DOP PDU");
offset = tvb_length(tvb);
break;
}
}
}
}
/*--- proto_register_dop -------------------------------------------*/
void proto_register_dop(void) {
/* List of fields */
static hf_register_info hf[] =
{
#include "packet-dop-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_dop,
#include "packet-dop-ettarr.c"
};
module_t *dop_module;
/* Register protocol */
proto_dop = proto_register_protocol(PNAME, PSNAME, PFNAME);
/* initially disable the protocol */
proto_set_decoding(proto_dop, FALSE);
register_dissector("dop", dissect_dop, proto_dop);
/* Register fields and subtrees */
proto_register_field_array(proto_dop, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* Register our configuration options for DOP, particularly our port */
#ifdef PREFERENCE_GROUPING
dop_module = prefs_register_protocol_subtree("OSI/X.500", proto_dop, prefs_register_dop);
#else
dop_module = prefs_register_protocol(proto_dop, prefs_register_dop);
#endif
prefs_register_uint_preference(dop_module, "tcp.port", "DOP TCP Port",
"Set the port for DOP operations (if other"
" than the default of 102)",
10, &global_dop_tcp_port);
}
/*--- proto_reg_handoff_dop --- */
void proto_reg_handoff_dop(void) {
dissector_handle_t handle = NULL;
#include "packet-dop-dis-tab.c"
/* APPLICATION CONTEXT */
register_ber_oid_name("2.5.3.3", "id-ac-directory-operational-binding-management");
/* ABSTRACT SYNTAXES */
/* Register DOP with ROS (with no use of RTSE) */
if((handle = find_dissector("dop"))) {
register_ros_oid_dissector_handle("2.5.9.4", handle, 0, "id-as-directory-operational-binding-management", FALSE);
}
/* remember the tpkt handler for change in preferences */
tpkt_handle = find_dissector("tpkt");
}
void prefs_register_dop(void) {
/* de-register the old port */
/* port 102 is registered by TPKT - don't undo this! */
if((tcp_port != 102) && tpkt_handle)
dissector_delete("tcp.port", tcp_port, tpkt_handle);
/* Set our port number for future use */
tcp_port = global_dop_tcp_port;
if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
dissector_add("tcp.port", global_dop_tcp_port, tpkt_handle);
}

View File

@ -26,6 +26,6 @@
#ifndef PACKET_X501_H
#define PACKET_X501_H
#include "packet-x501-exp.h"
#include "packet-dop-exp.h"
#endif /* PACKET_X501_H */

42
asn1/dsp/Makefile.nmake Normal file
View File

@ -0,0 +1,42 @@
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id$
include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=dsp
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2eth.py dsp.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template dsp.asn
!ELSE
@echo Error: You need Python to use asn2eth.py
@exit 1
!ENDIF
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
# Fix EOL in generated dissectors. Cygwin's python generates files with
# mixed EOL styles, which can't be commited to the SVN repository.
# Stuff included from template and "cnf" files has "\r\n" on windows, while
# the generated stuff has "\n".
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y

View File

@ -2,6 +2,7 @@
OperationProgress BER_CLASS_UNI BER_UNI_TAG_SET
ReferenceType BER_CLASS_UNI BER_UNI_TAG_ENUMERATED
AccessPoint BER_CLASS_UNI BER_UNI_TAG_SET
MasterAndShadowAccessPoints BER_CLASS_UNI BER_UNI_TAG_SET
ContinuationReference BER_CLASS_UNI BER_UNI_TAG_SET
#.END
@ -9,6 +10,7 @@ ContinuationReference BER_CLASS_UNI BER_UNI_TAG_SET
OperationProgress TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
ReferenceType TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(dsp_ReferenceType_vals) BITMASK = 0
AccessPoint TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
MasterAndShadowAccessPoints TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
ContinuationReference TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
#.END

View File

@ -424,6 +424,8 @@ ReferenceType ::= ENUMERATED {
supplier(5), master(6), immediateSuperior(7), self(8)}
AccessPoint ::= SET {
-- The following line, whilst wrong, helps with Thales DOP dissection
-- ae-title [0] IMPLICIT NULL,
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL

View File

@ -19,6 +19,7 @@ OperationProgress
ReferenceType
ContinuationReference
AccessPoint
MasterAndShadowAccessPoints
#.TYPE_RENAME

View File

@ -298,7 +298,11 @@ void proto_register_dsp(void) {
/* Register our configuration options for DSP, particularly our port */
#ifdef PREFERENCE_GROUPING
dsp_module = prefs_register_protocol_subtree("OSI/X.500", proto_dsp, prefs_register_dsp);
#else
dsp_module = prefs_register_protocol(proto_dsp, prefs_register_dsp);
#endif
prefs_register_uint_preference(dsp_module, "tcp.port", "DSP TCP Port",
"Set the port for DSP operations (if other"

View File

@ -1,19 +0,0 @@
# $Id$
DISSECTOR_FILES=packet-x501.c packet-x501.h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
ASN_EXPORTS=
$(DISSECTOR_FILES): ../../tools/asn2eth.py x501.asn packet-x501-template.c packet-x501-template.h x501.cnf $(ASN_EXPORTS)
python ../../tools/asn2eth.py -X -b -e -p x501 -c x501.cnf -s packet-x501-template x501.asn
clean:
rm -f parsetab.py $(DISSECTOR_FILES) *~
copy_files: generate_dissector
cp $(DISSECTOR_FILES) ../../epan/dissectors

View File

@ -1,92 +0,0 @@
/* packet-x501.c
* Routines for X.501 (DSA Operational Attributes) packet dissection
* Graeme Lunt 2005
*
* $Id$
*
* 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-x509sat.h"
#include "packet-x509if.h"
#include "packet-dap.h"
#include "packet-dsp.h"
#include "packet-x501.h"
#define PNAME "X.501 Operational Attributes"
#define PSNAME "X501"
#define PFNAME "x501"
/* Initialize the protocol and registered fields */
int proto_x501 = -1;
#include "packet-x501-hf.c"
/* Initialize the subtree pointers */
static gint ett_x501 = -1;
#include "packet-x501-ett.c"
#include "packet-x501-fn.c"
/*--- proto_register_x501 -------------------------------------------*/
void proto_register_x501(void) {
/* List of fields */
static hf_register_info hf[] =
{
#include "packet-x501-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_x501,
#include "packet-x501-ettarr.c"
};
/* Register protocol */
proto_x501 = proto_register_protocol(PNAME, PSNAME, PFNAME);
/* Register fields and subtrees */
proto_register_field_array(proto_x501, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
/*--- proto_reg_handoff_x501 --- */
void proto_reg_handoff_x501(void) {
#include "packet-x501-dis-tab.c"
}

View File

@ -1,207 +0,0 @@
-- Module DSAOperationalAttributeTypes (X.501:02/2001)
DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1)
dsaOperationalAttributeTypes(22) 4} 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
-- from ITU-T Rec. X.501 | ISO/IEC 9594-2
distributedOperations, id-doa, id-kmr, informationFramework,
opBindingManagement, selectedAttributeTypes, upperBounds
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
usefulDefinitions(0) 4}
ATTRIBUTE, MATCHING-RULE, Name
FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
informationFramework(1) 4}
OperationalBindingID
FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1)
opBindingManagement(18) 4}
-- from ITU-T Rec. X.518 | ISO/IEC 9594-4
AccessPoint, MasterAndShadowAccessPoints
FROM DistributedOperations {joint-iso-itu-t ds(5) module(1)
distributedOperations(3) 4}
-- from ITU-T Rec. X.520 | ISO/IEC 9594-6
bitStringMatch
FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
selectedAttributeTypes(5) 4}
PresentationAddress, ProtocolInformation
FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
selectedAttributeTypes(5) 4};
-- 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
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
agreementID [3] OperationalBindingID
}
SupplierInformation ::= SET {
-- COMPONENTS OF SupplierOrConsumer, - - supplier
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
agreementID [3] OperationalBindingID,
supplier-is-master [4] BOOLEAN DEFAULT TRUE,
non-supplying-master [5] AccessPoint OPTIONAL
}
ConsumerInformation ::= SupplierOrConsumer -- consumer
SupplierAndConsumers ::= SET {
-- COMPONENTS OF AccessPoint, - - supplier
ae-title [0] Name,
address [1] PresentationAddress,
protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
consumers [3] 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

View File

@ -1,19 +0,0 @@
#.MODULE_IMPORT
SelectedAttributeTypes x509sat
DistributedOperations dsp
OperationalBindingManagement dap
InformationFramework x509if
#.INCLUDE ../x509sat/x509sat-exp.cnf
#.INCLUDE ../dap/dap-exp.cnf
#.INCLUDE ../dsp/dsp-exp.cnf
#.EXPORTS
DSEType
SupplierAndConsumers
#.REGISTER
DSEType B "2.5.12.0" "id-doa-dseType"
SupplierInformation B "2.5.12.5" "id-doa-supplierKnowledge"
ConsumerInformation B "2.5.12.6" "id-doa-consumerKnowledge"
SupplierAndConsumers B "2.5.12.7" "id-doa-secondaryShadows"