summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Lunt <graeme.lunt@smhs.co.uk>2007-12-15 15:21:25 +0000
committerGraeme Lunt <graeme.lunt@smhs.co.uk>2007-12-15 15:21:25 +0000
commit9c6ac3835fa68a9dfb9779c55dd3260bffc30590 (patch)
treeca6741ca6915aa66bcce5b87256b922113d32fe8
parent7a5f960bb72daedc7d34fa813e309e40adfd02d8 (diff)
downloadwireshark-9c6ac3835fa68a9dfb9779c55dd3260bffc30590.tar.gz
Revised DAP dissector using latest asn2wrs features (requiring fewer changes the ASN.1 module) and table-driven operations.
svn path=/trunk/; revision=23875
-rwxr-xr-xasn1/dap/DirectoryAccessProtocol.asn171
-rw-r--r--asn1/dap/Makefile.common6
-rw-r--r--asn1/dap/dap.asn429
-rw-r--r--asn1/dap/dap.cnf119
-rw-r--r--asn1/dap/packet-dap-template.c220
-rw-r--r--epan/dissectors/packet-dap.c1284
-rw-r--r--epan/dissectors/packet-dap.h3
7 files changed, 1284 insertions, 948 deletions
diff --git a/asn1/dap/DirectoryAccessProtocol.asn b/asn1/dap/DirectoryAccessProtocol.asn
new file mode 100755
index 0000000000..58e8c18d5b
--- /dev/null
+++ b/asn1/dap/DirectoryAccessProtocol.asn
@@ -0,0 +1,171 @@
+-- $Id$
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x519/2001/index.html
+-- Module DirectoryAccessProtocol (X.519:02/2001)
+DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 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
+ directoryAbstractService, protocolObjectIdentifiers
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 4}
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ abandon, addEntry, compare, directoryBind, directoryUnbind, list, modifyDN,
+ modifyEntry, read, removeEntry, search
+ FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
+ directoryAbstractService(2) 4}
+ -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
+ id-ac-directoryAccessAC, id-as-directoryAccessAS, id-contract-dap,
+ id-package-dapConnection, id-package-modify, id-package-read,
+ id-package-search, id-rosObject-dapDSA, id-rosObject-directory,
+ id-rosObject-dua
+ FROM ProtocolObjectIdentifiers {joint-iso-itu-t ds(5) module(1)
+ protocolObjectIdentifiers(4) 4}
+ -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
+ Code, CONNECTION-PACKAGE, CONTRACT, OPERATION, OPERATION-PACKAGE,
+ ROS-OBJECT-CLASS
+ FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+ remote-operations(4) informationObjects(5) version1(0)}
+ Bind{}, InvokeId, ROS{}, Unbind{}
+ FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+ -- from ITU-T Rec. X.881 | ISO/IEC 13712-2
+ APPLICATION-CONTEXT
+ FROM Remote-Operations-Information-Objects-extensions {joint-iso-itu-t
+ remote-operations(4) informationObjects-extensions(8) version1(0)}
+ -- from ITU-T Rec. X.882 | ISO/IEC 13712-3
+ acse, pData
+ FROM Remote-Operations-Realizations {joint-iso-itu-t remote-operations(4)
+ realizations(9) version1(0)}
+ acse-abstract-syntax
+ FROM Remote-Operations-Abstract-Syntaxes {joint-iso-itu-t
+ remote-operations(4) remote-operations-abstract-syntaxes(12) version1(0)};
+
+-- application contexts
+directoryAccessAC APPLICATION-CONTEXT ::= {
+ CONTRACT dapContract
+ ESTABLISHED BY acse
+ INFORMATION TRANSFER BY pData
+ ABSTRACT SYNTAXES
+ {acse-abstract-syntax | directoryAccessAbstractSyntax}
+ APPLICATION CONTEXT NAME id-ac-directoryAccessAC
+}
+
+-- ROS objects
+dua ROS-OBJECT-CLASS ::= {INITIATES {dapContract}
+ ID id-rosObject-dua
+}
+
+directory ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-directory
+}
+
+dap-dsa ROS-OBJECT-CLASS ::= {
+ RESPONDS {dapContract}
+ ID id-rosObject-dapDSA
+}
+
+-- contracts
+dapContract CONTRACT ::= {
+ CONNECTION dapConnectionPackage
+ INITIATOR CONSUMER OF {readPackage | searchPackage | modifyPackage}
+ ID id-contract-dap
+}
+
+-- connection package
+dapConnectionPackage CONNECTION-PACKAGE ::= {
+ BIND directoryBind
+ UNBIND directoryUnbind
+ ID id-package-dapConnection
+}
+
+-- read package
+readPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {read | compare | abandon}
+ ID id-package-read
+}
+
+-- search package
+searchPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {list | search}
+ ID id-package-search
+}
+
+-- modify Package
+modifyPackage OPERATION-PACKAGE ::= {
+ CONSUMER INVOKES {addEntry | removeEntry | modifyEntry | modifyDN}
+ ID id-package-modify
+}
+
+-- abstract syntaxes
+directoryAccessAbstractSyntax ABSTRACT-SYNTAX ::= {
+ DAP-PDUs
+ IDENTIFIED BY id-as-directoryAccessAS
+}
+
+--DAP-PDUs ::= CHOICE {
+-- basicRos ROS{{DAP-InvokeIDSet}, {DAP-Invokable}, {DAP-Returnable}},
+-- bind Bind{directoryBind},
+-- unbind Unbind{directoryUnbind}
+--}
+
+DAP-InvokeIDSet ::= InvokeId --(ALL EXCEPT absent:NULL)
+
+DAP-Invokable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+DAP-Returnable OPERATION ::=
+ {read | compare | abandon | list | search | addEntry | removeEntry |
+ modifyEntry | modifyDN}
+
+-- remote operation codes
+id-opcode-read Code ::= local:1
+
+id-opcode-compare Code ::= local:2
+
+id-opcode-abandon Code ::= local:3
+
+id-opcode-list Code ::= local:4
+
+id-opcode-search Code ::= local:5
+
+id-opcode-addEntry Code ::= local:6
+
+id-opcode-removeEntry Code ::= local:7
+
+id-opcode-modifyEntry Code ::= local:8
+
+id-opcode-modifyDN Code ::= local:9
+
+-- remote error codes
+id-errcode-attributeError Code ::= local:1
+
+id-errcode-nameError Code ::= local:2
+
+id-errcode-serviceError Code ::= local:3
+
+id-errcode-referral Code ::= local:4
+
+id-errcode-abandoned Code ::= local:5
+
+id-errcode-securityError Code ::= local:6
+
+id-errcode-abandonFailed Code ::= local:7
+
+id-errcode-updateError Code ::= local:8
+
+-- remote error code for DSP
+id-errcode-dsaReferral Code ::= local:9
+
+END -- DirectoryAccessProtocol
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/dap/Makefile.common b/asn1/dap/Makefile.common
index 3dc3a30b86..e9babdfe4e 100644
--- a/asn1/dap/Makefile.common
+++ b/asn1/dap/Makefile.common
@@ -33,7 +33,9 @@ EXPORT_FILES = \
EXT_ASN_FILE_LIST =
ASN_FILE_LIST = \
- $(PROTOCOL_NAME).asn
+ $(PROTOCOL_NAME).asn \
+ DirectoryAccessProtocol.asn
+
# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
# files do not exist # for all protocols: Please add/remove as required.
@@ -47,7 +49,7 @@ SRC_FILES = \
$(EXTRA_DIST) \
$(EXT_ASN_FILE_LIST)
-A2W_FLAGS= -b -e
+A2W_FLAGS= -b -e -L
EXTRA_CNF= \
../disp/disp-exp.cnf \
diff --git a/asn1/dap/dap.asn b/asn1/dap/dap.asn
index e478d9dc52..fcb83d7c33 100644
--- a/asn1/dap/dap.asn
+++ b/asn1/dap/dap.asn
@@ -70,27 +70,27 @@ IMPORTS
remote-operations(4) useful-definitions(7) version1(0)}
InvokeId
FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
- remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+ remote-operations(4) generic-ROS-PDUs(6) version1(0)}
-- from RFC 2025
--- SPKM-ERROR, SPKM-REP-TI, SPKM-REQ
--- FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
--- security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
+ SPKM-ERROR, SPKM-REP-TI, SPKM-REQ
+ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) spkm(1) spkmGssTokens(10)};
-- Common data types
---CommonArguments ::= SET {
--- serviceControls [30] ServiceControls DEFAULT {},
--- securityParameters [29] SecurityParameters OPTIONAL,
--- requestor [28] DistinguishedName OPTIONAL,
--- operationProgress
--- [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
--- aliasedRDNs [26] INTEGER OPTIONAL,
--- criticalExtensions [25] BIT STRING OPTIONAL,
--- referenceType [24] ReferenceType OPTIONAL,
--- entryOnly [23] BOOLEAN DEFAULT TRUE,
--- nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
--- operationContexts [20] ContextSelection OPTIONAL,
--- familyGrouping [19] FamilyGrouping DEFAULT entryOnly
---}
+CommonArguments ::= SET {
+ serviceControls [30] ServiceControls DEFAULT {},
+ securityParameters [29] SecurityParameters OPTIONAL,
+ requestor [28] DistinguishedName OPTIONAL,
+ operationProgress
+ [27] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ aliasedRDNs [26] INTEGER OPTIONAL,
+ criticalExtensions [25] BIT STRING OPTIONAL,
+ referenceType [24] ReferenceType OPTIONAL,
+ entryOnly [23] BOOLEAN DEFAULT TRUE,
+ nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE,
+ operationContexts [20] ContextSelection OPTIONAL,
+ familyGrouping [19] FamilyGrouping DEFAULT entryOnly
+}
FamilyGrouping ::= ENUMERATED {
entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)}
@@ -99,15 +99,15 @@ CommonResults ::= SET {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
---CommonResultsSeq ::= SEQUENCE {
--- securityParameters [30] SecurityParameters OPTIONAL,
--- performer [29] DistinguishedName OPTIONAL,
--- aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
--- notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
---}
+CommonResultsSeq ::= SEQUENCE {
+ securityParameters [30] SecurityParameters OPTIONAL,
+ performer [29] DistinguishedName OPTIONAL,
+ aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
+}
ServiceControls ::= SET {
options [0] ServiceControlOptions DEFAULT {},
@@ -140,7 +140,7 @@ EntryInformationSelection ::= SET {
DEFAULT attributeTypesAndValues,
extraAttributes
CHOICE {allOperationalAttributes [3] NULL,
- select [4] SET --SIZE (1..MAX)-- OF AttributeType
+ select [4] SET SIZE (1..MAX) OF AttributeType
} OPTIONAL,
contextSelection ContextSelection OPTIONAL,
returnContexts BOOLEAN DEFAULT FALSE,
@@ -149,7 +149,7 @@ EntryInformationSelection ::= SET {
ContextSelection ::= CHOICE {
allContexts NULL,
- selectedContexts SET --SIZE (1..MAX)-- OF TypeAndContextAssertion
+ selectedContexts SET SIZE (1..MAX) OF TypeAndContextAssertion
}
TypeAndContextAssertion ::= SEQUENCE {
@@ -163,7 +163,7 @@ FamilyReturn ::= SEQUENCE {
memberSelect
ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2),
compoundEntry(3)},
- familySelect SEQUENCE --SIZE (1..MAX)-- OF --OBJECT-CLASS.&id-- OBJECT IDENTIFIER OPTIONAL
+ familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL
}
@@ -171,7 +171,7 @@ EntryInformation ::= SEQUENCE {
name Name,
fromEntry BOOLEAN DEFAULT TRUE,
information
- SET --SIZE (1..MAX)-- OF CHOICE {
+ SET SIZE (1..MAX) OF CHOICE {
attributeType AttributeType,
attribute Attribute} OPTIONAL,
incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems
@@ -196,7 +196,7 @@ FamilyEntry ::= SEQUENCE {
information
SEQUENCE OF CHOICE {attributeType AttributeType,
attribute Attribute},
- family-info SEQUENCE --SIZE (1..MAX)-- OF FamilyEntries OPTIONAL
+ family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL
}
Filter ::= CHOICE {
@@ -212,21 +212,21 @@ SetOfFilter ::= SET OF Filter
FilterItem ::= CHOICE {
equality [0] AttributeValueAssertion,
substrings
- [1] SEQUENCE {type --ATTRIBUTE.&id({SupportedAttributes})-- OBJECT IDENTIFIER,
+ [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}),
strings
SEQUENCE OF
CHOICE {initial
- [0] -- ATTRIBUTE.&Type -- ANY
--- ({SupportedAttributes}
--- {@substrings.type})--,
+ [0] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
any
- [1] -- ATTRIBUTE.&Type -- ANY
--- ({SupportedAttributes}
--- {@substrings.type})--,
+ [1] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
final
- [2] --ATTRIBUTE.&Type -- ANY
--- ({SupportedAttributes}
--- {@substrings.type})--,
+ [2] ATTRIBUTE.&Type
+ ({SupportedAttributes}
+ {@substrings.type}),
control Attribute}}, -- Used to specify interpretation of following items
greaterOrEqual [2] AttributeValueAssertion,
lessOrEqual [3] AttributeValueAssertion,
@@ -237,10 +237,10 @@ FilterItem ::= CHOICE {
}
MatchingRuleAssertion ::= SEQUENCE {
- matchingRule [1] SET --SIZE (1..MAX)-- OF --MATCHING-RULE.&id-- OBJECT IDENTIFIER,
+ matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id,
type [2] AttributeType OPTIONAL,
matchValue
- [3] --MATCHING-RULE.&AssertionType-- ANY
+ [3] MATCHING-RULE.&AssertionType
-- (CONSTRAINED BY {
-- matchValue shall be a value of type specified by the &AssertionType field of
-- one of the MATCHING-RULE information objects identified by matchingRule }) --,
@@ -250,7 +250,7 @@ MatchingRuleAssertion ::= SEQUENCE {
PagedResultsRequest ::= CHOICE {
newRequest
SEQUENCE {pageSize INTEGER,
- sortKeys SEQUENCE --SIZE (1..MAX)-- OF SortKey OPTIONAL,
+ sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL,
reverse [1] BOOLEAN DEFAULT FALSE,
unmerged [2] BOOLEAN DEFAULT FALSE},
queryReference OCTET STRING
@@ -285,11 +285,12 @@ ErrorProtectionRequest ::= INTEGER {
none(0), signed(1), encrypted(2), signed-encrypted(3)}
-- Bind and unbind operations
---directoryBind OPERATION ::= {
--- ARGUMENT DirectoryBindArgument
--- RESULT DirectoryBindResult
--- ERRORS {directoryBindError}
---}
+directoryBind OPERATION ::= {
+ ARGUMENT DirectoryBindArgument
+ RESULT DirectoryBindResult
+ ERRORS {directoryBindError}
+ CODE op-ros-bind -- WS: internal operation code
+}
DirectoryBindArgument ::= SET {
credentials [0] Credentials OPTIONAL,
@@ -361,13 +362,14 @@ Versions ::= BIT STRING {v1(0), v2(1)}
DirectoryBindResult ::= DirectoryBindArgument
-DirectoryBindErrorData --ERROR-- ::= --{
--- PARAMETER OPTIONALLY-PROTECTED
--- {--SET {versions [0] Versions DEFAULT {v1},
- error
- CHOICE {serviceError [1] ServiceProblem,
- securityError [2] SecurityProblem}} --}
---}
+directoryBindError ERROR ::= {
+ PARAMETER -- OPTIONALLY-PROTECTED -- DirectoryBindError
+-- {SET {versions [0] Versions DEFAULT {v1},
+-- error
+-- CHOICE {serviceError [1] ServiceProblem,
+-- securityError [2] SecurityProblem}} }
+ CODE err-ros-bind -- WS: internal error code
+}
-- expand OPTIONALLY-PROTECTED macro
DirectoryBindError ::= CHOICE {
@@ -379,20 +381,26 @@ DirectoryBindError ::= CHOICE {
}
}
+DirectoryBindErrorData ::=
+ SET {versions [0] Versions DEFAULT {v1},
+ error
+ CHOICE {serviceError [1] ServiceProblem,
+ securityError [2] SecurityProblem}}
+
-BindKeyInfo ::= -- ENCRYPTED{-- BIT STRING --
+BindKeyInfo ::= -- ENCRYPTED{-- BIT STRING
--directoryUnbind OPERATION ::= emptyUnbind
-- Operations, arguments, and results
---read OPERATION ::= {
--- ARGUMENT ReadArgument
--- RESULT ReadResult
--- ERRORS
--- {attributeError | nameError | serviceError | referral | abandoned |
--- securityError}
--- CODE id-opcode-read
---}
+read OPERATION ::= {
+ ARGUMENT ReadArgument
+ RESULT ReadResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-read
+}
ReadArgumentData ::=
-- OPTIONALLY-PROTECTED
@@ -437,7 +445,7 @@ ReadResultData ::=
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}--}
-- OPTIONALLY-PROTECTED macro expansion
@@ -461,14 +469,14 @@ ModifyRights ::=
[3] BIT STRING {add(0), remove(1), rename(2), move(3)}
}
---compare OPERATION ::= {
--- ARGUMENT CompareArgument
--- RESULT CompareResult
--- ERRORS
--- {attributeError | nameError | serviceError | referral | abandoned |
--- securityError}
--- CODE id-opcode-compare
---}
+compare OPERATION ::= {
+ ARGUMENT CompareArgument
+ RESULT CompareResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-compare
+}
CompareArgumentData ::=
-- OPTIONALLY-PROTECTED
@@ -510,7 +518,7 @@ CompareResultData ::=
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
-- OPTIONALLY-PROTECTED macro expansion
@@ -524,12 +532,12 @@ CompareResult ::= CHOICE {
}
---abandon OPERATION ::= {
--- ARGUMENT AbandonArgument
--- RESULT AbandonResult
--- ERRORS {abandonFailed}
--- CODE id-opcode-abandon
---}
+abandon OPERATION ::= {
+ ARGUMENT AbandonArgument
+ RESULT AbandonResult
+ ERRORS {abandonFailed}
+ CODE id-opcode-abandon
+}
AbandonArgumentData ::=
-- OPTIONALLY-PROTECTED-SEQ{--SEQUENCE {invokeID [0] InvokeId}--}
@@ -550,7 +558,7 @@ AbandonResultData ::= SEQUENCE {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
AbandonResult ::= CHOICE {
@@ -569,12 +577,12 @@ AbandonResult ::= CHOICE {
}
}
---list OPERATION ::= {
--- ARGUMENT ListArgument
--- RESULT ListResult
--- ERRORS {nameError | serviceError | referral | abandoned | securityError}
--- CODE id-opcode-list
---}
+list OPERATION ::= {
+ ARGUMENT ListArgument
+ RESULT ListResult
+ ERRORS {nameError | serviceError | referral | abandoned | securityError}
+ CODE id-opcode-list
+}
ListArgumentData ::=
-- OPTIONALLY-PROTECTED
@@ -623,7 +631,7 @@ ListResultData ::=
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
},
uncorrelatedListInfo [0] SET OF ListResult}--}
@@ -641,14 +649,14 @@ ListResult ::= CHOICE {
PartialOutcomeQualifier ::= SET {
limitProblem [0] LimitProblem OPTIONAL,
unexplored
- [1] SET --SIZE (1..MAX)-- OF ContinuationReference OPTIONAL,
+ [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL,
unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE,
unknownErrors
- [3] SET --SIZE (1..MAX)-- OF --ABSTRACT-SYNTAX.&Type-- OBJECT IDENTIFIER OPTIONAL,
+ [3] SET SIZE (1..MAX) OF --ABSTRACT-SYNTAX.&Type-- OBJECT IDENTIFIER OPTIONAL,
queryReference [4] OCTET STRING OPTIONAL,
overspecFilter [5] Filter OPTIONAL,
notification
- [6] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL,
+ [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL,
entryCount
CHOICE {bestEstimate [7] INTEGER,
lowEstimate [8] INTEGER} OPTIONAL
@@ -658,14 +666,14 @@ LimitProblem ::= INTEGER {
timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2)
}
---search OPERATION ::= {
--- ARGUMENT SearchArgument
--- RESULT SearchResult
--- ERRORS
--- {attributeError | nameError | serviceError | referral | abandoned |
--- securityError}
--- CODE id-opcode-search
---}
+search OPERATION ::= {
+ ARGUMENT SearchArgument
+ RESULT SearchResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | abandoned |
+ securityError}
+ CODE id-opcode-search
+}
SearchArgumentData ::=
-- OPTIONALLY-PROTECTED
@@ -732,7 +740,7 @@ JoinArgument ::= SEQUENCE {
[2] ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
DEFAULT baseObject,
joinFilter [3] Filter OPTIONAL,
- joinAttributes [4] SEQUENCE --SIZE (1..MAX)-- OF JoinAttPair OPTIONAL,
+ joinAttributes [4] SEQUENCE SIZE (1..MAX) OF JoinAttPair OPTIONAL,
joinSelection [5] EntryInformationSelection
}
@@ -741,7 +749,7 @@ DomainLocalID ::= DirectoryString --{ub-domainLocalID}--
JoinAttPair ::= SEQUENCE {
baseAtt AttributeType,
joinAtt AttributeType,
- joinContext SEQUENCE --SIZE (1..MAX)-- OF JoinContextType OPTIONAL
+ joinContext SEQUENCE SIZE (1..MAX) OF JoinContextType OPTIONAL
}
JoinContextType ::= --CONTEXT.&id({SupportedContexts})-- OBJECT IDENTIFIER
@@ -758,7 +766,7 @@ SearchResultData ::=
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL},
+ notification [27] SEQUENCE SIZE (1..MAX)OF Attribute OPTIONAL},
uncorrelatedSearchInfo [0] SET OF SearchResult}--}
-- expand OPTIONALLY-PROTECTED macro
@@ -772,14 +780,14 @@ SearchResult ::= CHOICE {
}
---addEntry OPERATION ::= {
--- ARGUMENT AddEntryArgument
--- RESULT AddEntryResult
--- ERRORS
--- {attributeError | nameError | serviceError | referral | securityError |
--- updateError}
--- CODE id-opcode-addEntry
---}
+addEntry OPERATION ::= {
+ ARGUMENT AddEntryArgument
+ RESULT AddEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-addEntry
+}
AddEntryArgumentData ::=
-- OPTIONALLY-PROTECTED
@@ -815,7 +823,7 @@ AddEntryResultData ::= SEQUENCE {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
AddEntryResult ::= CHOICE {
@@ -832,12 +840,12 @@ AddEntryResult ::= CHOICE {
}
}
---removeEntry OPERATION ::= {
--- ARGUMENT RemoveEntryArgument
--- RESULT RemoveEntryResult
--- ERRORS {nameError | serviceError | referral | securityError | updateError}
--- CODE id-opcode-removeEntry
---}
+removeEntry OPERATION ::= {
+ ARGUMENT RemoveEntryArgument
+ RESULT RemoveEntryResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-removeEntry
+}
RemoveEntryArgumentData ::=
-- OPTIONALLY-PROTECTED{--SET {object [0] Name,
@@ -871,7 +879,7 @@ RemoveEntryResultData ::= SEQUENCE {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
RemoveEntryResult ::= CHOICE {
@@ -888,14 +896,14 @@ RemoveEntryResult ::= CHOICE {
}
}
---modifyEntry OPERATION ::= {
--- ARGUMENT ModifyEntryArgument
--- RESULT ModifyEntryResult
--- ERRORS
--- {attributeError | nameError | serviceError | referral | securityError |
--- updateError}
--- CODE id-opcode-modifyEntry
---}
+modifyEntry OPERATION ::= {
+ ARGUMENT ModifyEntryArgument
+ RESULT ModifyEntryResult
+ ERRORS
+ {attributeError | nameError | serviceError | referral | securityError |
+ updateError}
+ CODE id-opcode-modifyEntry
+}
ModifyEntryArgumentData ::=
-- OPTIONALLY-PROTECTED
@@ -933,7 +941,7 @@ ModifyEntryResultData ::= SEQUENCE {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
ModifyEntryResult ::= CHOICE {
@@ -959,12 +967,12 @@ EntryModification ::= CHOICE {
resetValue [5] AttributeType
}
---modifyDN OPERATION ::= {
--- ARGUMENT ModifyDNArgument
--- RESULT ModifyDNResult
--- ERRORS {nameError | serviceError | referral | securityError | updateError}
--- CODE id-opcode-modifyDN
---}
+modifyDN OPERATION ::= {
+ ARGUMENT ModifyDNArgument
+ RESULT ModifyDNResult
+ ERRORS {nameError | serviceError | referral | securityError | updateError}
+ CODE id-opcode-modifyDN
+}
ModifyDNArgument ::=
-- OPTIONALLY-PROTECTED
@@ -992,7 +1000,7 @@ ModifyDNResultData ::= SEQUENCE {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
@@ -1013,18 +1021,18 @@ ModifyDNResult ::= CHOICE {
-- Errors and parameters
+abandoned ERROR ::= { -- not literally an "error"
+ PARAMETER --OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}-- Abandoned
+ CODE id-errcode-abandoned
+}
+
AbandonedData ::= SET {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
---abandoned ERROR ::= { - - not literally an "error"
--- PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}}
--- CODE id-errcode-abandoned
---}
-
Abandoned ::= CHOICE {
unsignedAbandoned AbandonedData,
signedAbandoned SEQUENCE {
@@ -1034,6 +1042,13 @@ Abandoned ::= CHOICE {
}
}
+abandonFailed ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- AbandonFailedError
+-- {SET {problem [0] AbandonProblem,
+-- operation [1] InvokeId,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-abandonFailed
+}
AbandonFailedErrorData ::= SET {
problem [0] AbandonProblem,
@@ -1041,18 +1056,9 @@ AbandonFailedErrorData ::= SET {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
-
---abandonFailed ERROR ::= {
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {problem [0] AbandonProblem,
--- operation [1] InvokeId,
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-abandonFailed
---}
-
AbandonFailedError ::= CHOICE {
unsignedAbandonFailedError AbandonFailedErrorData,
signedAbandonFailedError SEQUENCE {
@@ -1064,6 +1070,18 @@ AbandonFailedError ::= CHOICE {
AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)}
+attributeError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- AttributeError
+-- {SET {object [0] Name,
+-- problems
+-- [1] SET OF
+-- SEQUENCE {problem [0] AttributeProblem,
+-- type [1] AttributeType,
+-- value [2] AttributeValue OPTIONAL},
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-attributeError
+}
+
AttributeErrorData ::= SET {
object [0] Name,
problems
@@ -1074,22 +1092,9 @@ AttributeErrorData ::= SET {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
-
---attributeError ERROR ::= {
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {object [0] Name,
--- problems
--- [1] SET OF
--- SEQUENCE {problem [0] AttributeProblem,
--- type [1] AttributeType,
--- value [2] AttributeValue OPTIONAL},
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-attributeError
---}
-
AttributeError ::= CHOICE {
unsignedAttributeError AttributeErrorData,
signedAttributeError SEQUENCE {
@@ -1104,6 +1109,13 @@ AttributeProblem ::= INTEGER {
undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5),
attributeOrValueAlreadyExists(6), contextViolation(7)}
+nameError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- NameError
+-- {SET {problem [0] NameProblem,
+-- matched [1] Name,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-nameError
+}
NameErrorData ::= SET {
problem [0] NameProblem,
@@ -1111,16 +1123,9 @@ NameErrorData ::= SET {
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
---nameError ERROR ::= {
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {problem [0] NameProblem,
--- matched [1] Name,
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-nameError
---}
NameError ::= CHOICE {
unsignedNameError NameErrorData,
@@ -1131,27 +1136,26 @@ NameError ::= CHOICE {
}
}
-
NameProblem ::= INTEGER {
noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3),
aliasDereferencingProblem(4), contextProblem(5)}
+referral ERROR ::= { -- not literally an "error"
+ PARAMETER --OPTIONALLY-PROTECTED-- Referral
+-- {SET {candidate [0] ContinuationReference,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-referral
+}
+
ReferralData ::= SET {
candidate [0] ContinuationReference,
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
---referral ERROR ::= { - - not literally an "error"
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {candidate [0] ContinuationReference,
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-referral
---}
-
Referral ::= CHOICE {
unsignedReferral ReferralData,
signedReferral SEQUENCE {
@@ -1161,23 +1165,23 @@ Referral ::= CHOICE {
}
}
+securityError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- SecurityError
+-- {SET {problem [0] SecurityProblem,
+-- spkmInfo [1] SPKM-ERROR,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-securityError
+}
+
SecurityErrorData ::= SET {
problem [0] SecurityProblem,
spkmInfo [1] -- SPKM-ERROR -- ANY,
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
---securityError ERROR ::= {
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {problem [0] SecurityProblem,
--- spkmInfo [1] SPKM-ERROR,
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-securityError
---}
-
SecurityError ::= CHOICE {
unsignedSecurityError SecurityErrorData,
signedSecurityError SEQUENCE {
@@ -1194,22 +1198,22 @@ SecurityProblem ::= INTEGER {
noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9)
}
+
+serviceError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- ServiceError
+-- {SET {problem [0] ServiceProblem,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-serviceError
+}
+
ServiceErrorData ::= SET {
problem [0] ServiceProblem,
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
-
---serviceError ERROR ::= {
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {problem [0] ServiceProblem,
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-serviceError
---}
-
ServiceError ::= CHOICE {
unsignedServiceError ServiceErrorData,
signedServiceError SEQUENCE {
@@ -1228,29 +1232,30 @@ ServiceProblem ::= INTEGER {
invalidQueryReference(13), requestedServiceNotAvailable(14),
relaxationNotSupported(15), unsupportedMatchingUse(16)}
+
+updateError ERROR ::= {
+ PARAMETER --OPTIONALLY-PROTECTED-- UpdateError
+-- {SET {problem [0] UpdateProblem,
+-- attributeInfo
+-- [1] SET SIZE (1..MAX) OF
+-- CHOICE {attributeType AttributeType,
+-- attribute Attribute} OPTIONAL,
+-- COMPONENTS OF CommonResults}}
+ CODE id-errcode-updateError
+}
+
UpdateErrorData ::= SET {
problem [0] UpdateProblem,
attributeInfo
- [1] SET --SIZE (1..MAX)-- OF
+ [1] SET SIZE (1..MAX) OF
CHOICE {attributeType AttributeType,
attribute Attribute} OPTIONAL,
securityParameters [30] SecurityParameters OPTIONAL,
performer [29] DistinguishedName OPTIONAL,
aliasDereferenced [28] BOOLEAN DEFAULT FALSE,
- notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL
+ notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL
}
---updateError ERROR ::= {
--- PARAMETER OPTIONALLY-PROTECTED
--- {SET {problem [0] UpdateProblem,
--- attributeInfo
--- [1] SET SIZE (1..MAX) OF
--- CHOICE {attributeType AttributeType,
--- attribute Attribute} OPTIONAL,
--- COMPONENTS OF CommonResults}}
--- CODE id-errcode-updateError
---}
-
UpdateError ::= CHOICE {
unsignedUpdateError UpdateErrorData,
signedUpdateError SEQUENCE {
diff --git a/asn1/dap/dap.cnf b/asn1/dap/dap.cnf
index 21c7ecbd13..ed5cb71b06 100644
--- a/asn1/dap/dap.cnf
+++ b/asn1/dap/dap.cnf
@@ -9,17 +9,65 @@
#.MODULE_IMPORT
ServiceAdministration x509if
-
AttributeCertificateDefinitions x509af
-
BasicAccessControl crmf
-Remote-Operations-Information-Objects ros
+#.CLASS OBJECT-CLASS
+&Superclasses ClassReference OBJECT-CLASS
+&kind
+&MandatoryAttributes ClassReference ATTRIBUTE
+&OptionalAttributes ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS ATTRIBUTE
+&derivation ClassReference ATTRIBUTE
+&Type
+&equality-match ClassReference MATCHING-RULE
+&ordering-match ClassReference MATCHING-RULE
+&substrings-match ClassReference MATCHING-RULE
+&single-valued BooleanType
+&collective BooleanType
+&no-user-modification BooleanType
+&usage
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS CONTEXT
+&Type
+&Assertion
+&id ObjectIdentifierType
+#.END
+
+#.CLASS CONTRACT
+&connection ClassReference CONNECTION-PACKAGE
+&OperationsOf ClassReference OPERATION-PACKAGE
+&InitiatorConsumerOf ClassReference OPERATION-PACKAGE
+&InitiatorSupplierOf ClassReference OPERATION-PACKAGE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS APPLICATION-CONTEXT
+&bind-operation ClassReference OPERATION
+&Operations ClassReference OPERATION
+&applicationContextName ObjectIdentifierType
+#.END
+#.OMIT_ASSIGNMENT
+CommonArguments
+CommonResults
+CommonResultsSeq
+#.END
#.EXPORTS
Filter
-CommonResults
Referral
SecurityParameters
EntryModification
@@ -112,6 +160,59 @@ TokenData/time utctime
PagedResultsRequest/queryReference pagedResultsQueryReference
+EntryInformationSelection/extraAttributes/select extraSelect
+
+# This table creates the value_sting to name P7 operation codes and errors
+# in file packet-p7-table.c which is included in the template file
+#
+#.TABLE_HDR
+/* DAP OPERATIONS */
+const value_string dap_opr_code_string_vals[] = {
+#.TABLE_BODY OPERATION
+ { %(&operationCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+#.TABLE_HDR
+/* DAP ERRORS */
+static const value_string dap_err_code_string_vals[] = {
+#.TABLE_BODY ERROR
+ { %(&errorCode)s, "%(_ident)s" },
+#.TABLE_FTR
+ { 0, NULL }
+};
+#.END
+
+# Create a table of opcode and corresponding args and res
+#.TABLE11_HDR
+static const ros_opr_t dap_opr_tab[] = {
+#.TABLE11_BODY OPERATION
+ /* %(_name)s */
+ { %(&operationCode)-25s, %(_argument_pdu)s, %(_result_pdu)s },
+#.TABLE11_FTR
+ { 0, (new_dissector_t)(-1), (new_dissector_t)(-1) },
+};
+#.END
+
+#.TABLE21_HDR
+static const ros_err_t dap_err_tab[] = {
+#.TABLE21_BODY ERROR
+ /* %(_name)s*/
+ { %(&errorCode)s, %(_parameter_pdu)s },
+#.TABLE21_FTR
+ { 0, (new_dissector_t)(-1) },
+};
+#.END
+
+
+#.PDU_NEW
+ERROR.&ParameterType
+OPERATION.&ArgumentType
+OPERATION.&ResultType
+#.END
+
#.FN_BODY FilterItem/substrings/strings/_item/initial
proto_item *it;
it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
@@ -261,13 +362,3 @@ PagedResultsRequest/queryReference pagedResultsQueryReference
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", (dn && *dn) ? dn : "(root)");
}
-#.FN_BODY ListResultData/listInfo/subordinates/_item
- proto_item *sub_item;
-
- %(DEFAULT_BODY)s
-
- if((sub_item = get_ber_last_created_item())) {
-
- proto_item_append_text(sub_item," (%%s)", x509if_get_last_dn());
- }
-
diff --git a/asn1/dap/packet-dap-template.c b/asn1/dap/packet-dap-template.c
index 6d1cc51f7a..aa1d0128c4 100644
--- a/asn1/dap/packet-dap-template.c
+++ b/asn1/dap/packet-dap-template.c
@@ -74,203 +74,24 @@ static struct SESSION_DATA_STRUCTURE* session = NULL;
static gint ett_dap = -1;
#include "packet-dap-ett.c"
+#include "packet-dap-val.h"
+
+#include "packet-dap-table.c" /* operation and error codes */
+
#include "packet-dap-fn.c"
-/*
-* Dissect DAP PDUs inside a ROS PDUs
-*/
-static void
-dissect_dap(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 (*dap_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
- char *dap_op_name;
- asn1_ctx_t asn1_ctx;
-
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-
- /* 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_dap, tvb, 0, -1, FALSE);
- tree = proto_item_add_subtree(item, ett_dap);
- }
- if (check_col(pinfo->cinfo, COL_PROTOCOL))
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "DAP");
- 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 */
- dap_dissector = dissect_dap_DirectoryBindArgument;
- dap_op_name = "Bind-Argument";
- break;
- case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
- dap_dissector = dissect_dap_DirectoryBindResult;
- dap_op_name = "Bind-Result";
- break;
- case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
- dap_dissector = dissect_dap_DirectoryBindError;
- dap_op_name = "Bind-Error";
- break;
- case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
- switch(session->ros_op & ROS_OP_OPCODE_MASK) {
- case 1: /* read */
- dap_dissector = dissect_dap_ReadArgument;
- dap_op_name = "Read-Argument";
- break;
- case 2: /* compare */
- dap_dissector = dissect_dap_CompareArgument;
- dap_op_name = "Compare-Argument";
- break;
- case 3: /* abandon */
- dap_dissector = dissect_dap_AbandonArgument;
- dap_op_name = "Abandon-Argument";
- break;
- case 4: /* list */
- dap_dissector = dissect_dap_ListArgument;
- dap_op_name = "List-Argument";
- break;
- case 5: /* search */
- dap_dissector = dissect_dap_SearchArgument;
- dap_op_name = "Search-Argument";
- break;
- case 6: /* addEntry */
- dap_dissector = dissect_dap_AddEntryArgument;
- dap_op_name = "Add-Entry-Argument";
- break;
- case 7: /* removeEntry */
- dap_dissector = dissect_dap_RemoveEntryArgument;
- dap_op_name = "Remove-Entry-Argument";
- break;
- case 8: /* modifyEntry */
- dap_dissector = dissect_dap_ModifyEntryArgument;
- dap_op_name = "Modify-Entry-Argument";
- break;
- case 9: /* modifyDN */
- dap_dissector = dissect_dap_ModifyDNArgument;
- dap_op_name = "Modify-DN-Argument";
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP 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 1: /* read */
- dap_dissector = dissect_dap_ReadResult;
- dap_op_name = "Read-Result";
- break;
- case 2: /* compare */
- dap_dissector = dissect_dap_CompareResult;
- dap_op_name = "Compare-Result";
- break;
- case 3: /* abandon */
- dap_dissector = dissect_dap_AbandonResult;
- dap_op_name = "Abandon-Result";
- break;
- case 4: /* list */
- dap_dissector = dissect_dap_ListResult;
- dap_op_name = "List-Result";
- break;
- case 5: /* search */
- dap_dissector = dissect_dap_SearchResult;
- dap_op_name = "Search-Result";
- break;
- case 6: /* addEntry */
- dap_dissector = dissect_dap_AddEntryResult;
- dap_op_name = "Add-Entry-Result";
- break;
- case 7: /* removeEntry */
- dap_dissector = dissect_dap_RemoveEntryResult;
- dap_op_name = "Remove-Entry-Result";
- break;
- case 8: /* modifyEntry */
- dap_dissector = dissect_dap_ModifyEntryResult;
- dap_op_name = "Modify-Entry-Result";
- break;
- case 9: /* modifyDN */
- dap_dissector = dissect_dap_ModifyDNResult;
- dap_op_name = "Modify-DN-Result";
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP opcode");
- break;
- }
- break;
- case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
- switch(session->ros_op & ROS_OP_OPCODE_MASK) {
- case 1: /* attributeError */
- dap_dissector = dissect_dap_AttributeError;
- dap_op_name = "Attribute-Error";
- break;
- case 2: /* nameError */
- dap_dissector = dissect_dap_NameError;
- dap_op_name = "Name-Error";
- break;
- case 3: /* serviceError */
- dap_dissector = dissect_dap_ServiceError;
- dap_op_name = "Service-Error";
- break;
- case 4: /* referral */
- dap_dissector = dissect_dap_Referral;
- dap_op_name = "Referral";
- break;
- case 5: /* abandoned */
- dap_dissector = dissect_dap_Abandoned;
- dap_op_name = "Abandoned";
- break;
- case 6: /* securityError */
- dap_dissector = dissect_dap_SecurityError;
- dap_op_name = "Security-Error";
- break;
- case 7: /* abandonFailed */
- dap_dissector = dissect_dap_AbandonFailedError;
- dap_op_name = "Abandon-Failed-Error";
- break;
- case 8: /* updateError */
- dap_dissector = dissect_dap_UpdateError;
- dap_op_name = "Update-Error";
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP errcode");
- break;
- }
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP PDU");
- return;
- }
-
- if(dap_dissector) {
- if (check_col(pinfo->cinfo, COL_INFO))
- col_set_str(pinfo->cinfo, COL_INFO, dap_op_name);
-
- while (tvb_reported_length_remaining(tvb, offset) > 0){
- old_offset=offset;
- offset=(*dap_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
- if(offset == old_offset){
- proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DAP PDU");
- offset = tvb_length(tvb);
- break;
- }
- }
- }
-}
+#include "packet-dap-table11.c" /* operation argument/result dissectors */
+#include "packet-dap-table21.c" /* error dissector */
+
+static const ros_info_t dap_ros_info = {
+ "DAP",
+ &proto_dap,
+ &ett_dap,
+ dap_opr_code_string_vals,
+ dap_opr_tab,
+ dap_err_code_string_vals,
+ dap_err_tab
+};
/*--- proto_register_dap -------------------------------------------*/
@@ -291,7 +112,6 @@ void proto_register_dap(void) {
/* Register protocol */
proto_dap = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("dap", dissect_dap, proto_dap);
/* Register fields and subtrees */
proto_register_field_array(proto_dap, hf, array_length(hf));
@@ -299,11 +119,7 @@ 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"
@@ -326,9 +142,7 @@ void proto_reg_handoff_dap(void) {
/* ABSTRACT SYNTAXES */
/* Register DAP with ROS (with no use of RTSE) */
- if((handle = find_dissector("dap"))) {
- register_ros_oid_dissector_handle("2.5.9.1", handle, 0, "id-as-directory-access", FALSE);
- }
+ register_ros_protocol_info("2.5.9.1", &dap_ros_info, 0, "id-as-directory-access", FALSE);
/* remember the tpkt handler for change in preferences */
tpkt_handle = find_dissector("tpkt");
diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c
index 6e70323d60..b2a79dd2f0 100644
--- a/epan/dissectors/packet-dap.c
+++ b/epan/dissectors/packet-dap.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dap.c */
-/* ../../tools/asn2wrs.py -b -e -X -T -p dap -c dap.cnf -s packet-dap-template dap.asn */
+/* ../../tools/asn2wrs.py -b -e -X -T -L -p dap -c dap.cnf -s packet-dap-template dap.asn DirectoryAccessProtocol.asn */
/* Input file: packet-dap-template.c */
@@ -79,11 +79,35 @@ static struct SESSION_DATA_STRUCTURE* session = NULL;
/*--- Included file: packet-dap-hf.c ---*/
#line 1 "packet-dap-hf.c"
-static int hf_dap_securityParameters = -1; /* SecurityParameters */
-static int hf_dap_performer = -1; /* DistinguishedName */
-static int hf_dap_aliasDereferenced = -1; /* BOOLEAN */
-static int hf_dap_notification = -1; /* SEQUENCE_OF_Attribute */
-static int hf_dap_notification_item = -1; /* Attribute */
+static int hf_dap_DirectoryBindArgument_PDU = -1; /* DirectoryBindArgument */
+static int hf_dap_DirectoryBindResult_PDU = -1; /* DirectoryBindResult */
+static int hf_dap_DirectoryBindError_PDU = -1; /* DirectoryBindError */
+static int hf_dap_ReadArgument_PDU = -1; /* ReadArgument */
+static int hf_dap_ReadResult_PDU = -1; /* ReadResult */
+static int hf_dap_CompareArgument_PDU = -1; /* CompareArgument */
+static int hf_dap_CompareResult_PDU = -1; /* CompareResult */
+static int hf_dap_AbandonArgument_PDU = -1; /* AbandonArgument */
+static int hf_dap_AbandonResult_PDU = -1; /* AbandonResult */
+static int hf_dap_ListArgument_PDU = -1; /* ListArgument */
+static int hf_dap_ListResult_PDU = -1; /* ListResult */
+static int hf_dap_SearchArgument_PDU = -1; /* SearchArgument */
+static int hf_dap_SearchResult_PDU = -1; /* SearchResult */
+static int hf_dap_AddEntryArgument_PDU = -1; /* AddEntryArgument */
+static int hf_dap_AddEntryResult_PDU = -1; /* AddEntryResult */
+static int hf_dap_RemoveEntryArgument_PDU = -1; /* RemoveEntryArgument */
+static int hf_dap_RemoveEntryResult_PDU = -1; /* RemoveEntryResult */
+static int hf_dap_ModifyEntryArgument_PDU = -1; /* ModifyEntryArgument */
+static int hf_dap_ModifyEntryResult_PDU = -1; /* ModifyEntryResult */
+static int hf_dap_ModifyDNArgument_PDU = -1; /* ModifyDNArgument */
+static int hf_dap_ModifyDNResult_PDU = -1; /* ModifyDNResult */
+static int hf_dap_Abandoned_PDU = -1; /* Abandoned */
+static int hf_dap_AbandonFailedError_PDU = -1; /* AbandonFailedError */
+static int hf_dap_AttributeError_PDU = -1; /* AttributeError */
+static int hf_dap_NameError_PDU = -1; /* NameError */
+static int hf_dap_Referral_PDU = -1; /* Referral */
+static int hf_dap_SecurityError_PDU = -1; /* SecurityError */
+static int hf_dap_ServiceError_PDU = -1; /* ServiceError */
+static int hf_dap_UpdateError_PDU = -1; /* UpdateError */
static int hf_dap_options = -1; /* ServiceControlOptions */
static int hf_dap_priority = -1; /* T_priority */
static int hf_dap_timeLimit = -1; /* INTEGER */
@@ -102,11 +126,13 @@ static int hf_dap_select_item = -1; /* AttributeType */
static int hf_dap_infoTypes = -1; /* T_infoTypes */
static int hf_dap_extraAttributes = -1; /* T_extraAttributes */
static int hf_dap_allOperationalAttributes = -1; /* NULL */
+static int hf_dap_extraSelect = -1; /* SET_SIZE_1_MAX_OF_AttributeType */
+static int hf_dap_extraSelect_item = -1; /* AttributeType */
static int hf_dap_contextSelection = -1; /* ContextSelection */
static int hf_dap_returnContexts = -1; /* BOOLEAN */
static int hf_dap_familyReturn = -1; /* FamilyReturn */
static int hf_dap_allContexts = -1; /* NULL */
-static int hf_dap_selectedContexts = -1; /* SET_OF_TypeAndContextAssertion */
+static int hf_dap_selectedContexts = -1; /* SET_SIZE_1_MAX_OF_TypeAndContextAssertion */
static int hf_dap_selectedContexts_item = -1; /* TypeAndContextAssertion */
static int hf_dap_type = -1; /* AttributeType */
static int hf_dap_contextAssertions = -1; /* T_contextAssertions */
@@ -132,7 +158,7 @@ static int hf_dap_familyEntries_item = -1; /* FamilyEntry */
static int hf_dap_rdn = -1; /* RelativeDistinguishedName */
static int hf_dap_family_information = -1; /* FamilyInformation */
static int hf_dap_family_information_item = -1; /* T_family_information_item */
-static int hf_dap_family_info = -1; /* SEQUENCE_OF_FamilyEntries */
+static int hf_dap_family_info = -1; /* SEQUENCE_SIZE_1_MAX_OF_FamilyEntries */
static int hf_dap_family_info_item = -1; /* FamilyEntries */
static int hf_dap_filter_item = -1; /* FilterItem */
static int hf_dap_and = -1; /* SetOfFilter */
@@ -160,7 +186,7 @@ static int hf_dap_matchValue = -1; /* T_matchValue */
static int hf_dap_dnAttributes = -1; /* BOOLEAN */
static int hf_dap_newRequest = -1; /* T_newRequest */
static int hf_dap_pageSize = -1; /* INTEGER */
-static int hf_dap_sortKeys = -1; /* SEQUENCE_OF_SortKey */
+static int hf_dap_sortKeys = -1; /* SEQUENCE_SIZE_1_MAX_OF_SortKey */
static int hf_dap_sortKeys_item = -1; /* SortKey */
static int hf_dap_reverse = -1; /* BOOLEAN */
static int hf_dap_unmerged = -1; /* BOOLEAN */
@@ -210,16 +236,17 @@ static int hf_dap_bindConfAlgorithm_item = -1; /* AlgorithmIdentifier */
static int hf_dap_bindConfKeyInfo = -1; /* BindKeyInfo */
static int hf_dap_token_data = -1; /* TokenData */
static int hf_dap_algorithm_identifier = -1; /* AlgorithmIdentifier */
-static int hf_dap_error = -1; /* T_error */
-static int hf_dap_serviceProblem = -1; /* ServiceProblem */
-static int hf_dap_securityProblem = -1; /* SecurityProblem */
static int hf_dap_unsignedDirectoryBindError = -1; /* DirectoryBindErrorData */
static int hf_dap_signedDirectoryBindError = -1; /* T_signedDirectoryBindError */
static int hf_dap_directoryBindError = -1; /* DirectoryBindErrorData */
+static int hf_dap_error = -1; /* T_error */
+static int hf_dap_serviceProblem = -1; /* ServiceProblem */
+static int hf_dap_securityProblem = -1; /* SecurityProblem */
static int hf_dap_object = -1; /* Name */
static int hf_dap_selection = -1; /* EntryInformationSelection */
static int hf_dap_modifyRightsRequest = -1; /* BOOLEAN */
static int hf_dap_serviceControls = -1; /* ServiceControls */
+static int hf_dap_securityParameters = -1; /* SecurityParameters */
static int hf_dap_requestor = -1; /* DistinguishedName */
static int hf_dap_operationProgress = -1; /* OperationProgress */
static int hf_dap_aliasedRDNs = -1; /* INTEGER */
@@ -235,6 +262,10 @@ static int hf_dap_signedReadArgument = -1; /* T_signedReadArgument */
static int hf_dap_readArgument = -1; /* ReadArgumentData */
static int hf_dap_entry = -1; /* EntryInformation */
static int hf_dap_modifyRights = -1; /* ModifyRights */
+static int hf_dap_performer = -1; /* DistinguishedName */
+static int hf_dap_aliasDereferenced = -1; /* BOOLEAN */
+static int hf_dap_notification = -1; /* SEQUENCE_SIZE_1_MAX_OF_Attribute */
+static int hf_dap_notification_item = -1; /* Attribute */
static int hf_dap_unsignedReadResult = -1; /* ReadResultData */
static int hf_dap_signedReadResult = -1; /* T_signedReadResult */
static int hf_dap_readResult = -1; /* ReadResultData */
@@ -278,7 +309,7 @@ static int hf_dap_unsignedListResult = -1; /* ListResultData */
static int hf_dap_signedListResult = -1; /* T_signedListResult */
static int hf_dap_listResult = -1; /* ListResultData */
static int hf_dap_limitProblem = -1; /* LimitProblem */
-static int hf_dap_unexplored = -1; /* SET_OF_ContinuationReference */
+static int hf_dap_unexplored = -1; /* SET_SIZE_1_MAX_OF_ContinuationReference */
static int hf_dap_unexplored_item = -1; /* ContinuationReference */
static int hf_dap_unavailableCriticalExtensions = -1; /* BOOLEAN */
static int hf_dap_unknownErrors = -1; /* T_unknownErrors */
@@ -309,12 +340,12 @@ static int hf_dap_joinBaseObject = -1; /* Name */
static int hf_dap_domainLocalID = -1; /* DomainLocalID */
static int hf_dap_joinSubset = -1; /* T_joinSubset */
static int hf_dap_joinFilter = -1; /* Filter */
-static int hf_dap_joinAttributes = -1; /* SEQUENCE_OF_JoinAttPair */
+static int hf_dap_joinAttributes = -1; /* SEQUENCE_SIZE_1_MAX_OF_JoinAttPair */
static int hf_dap_joinAttributes_item = -1; /* JoinAttPair */
static int hf_dap_joinSelection = -1; /* EntryInformationSelection */
static int hf_dap_baseAtt = -1; /* AttributeType */
static int hf_dap_joinAtt = -1; /* AttributeType */
-static int hf_dap_joinContext = -1; /* SEQUENCE_OF_JoinContextType */
+static int hf_dap_joinContext = -1; /* SEQUENCE_SIZE_1_MAX_OF_JoinContextType */
static int hf_dap_joinContext_item = -1; /* JoinContextType */
static int hf_dap_searchInfo = -1; /* T_searchInfo */
static int hf_dap_entries = -1; /* SET_OF_EntryInformation */
@@ -453,8 +484,6 @@ static gint ett_dap = -1;
/*--- Included file: packet-dap-ett.c ---*/
#line 1 "packet-dap-ett.c"
-static gint ett_dap_CommonResults = -1;
-static gint ett_dap_SEQUENCE_OF_Attribute = -1;
static gint ett_dap_ServiceControls = -1;
static gint ett_dap_T_manageDSAITPlaneRef = -1;
static gint ett_dap_ServiceControlOptions = -1;
@@ -462,8 +491,9 @@ static gint ett_dap_EntryInformationSelection = -1;
static gint ett_dap_T_attributes = -1;
static gint ett_dap_SET_OF_AttributeType = -1;
static gint ett_dap_T_extraAttributes = -1;
+static gint ett_dap_SET_SIZE_1_MAX_OF_AttributeType = -1;
static gint ett_dap_ContextSelection = -1;
-static gint ett_dap_SET_OF_TypeAndContextAssertion = -1;
+static gint ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion = -1;
static gint ett_dap_TypeAndContextAssertion = -1;
static gint ett_dap_T_contextAssertions = -1;
static gint ett_dap_SEQUENCE_OF_ContextAssertion = -1;
@@ -478,7 +508,7 @@ static gint ett_dap_SEQUENCE_OF_FamilyEntry = -1;
static gint ett_dap_FamilyEntry = -1;
static gint ett_dap_FamilyInformation = -1;
static gint ett_dap_T_family_information_item = -1;
-static gint ett_dap_SEQUENCE_OF_FamilyEntries = -1;
+static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries = -1;
static gint ett_dap_Filter = -1;
static gint ett_dap_SetOfFilter = -1;
static gint ett_dap_FilterItem = -1;
@@ -489,7 +519,7 @@ static gint ett_dap_MatchingRuleAssertion = -1;
static gint ett_dap_T_matchingRule = -1;
static gint ett_dap_PagedResultsRequest = -1;
static gint ett_dap_T_newRequest = -1;
-static gint ett_dap_SEQUENCE_OF_SortKey = -1;
+static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey = -1;
static gint ett_dap_SortKey = -1;
static gint ett_dap_SecurityParameters = -1;
static gint ett_dap_Time = -1;
@@ -507,15 +537,16 @@ static gint ett_dap_TokenData = -1;
static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier = -1;
static gint ett_dap_Token = -1;
static gint ett_dap_Versions = -1;
-static gint ett_dap_DirectoryBindErrorData = -1;
-static gint ett_dap_T_error = -1;
static gint ett_dap_DirectoryBindError = -1;
static gint ett_dap_T_signedDirectoryBindError = -1;
+static gint ett_dap_DirectoryBindErrorData = -1;
+static gint ett_dap_T_error = -1;
static gint ett_dap_ReadArgumentData = -1;
static gint ett_dap_Name = -1;
static gint ett_dap_ReadArgument = -1;
static gint ett_dap_T_signedReadArgument = -1;
static gint ett_dap_ReadResultData = -1;
+static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute = -1;
static gint ett_dap_ReadResult = -1;
static gint ett_dap_T_signedReadResult = -1;
static gint ett_dap_ModifyRights = -1;
@@ -546,7 +577,7 @@ static gint ett_dap_SET_OF_ListResult = -1;
static gint ett_dap_ListResult = -1;
static gint ett_dap_T_signedListResult = -1;
static gint ett_dap_PartialOutcomeQualifier = -1;
-static gint ett_dap_SET_OF_ContinuationReference = -1;
+static gint ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference = -1;
static gint ett_dap_T_unknownErrors = -1;
static gint ett_dap_T_entryCount = -1;
static gint ett_dap_SearchArgumentData = -1;
@@ -556,9 +587,9 @@ static gint ett_dap_T_signedSearchArgument = -1;
static gint ett_dap_HierarchySelections = -1;
static gint ett_dap_SearchControlOptions = -1;
static gint ett_dap_JoinArgument = -1;
-static gint ett_dap_SEQUENCE_OF_JoinAttPair = -1;
+static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair = -1;
static gint ett_dap_JoinAttPair = -1;
-static gint ett_dap_SEQUENCE_OF_JoinContextType = -1;
+static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType = -1;
static gint ett_dap_SearchResultData = -1;
static gint ett_dap_T_searchInfo = -1;
static gint ett_dap_SET_OF_EntryInformation = -1;
@@ -627,6 +658,69 @@ static gint ett_dap_T_signedUpdateError = -1;
#line 76 "packet-dap-template.c"
+/*--- Included file: packet-dap-val.h ---*/
+#line 1 "packet-dap-val.h"
+#define id_opcode_read 1
+#define id_opcode_compare 2
+#define id_opcode_abandon 3
+#define id_opcode_list 4
+#define id_opcode_search 5
+#define id_opcode_addEntry 6
+#define id_opcode_removeEntry 7
+#define id_opcode_modifyEntry 8
+#define id_opcode_modifyDN 9
+#define id_errcode_attributeError 1
+#define id_errcode_nameError 2
+#define id_errcode_serviceError 3
+#define id_errcode_referral 4
+#define id_errcode_abandoned 5
+#define id_errcode_securityError 6
+#define id_errcode_abandonFailed 7
+#define id_errcode_updateError 8
+#define id_errcode_dsaReferral 9
+
+/*--- End of included file: packet-dap-val.h ---*/
+#line 78 "packet-dap-template.c"
+
+
+/*--- Included file: packet-dap-table.c ---*/
+#line 1 "packet-dap-table.c"
+
+/* DAP OPERATIONS */
+const value_string dap_opr_code_string_vals[] = {
+ { op_ros_bind, "directoryBind" },
+ { id_opcode_read, "read" },
+ { id_opcode_compare, "compare" },
+ { id_opcode_abandon, "abandon" },
+ { id_opcode_list, "list" },
+ { id_opcode_search, "search" },
+ { id_opcode_addEntry, "addEntry" },
+ { id_opcode_removeEntry, "removeEntry" },
+ { id_opcode_modifyEntry, "modifyEntry" },
+ { id_opcode_modifyDN, "modifyDN" },
+ { 0, NULL }
+};
+
+
+/* DAP ERRORS */
+static const value_string dap_err_code_string_vals[] = {
+ { err_ros_bind, "directoryBindError" },
+ { id_errcode_abandoned, "abandoned" },
+ { id_errcode_abandonFailed, "abandonFailed" },
+ { id_errcode_attributeError, "attributeError" },
+ { id_errcode_nameError, "nameError" },
+ { id_errcode_referral, "referral" },
+ { id_errcode_securityError, "securityError" },
+ { id_errcode_serviceError, "serviceError" },
+ { id_errcode_updateError, "updateError" },
+ { 0, NULL }
+};
+
+
+/*--- End of included file: packet-dap-table.c ---*/
+#line 80 "packet-dap-template.c"
+
+
/*--- Included file: packet-dap-fn.c ---*/
#line 1 "packet-dap-fn.c"
/*--- Cyclic dependencies ---*/
@@ -666,157 +760,6 @@ dissect_dap_FamilyGrouping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
-
-static int
-dissect_dap_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
- actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_dap_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
-
- return offset;
-}
-
-
-static const value_string dap_Time_vals[] = {
- { 0, "utcTime" },
- { 1, "generalizedTime" },
- { 0, NULL }
-};
-
-static const ber_choice_t Time_choice[] = {
- { 0, &hf_dap_utcTime , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
- { 1, &hf_dap_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
- { 0, NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_dap_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(actx, tree, tvb, offset,
- Time_choice, hf_index, ett_dap_Time,
- NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_dap_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
- NULL, hf_index, -1,
- NULL);
-
- return offset;
-}
-
-
-static const value_string dap_ProtectionRequest_vals[] = {
- { 0, "none" },
- { 1, "signed" },
- { 2, "encrypted" },
- { 3, "signed-encrypted" },
- { 0, NULL }
-};
-
-
-static int
-dissect_dap_ProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const value_string dap_ErrorProtectionRequest_vals[] = {
- { 0, "none" },
- { 1, "signed" },
- { 2, "encrypted" },
- { 3, "signed-encrypted" },
- { 0, NULL }
-};
-
-
-static int
-dissect_dap_ErrorProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const ber_sequence_t SecurityParameters_set[] = {
- { &hf_dap_certification_path, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509af_CertificationPath },
- { &hf_dap_distinguished_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
- { &hf_dap_time , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Time },
- { &hf_dap_random , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
- { &hf_dap_target , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_ProtectionRequest },
- { &hf_dap_response , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
- { &hf_dap_operationCode , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_ros_Code },
- { &hf_dap_attributeCertificationPath, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509af_AttributeCertificationPath },
- { &hf_dap_errorProtection , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_ErrorProtectionRequest },
- { &hf_dap_errorCode , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ros_Code },
- { NULL, 0, 0, 0, NULL }
-};
-
-int
-dissect_dap_SecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- SecurityParameters_set, hf_index, ett_dap_SecurityParameters);
-
- return offset;
-}
-
-
-
-static int
-dissect_dap_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
-
- return offset;
-}
-
-
-static const ber_sequence_t SEQUENCE_OF_Attribute_sequence_of[1] = {
- { &hf_dap_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
-};
-
-static int
-dissect_dap_SEQUENCE_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_Attribute_sequence_of, hf_index, ett_dap_SEQUENCE_OF_Attribute);
-
- return offset;
-}
-
-
-static const ber_sequence_t CommonResults_set[] = {
- { &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
- { &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
- { &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
- { NULL, 0, 0, 0, NULL }
-};
-
-int
-dissect_dap_CommonResults(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- CommonResults_set, hf_index, ett_dap_CommonResults);
-
- return offset;
-}
-
-
static const asn_namedbit ServiceControlOptions_bits[] = {
{ 0, &hf_dap_ServiceControlOptions_preferChaining, -1, -1, "preferChaining", NULL },
{ 1, &hf_dap_ServiceControlOptions_chainingProhibited, -1, -1, "chainingProhibited", NULL },
@@ -898,7 +841,6 @@ static const ber_choice_t Name_choice[] = {
static int
dissect_dap_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 255 "dap.cnf"
const char *dn;
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -912,7 +854,6 @@ dissect_dap_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, a
}
-
return offset;
}
@@ -1023,6 +964,19 @@ dissect_dap_T_infoTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
+static const ber_sequence_t SET_SIZE_1_MAX_OF_AttributeType_set_of[1] = {
+ { &hf_dap_extraSelect_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
+};
+
+static int
+dissect_dap_SET_SIZE_1_MAX_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ SET_SIZE_1_MAX_OF_AttributeType_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_AttributeType);
+
+ return offset;
+}
+
+
static const value_string dap_T_extraAttributes_vals[] = {
{ 3, "allOperationalAttributes" },
{ 4, "select" },
@@ -1031,7 +985,7 @@ static const value_string dap_T_extraAttributes_vals[] = {
static const ber_choice_t T_extraAttributes_choice[] = {
{ 3, &hf_dap_allOperationalAttributes, BER_CLASS_CON, 3, 0, dissect_dap_NULL },
- { 4, &hf_dap_select , BER_CLASS_CON, 4, 0, dissect_dap_SET_OF_AttributeType },
+ { 4, &hf_dap_extraSelect , BER_CLASS_CON, 4, 0, dissect_dap_SET_SIZE_1_MAX_OF_AttributeType },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1108,14 +1062,14 @@ dissect_dap_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
}
-static const ber_sequence_t SET_OF_TypeAndContextAssertion_set_of[1] = {
+static const ber_sequence_t SET_SIZE_1_MAX_OF_TypeAndContextAssertion_set_of[1] = {
{ &hf_dap_selectedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_TypeAndContextAssertion },
};
static int
-dissect_dap_SET_OF_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_TypeAndContextAssertion_set_of, hf_index, ett_dap_SET_OF_TypeAndContextAssertion);
+ SET_SIZE_1_MAX_OF_TypeAndContextAssertion_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion);
return offset;
}
@@ -1129,7 +1083,7 @@ const value_string dap_ContextSelection_vals[] = {
static const ber_choice_t ContextSelection_choice[] = {
{ 0, &hf_dap_allContexts , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_dap_NULL },
- { 1, &hf_dap_selectedContexts, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SET_OF_TypeAndContextAssertion },
+ { 1, &hf_dap_selectedContexts, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1143,6 +1097,15 @@ dissect_dap_ContextSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
}
+
+static int
+dissect_dap_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
static const value_string dap_T_memberSelect_vals[] = {
{ 1, "contributingEntriesOnly" },
{ 2, "participatingEntriesOnly" },
@@ -1296,14 +1259,14 @@ dissect_dap_FamilyInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SEQUENCE_OF_FamilyEntries_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_FamilyEntries_sequence_of[1] = {
{ &hf_dap_family_info_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyEntries },
};
static int
-dissect_dap_SEQUENCE_OF_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_FamilyEntries_sequence_of, hf_index, ett_dap_SEQUENCE_OF_FamilyEntries);
+ SEQUENCE_SIZE_1_MAX_OF_FamilyEntries_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries);
return offset;
}
@@ -1312,7 +1275,7 @@ dissect_dap_SEQUENCE_OF_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _
static const ber_sequence_t FamilyEntry_sequence[] = {
{ &hf_dap_rdn , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_RelativeDistinguishedName },
{ &hf_dap_family_information, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_FamilyInformation },
- { &hf_dap_family_info , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_FamilyEntries },
+ { &hf_dap_family_info , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries },
{ NULL, 0, 0, 0, NULL }
};
@@ -1356,13 +1319,11 @@ dissect_dap_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
dissect_dap_T_initial(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 116 "dap.cnf"
proto_item *it;
it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
proto_item_append_text(it," XXX: Not yet implemented!");
-
return offset;
}
@@ -1370,11 +1331,9 @@ dissect_dap_T_initial(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_dap_T_any(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 121 "dap.cnf"
/* XXX: not yet implemented */
-
return offset;
}
@@ -1382,11 +1341,9 @@ dissect_dap_T_any(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_dap_T_final(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 124 "dap.cnf"
/* XXX: not yet implemented */
-
return offset;
}
@@ -1461,11 +1418,9 @@ dissect_dap_T_matchingRule(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_dap_T_matchValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 127 "dap.cnf"
/* XXX: not yet implemented */
-
return offset;
}
@@ -1575,14 +1530,14 @@ dissect_dap_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
}
-static const ber_sequence_t SEQUENCE_OF_SortKey_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_SortKey_sequence_of[1] = {
{ &hf_dap_sortKeys_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_SortKey },
};
static int
-dissect_dap_SEQUENCE_OF_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_SortKey_sequence_of, hf_index, ett_dap_SEQUENCE_OF_SortKey);
+ SEQUENCE_SIZE_1_MAX_OF_SortKey_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey);
return offset;
}
@@ -1590,7 +1545,7 @@ dissect_dap_SEQUENCE_OF_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static const ber_sequence_t T_newRequest_sequence[] = {
{ &hf_dap_pageSize , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_dap_INTEGER },
- { &hf_dap_sortKeys , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_SortKey },
+ { &hf_dap_sortKeys , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey },
{ &hf_dap_reverse , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
{ &hf_dap_unmerged , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
{ NULL, 0, 0, 0, NULL }
@@ -1608,7 +1563,6 @@ dissect_dap_T_newRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
dissect_dap_T_pagedResultsQueryReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 168 "dap.cnf"
tvbuff_t *out_tvb;
int i;
int len;
@@ -1637,7 +1591,6 @@ dissect_dap_T_pagedResultsQueryReference(gboolean implicit_tag _U_, tvbuff_t *tv
}
-
return offset;
}
@@ -1664,6 +1617,118 @@ dissect_dap_PagedResultsRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
+
+static int
+dissect_dap_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_dap_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string dap_Time_vals[] = {
+ { 0, "utcTime" },
+ { 1, "generalizedTime" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Time_choice[] = {
+ { 0, &hf_dap_utcTime , BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_dap_UTCTime },
+ { 1, &hf_dap_generalizedTime , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_dap_GeneralizedTime },
+ { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_dap_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_choice(actx, tree, tvb, offset,
+ Time_choice, hf_index, ett_dap_Time,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_dap_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ NULL, hf_index, -1,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string dap_ProtectionRequest_vals[] = {
+ { 0, "none" },
+ { 1, "signed" },
+ { 2, "encrypted" },
+ { 3, "signed-encrypted" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_dap_ProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string dap_ErrorProtectionRequest_vals[] = {
+ { 0, "none" },
+ { 1, "signed" },
+ { 2, "encrypted" },
+ { 3, "signed-encrypted" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_dap_ErrorProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SecurityParameters_set[] = {
+ { &hf_dap_certification_path, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509af_CertificationPath },
+ { &hf_dap_distinguished_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
+ { &hf_dap_time , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Time },
+ { &hf_dap_random , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
+ { &hf_dap_target , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_ProtectionRequest },
+ { &hf_dap_response , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_dap_BIT_STRING },
+ { &hf_dap_operationCode , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_ros_Code },
+ { &hf_dap_attributeCertificationPath, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509af_AttributeCertificationPath },
+ { &hf_dap_errorProtection , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dap_ErrorProtectionRequest },
+ { &hf_dap_errorCode , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ros_Code },
+ { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_dap_SecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+ SecurityParameters_set, hf_index, ett_dap_SecurityParameters);
+
+ return offset;
+}
+
+
static const value_string dap_T_time1_vals[] = {
{ 0, "utc" },
{ 1, "gt" },
@@ -1782,7 +1847,6 @@ static const ber_sequence_t SimpleCredentials_sequence[] = {
static int
dissect_dap_SimpleCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 158 "dap.cnf"
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SimpleCredentials_sequence, hf_index, ett_dap_SimpleCredentials);
@@ -1795,7 +1859,6 @@ dissect_dap_SimpleCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
-
return offset;
}
@@ -1891,11 +1954,9 @@ dissect_dap_EXTERNAL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_dap_T_req(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 130 "dap.cnf"
/* XXX: not yet implemented */
-
return offset;
}
@@ -1903,11 +1964,9 @@ dissect_dap_T_req(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_dap_T_rep(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 133 "dap.cnf"
/* XXX: not yet implemented */
-
return offset;
}
@@ -1984,7 +2043,6 @@ static const ber_sequence_t DirectoryBindArgument_set[] = {
int
dissect_dap_DirectoryBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 139 "dap.cnf"
guint32 len;
@@ -2006,7 +2064,6 @@ dissect_dap_DirectoryBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
-
return offset;
}
@@ -2043,7 +2100,6 @@ static const value_string dap_ServiceProblem_vals[] = {
static int
dissect_dap_ServiceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 209 "dap.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2055,7 +2111,6 @@ dissect_dap_ServiceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
-
return offset;
}
@@ -2076,7 +2131,6 @@ static const value_string dap_SecurityProblem_vals[] = {
static int
dissect_dap_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 197 "dap.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2088,7 +2142,6 @@ dissect_dap_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
}
-
return offset;
}
@@ -2303,13 +2356,26 @@ dissect_dap_ModifyRights(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of[1] = {
+ { &hf_dap_notification_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Attribute },
+};
+
+static int
+dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_MAX_OF_Attribute_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute);
+
+ return offset;
+}
+
+
static const ber_sequence_t ReadResultData_set[] = {
{ &hf_dap_entry , BER_CLASS_CON, 0, 0, dissect_dap_EntryInformation },
{ &hf_dap_modifyRights , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_ModifyRights },
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -2432,7 +2498,7 @@ static const ber_sequence_t CompareResultData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -2540,7 +2606,7 @@ static const ber_sequence_t AbandonResultData_sequence[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -2687,20 +2753,9 @@ static const ber_sequence_t T_subordinates_item_sequence[] = {
static int
dissect_dap_T_subordinates_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 265 "dap.cnf"
- proto_item *sub_item;
-
- offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
T_subordinates_item_sequence, hf_index, ett_dap_T_subordinates_item);
-
- if((sub_item = get_ber_last_created_item())) {
-
- proto_item_append_text(sub_item," (%s)", x509if_get_last_dn());
- }
-
-
-
return offset;
}
@@ -2728,7 +2783,6 @@ static const value_string dap_LimitProblem_vals[] = {
static int
dissect_dap_LimitProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 233 "dap.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2740,19 +2794,18 @@ dissect_dap_LimitProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
-
return offset;
}
-static const ber_sequence_t SET_OF_ContinuationReference_set_of[1] = {
+static const ber_sequence_t SET_SIZE_1_MAX_OF_ContinuationReference_set_of[1] = {
{ &hf_dap_unexplored_item , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_ContinuationReference },
};
static int
-dissect_dap_SET_OF_ContinuationReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_dap_SET_SIZE_1_MAX_OF_ContinuationReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_ContinuationReference_set_of, hf_index, ett_dap_SET_OF_ContinuationReference);
+ SET_SIZE_1_MAX_OF_ContinuationReference_set_of, hf_index, ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference);
return offset;
}
@@ -2795,12 +2848,12 @@ dissect_dap_T_entryCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static const ber_sequence_t PartialOutcomeQualifier_set[] = {
{ &hf_dap_limitProblem , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_LimitProblem },
- { &hf_dap_unexplored , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SET_OF_ContinuationReference },
+ { &hf_dap_unexplored , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SET_SIZE_1_MAX_OF_ContinuationReference },
{ &hf_dap_unavailableCriticalExtensions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
{ &hf_dap_unknownErrors , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dap_T_unknownErrors },
{ &hf_dap_queryReference , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_OCTET_STRING },
{ &hf_dap_overspecFilter , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
- { &hf_dap_notification , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ &hf_dap_entryCount , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dap_T_entryCount },
{ NULL, 0, 0, 0, NULL }
};
@@ -2821,7 +2874,7 @@ static const ber_sequence_t T_listInfo_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -2917,7 +2970,6 @@ static const value_string dap_T_subset_vals[] = {
static int
dissect_dap_T_subset(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 245 "dap.cnf"
guint32 subset;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -2930,7 +2982,6 @@ dissect_dap_T_subset(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
-
return offset;
}
@@ -3020,14 +3071,14 @@ dissect_dap_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
}
-static const ber_sequence_t SEQUENCE_OF_JoinContextType_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinContextType_sequence_of[1] = {
{ &hf_dap_joinContext_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_dap_JoinContextType },
};
static int
-dissect_dap_SEQUENCE_OF_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_JoinContextType_sequence_of, hf_index, ett_dap_SEQUENCE_OF_JoinContextType);
+ SEQUENCE_SIZE_1_MAX_OF_JoinContextType_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType);
return offset;
}
@@ -3036,7 +3087,7 @@ dissect_dap_SEQUENCE_OF_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb
static const ber_sequence_t JoinAttPair_sequence[] = {
{ &hf_dap_baseAtt , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
{ &hf_dap_joinAtt , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
- { &hf_dap_joinContext , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_OF_JoinContextType },
+ { &hf_dap_joinContext , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType },
{ NULL, 0, 0, 0, NULL }
};
@@ -3049,14 +3100,14 @@ dissect_dap_JoinAttPair(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-static const ber_sequence_t SEQUENCE_OF_JoinAttPair_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinAttPair_sequence_of[1] = {
{ &hf_dap_joinAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dap_JoinAttPair },
};
static int
-dissect_dap_SEQUENCE_OF_JoinAttPair(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_JoinAttPair_sequence_of, hf_index, ett_dap_SEQUENCE_OF_JoinAttPair);
+ SEQUENCE_SIZE_1_MAX_OF_JoinAttPair_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair);
return offset;
}
@@ -3067,7 +3118,7 @@ static const ber_sequence_t JoinArgument_sequence[] = {
{ &hf_dap_domainLocalID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_DomainLocalID },
{ &hf_dap_joinSubset , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_T_joinSubset },
{ &hf_dap_joinFilter , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_dap_Filter },
- { &hf_dap_joinAttributes , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_JoinAttPair },
+ { &hf_dap_joinAttributes , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair },
{ &hf_dap_joinSelection , BER_CLASS_CON, 5, 0, dissect_dap_EntryInformationSelection },
{ NULL, 0, 0, 0, NULL }
};
@@ -3209,7 +3260,7 @@ static const ber_sequence_t T_searchInfo_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -3377,7 +3428,7 @@ static const ber_sequence_t AddEntryResultData_sequence[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -3517,7 +3568,7 @@ static const ber_sequence_t RemoveEntryResultData_sequence[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -3703,7 +3754,7 @@ static const ber_sequence_t ModifyEntryResultData_sequence[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -3809,7 +3860,7 @@ static const ber_sequence_t ModifyDNResultData_sequence[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -3886,7 +3937,7 @@ static const ber_sequence_t AbandonedData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -3960,7 +4011,7 @@ static const ber_sequence_t AbandonFailedErrorData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4067,7 +4118,7 @@ static const ber_sequence_t AttributeErrorData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4143,7 +4194,7 @@ static const ber_sequence_t NameErrorData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4199,7 +4250,7 @@ static const ber_sequence_t ReferralData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4253,11 +4304,9 @@ dissect_dap_Referral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_dap_T_spkmInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 136 "dap.cnf"
/* XXX: not yet implemented */
-
return offset;
}
@@ -4268,7 +4317,7 @@ static const ber_sequence_t SecurityErrorData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4324,7 +4373,7 @@ static const ber_sequence_t ServiceErrorData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4394,7 +4443,6 @@ static const value_string dap_UpdateProblem_vals[] = {
static int
dissect_dap_UpdateProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 221 "dap.cnf"
guint32 problem;
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
@@ -4406,7 +4454,6 @@ dissect_dap_UpdateProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
}
-
return offset;
}
@@ -4452,7 +4499,7 @@ static const ber_sequence_t UpdateErrorData_set[] = {
{ &hf_dap_securityParameters, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_dap_SecurityParameters },
{ &hf_dap_performer , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dap_aliasDereferenced, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_dap_BOOLEAN },
- { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_OF_Attribute },
+ { &hf_dap_notification , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute },
{ NULL, 0, 0, 0, NULL }
};
@@ -4503,204 +4550,294 @@ dissect_dap_UpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-/*--- End of included file: packet-dap-fn.c ---*/
-#line 78 "packet-dap-template.c"
-/*
-* Dissect DAP PDUs inside a ROS PDUs
-*/
-static void
-dissect_dap(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 (*dap_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) = NULL;
- char *dap_op_name;
- asn1_ctx_t asn1_ctx;
-
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-
- /* 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) );
- }
+static int
+dissect_dap_DAP_InvokeIDSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ros_InvokeId(implicit_tag, tvb, offset, actx, tree, hf_index);
- if(parent_tree){
- item = proto_tree_add_item(parent_tree, proto_dap, tvb, 0, -1, FALSE);
- tree = proto_item_add_subtree(item, ett_dap);
- }
- if (check_col(pinfo->cinfo, COL_PROTOCOL))
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "DAP");
- 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 */
- dap_dissector = dissect_dap_DirectoryBindArgument;
- dap_op_name = "Bind-Argument";
- break;
- case (ROS_OP_BIND | ROS_OP_RESULT): /* BindResult */
- dap_dissector = dissect_dap_DirectoryBindResult;
- dap_op_name = "Bind-Result";
- break;
- case (ROS_OP_BIND | ROS_OP_ERROR): /* BindError */
- dap_dissector = dissect_dap_DirectoryBindError;
- dap_op_name = "Bind-Error";
- break;
- case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /* Invoke Argument */
- switch(session->ros_op & ROS_OP_OPCODE_MASK) {
- case 1: /* read */
- dap_dissector = dissect_dap_ReadArgument;
- dap_op_name = "Read-Argument";
- break;
- case 2: /* compare */
- dap_dissector = dissect_dap_CompareArgument;
- dap_op_name = "Compare-Argument";
- break;
- case 3: /* abandon */
- dap_dissector = dissect_dap_AbandonArgument;
- dap_op_name = "Abandon-Argument";
- break;
- case 4: /* list */
- dap_dissector = dissect_dap_ListArgument;
- dap_op_name = "List-Argument";
- break;
- case 5: /* search */
- dap_dissector = dissect_dap_SearchArgument;
- dap_op_name = "Search-Argument";
- break;
- case 6: /* addEntry */
- dap_dissector = dissect_dap_AddEntryArgument;
- dap_op_name = "Add-Entry-Argument";
- break;
- case 7: /* removeEntry */
- dap_dissector = dissect_dap_RemoveEntryArgument;
- dap_op_name = "Remove-Entry-Argument";
- break;
- case 8: /* modifyEntry */
- dap_dissector = dissect_dap_ModifyEntryArgument;
- dap_op_name = "Modify-Entry-Argument";
- break;
- case 9: /* modifyDN */
- dap_dissector = dissect_dap_ModifyDNArgument;
- dap_op_name = "Modify-DN-Argument";
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP 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 1: /* read */
- dap_dissector = dissect_dap_ReadResult;
- dap_op_name = "Read-Result";
- break;
- case 2: /* compare */
- dap_dissector = dissect_dap_CompareResult;
- dap_op_name = "Compare-Result";
- break;
- case 3: /* abandon */
- dap_dissector = dissect_dap_AbandonResult;
- dap_op_name = "Abandon-Result";
- break;
- case 4: /* list */
- dap_dissector = dissect_dap_ListResult;
- dap_op_name = "List-Result";
- break;
- case 5: /* search */
- dap_dissector = dissect_dap_SearchResult;
- dap_op_name = "Search-Result";
- break;
- case 6: /* addEntry */
- dap_dissector = dissect_dap_AddEntryResult;
- dap_op_name = "Add-Entry-Result";
- break;
- case 7: /* removeEntry */
- dap_dissector = dissect_dap_RemoveEntryResult;
- dap_op_name = "Remove-Entry-Result";
- break;
- case 8: /* modifyEntry */
- dap_dissector = dissect_dap_ModifyEntryResult;
- dap_op_name = "Modify-Entry-Result";
- break;
- case 9: /* modifyDN */
- dap_dissector = dissect_dap_ModifyDNResult;
- dap_op_name = "Modify-DN-Result";
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP opcode");
- break;
- }
- break;
- case (ROS_OP_INVOKE | ROS_OP_ERROR): /* Return Error */
- switch(session->ros_op & ROS_OP_OPCODE_MASK) {
- case 1: /* attributeError */
- dap_dissector = dissect_dap_AttributeError;
- dap_op_name = "Attribute-Error";
- break;
- case 2: /* nameError */
- dap_dissector = dissect_dap_NameError;
- dap_op_name = "Name-Error";
- break;
- case 3: /* serviceError */
- dap_dissector = dissect_dap_ServiceError;
- dap_op_name = "Service-Error";
- break;
- case 4: /* referral */
- dap_dissector = dissect_dap_Referral;
- dap_op_name = "Referral";
- break;
- case 5: /* abandoned */
- dap_dissector = dissect_dap_Abandoned;
- dap_op_name = "Abandoned";
- break;
- case 6: /* securityError */
- dap_dissector = dissect_dap_SecurityError;
- dap_op_name = "Security-Error";
- break;
- case 7: /* abandonFailed */
- dap_dissector = dissect_dap_AbandonFailedError;
- dap_op_name = "Abandon-Failed-Error";
- break;
- case 8: /* updateError */
- dap_dissector = dissect_dap_UpdateError;
- dap_op_name = "Update-Error";
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP errcode");
- break;
- }
- break;
- default:
- proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP PDU");
- return;
- }
+ return offset;
+}
- if(dap_dissector) {
- if (check_col(pinfo->cinfo, COL_INFO))
- col_set_str(pinfo->cinfo, COL_INFO, dap_op_name);
-
- while (tvb_reported_length_remaining(tvb, offset) > 0){
- old_offset=offset;
- offset=(*dap_dissector)(FALSE, tvb, offset, &asn1_ctx, tree, -1);
- if(offset == old_offset){
- proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DAP PDU");
- offset = tvb_length(tvb);
- break;
- }
- }
- }
+/*--- PDUs ---*/
+
+static int dissect_DirectoryBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_DirectoryBindArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindArgument_PDU);
+ return offset;
+}
+static int dissect_DirectoryBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_DirectoryBindResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindResult_PDU);
+ return offset;
+}
+static int dissect_DirectoryBindError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_DirectoryBindError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_DirectoryBindError_PDU);
+ return offset;
+}
+static int dissect_ReadArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ReadArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ReadArgument_PDU);
+ return offset;
+}
+static int dissect_ReadResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ReadResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ReadResult_PDU);
+ return offset;
+}
+static int dissect_CompareArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_CompareArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_CompareArgument_PDU);
+ return offset;
+}
+static int dissect_CompareResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_CompareResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_CompareResult_PDU);
+ return offset;
+}
+static int dissect_AbandonArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_AbandonArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonArgument_PDU);
+ return offset;
+}
+static int dissect_AbandonResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_AbandonResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonResult_PDU);
+ return offset;
}
+static int dissect_ListArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ListArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ListArgument_PDU);
+ return offset;
+}
+static int dissect_ListResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ListResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ListResult_PDU);
+ return offset;
+}
+static int dissect_SearchArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_SearchArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_SearchArgument_PDU);
+ return offset;
+}
+static int dissect_SearchResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_SearchResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_SearchResult_PDU);
+ return offset;
+}
+static int dissect_AddEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_AddEntryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AddEntryArgument_PDU);
+ return offset;
+}
+static int dissect_AddEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_AddEntryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AddEntryResult_PDU);
+ return offset;
+}
+static int dissect_RemoveEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_RemoveEntryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_RemoveEntryArgument_PDU);
+ return offset;
+}
+static int dissect_RemoveEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_RemoveEntryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_RemoveEntryResult_PDU);
+ return offset;
+}
+static int dissect_ModifyEntryArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ModifyEntryArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyEntryArgument_PDU);
+ return offset;
+}
+static int dissect_ModifyEntryResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ModifyEntryResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyEntryResult_PDU);
+ return offset;
+}
+static int dissect_ModifyDNArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ModifyDNArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyDNArgument_PDU);
+ return offset;
+}
+static int dissect_ModifyDNResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ModifyDNResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ModifyDNResult_PDU);
+ return offset;
+}
+static int dissect_Abandoned_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_Abandoned(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_Abandoned_PDU);
+ return offset;
+}
+static int dissect_AbandonFailedError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_AbandonFailedError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AbandonFailedError_PDU);
+ return offset;
+}
+static int dissect_AttributeError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_AttributeError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_AttributeError_PDU);
+ return offset;
+}
+static int dissect_NameError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_NameError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_NameError_PDU);
+ return offset;
+}
+static int dissect_Referral_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_Referral(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_Referral_PDU);
+ return offset;
+}
+static int dissect_SecurityError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_SecurityError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_SecurityError_PDU);
+ return offset;
+}
+static int dissect_ServiceError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_ServiceError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_ServiceError_PDU);
+ return offset;
+}
+static int dissect_UpdateError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ offset = dissect_dap_UpdateError(FALSE, tvb, offset, &asn1_ctx, tree, hf_dap_UpdateError_PDU);
+ return offset;
+}
+
+
+/*--- End of included file: packet-dap-fn.c ---*/
+#line 82 "packet-dap-template.c"
+
+
+/*--- Included file: packet-dap-table11.c ---*/
+#line 1 "packet-dap-table11.c"
+
+static const ros_opr_t dap_opr_tab[] = {
+ /* directoryBind */
+ { op_ros_bind , dissect_DirectoryBindArgument_PDU, dissect_DirectoryBindResult_PDU },
+ /* read */
+ { id_opcode_read , dissect_ReadArgument_PDU, dissect_ReadResult_PDU },
+ /* compare */
+ { id_opcode_compare , dissect_CompareArgument_PDU, dissect_CompareResult_PDU },
+ /* abandon */
+ { id_opcode_abandon , dissect_AbandonArgument_PDU, dissect_AbandonResult_PDU },
+ /* list */
+ { id_opcode_list , dissect_ListArgument_PDU, dissect_ListResult_PDU },
+ /* search */
+ { id_opcode_search , dissect_SearchArgument_PDU, dissect_SearchResult_PDU },
+ /* addEntry */
+ { id_opcode_addEntry , dissect_AddEntryArgument_PDU, dissect_AddEntryResult_PDU },
+ /* removeEntry */
+ { id_opcode_removeEntry , dissect_RemoveEntryArgument_PDU, dissect_RemoveEntryResult_PDU },
+ /* modifyEntry */
+ { id_opcode_modifyEntry , dissect_ModifyEntryArgument_PDU, dissect_ModifyEntryResult_PDU },
+ /* modifyDN */
+ { id_opcode_modifyDN , dissect_ModifyDNArgument_PDU, dissect_ModifyDNResult_PDU },
+ { 0, (new_dissector_t)(-1), (new_dissector_t)(-1) },
+};
+
+
+/*--- End of included file: packet-dap-table11.c ---*/
+#line 84 "packet-dap-template.c"
+
+/*--- Included file: packet-dap-table21.c ---*/
+#line 1 "packet-dap-table21.c"
+
+static const ros_err_t dap_err_tab[] = {
+ /* directoryBindError*/
+ { err_ros_bind, dissect_DirectoryBindError_PDU },
+ /* abandoned*/
+ { id_errcode_abandoned, dissect_Abandoned_PDU },
+ /* abandonFailed*/
+ { id_errcode_abandonFailed, dissect_AbandonFailedError_PDU },
+ /* attributeError*/
+ { id_errcode_attributeError, dissect_AttributeError_PDU },
+ /* nameError*/
+ { id_errcode_nameError, dissect_NameError_PDU },
+ /* referral*/
+ { id_errcode_referral, dissect_Referral_PDU },
+ /* securityError*/
+ { id_errcode_securityError, dissect_SecurityError_PDU },
+ /* serviceError*/
+ { id_errcode_serviceError, dissect_ServiceError_PDU },
+ /* updateError*/
+ { id_errcode_updateError, dissect_UpdateError_PDU },
+ { 0, (new_dissector_t)(-1) },
+};
+
+
+/*--- End of included file: packet-dap-table21.c ---*/
+#line 85 "packet-dap-template.c"
+
+static const ros_info_t dap_ros_info = {
+ "DAP",
+ &proto_dap,
+ &ett_dap,
+ dap_opr_code_string_vals,
+ dap_opr_tab,
+ dap_err_code_string_vals,
+ dap_err_tab
+};
/*--- proto_register_dap -------------------------------------------*/
@@ -4712,26 +4849,122 @@ void proto_register_dap(void) {
/*--- Included file: packet-dap-hfarr.c ---*/
#line 1 "packet-dap-hfarr.c"
- { &hf_dap_securityParameters,
- { "securityParameters", "dap.securityParameters",
- FT_NONE, BASE_NONE, NULL, 0,
- "dap.SecurityParameters", HFILL }},
- { &hf_dap_performer,
- { "performer", "dap.performer",
- FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.DistinguishedName", HFILL }},
- { &hf_dap_aliasDereferenced,
- { "aliasDereferenced", "dap.aliasDereferenced",
- FT_BOOLEAN, 8, NULL, 0,
- "dap.BOOLEAN", HFILL }},
- { &hf_dap_notification,
- { "notification", "dap.notification",
- FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SEQUENCE_OF_Attribute", HFILL }},
- { &hf_dap_notification_item,
- { "Item", "dap.notification_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.Attribute", HFILL }},
+ { &hf_dap_DirectoryBindArgument_PDU,
+ { "DirectoryBindArgument", "dap.DirectoryBindArgument",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.DirectoryBindArgument", HFILL }},
+ { &hf_dap_DirectoryBindResult_PDU,
+ { "DirectoryBindResult", "dap.DirectoryBindResult",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.DirectoryBindResult", HFILL }},
+ { &hf_dap_DirectoryBindError_PDU,
+ { "DirectoryBindError", "dap.DirectoryBindError",
+ FT_UINT32, BASE_DEC, VALS(dap_DirectoryBindError_vals), 0,
+ "dap.DirectoryBindError", HFILL }},
+ { &hf_dap_ReadArgument_PDU,
+ { "ReadArgument", "dap.ReadArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_ReadArgument_vals), 0,
+ "dap.ReadArgument", HFILL }},
+ { &hf_dap_ReadResult_PDU,
+ { "ReadResult", "dap.ReadResult",
+ FT_UINT32, BASE_DEC, VALS(dap_ReadResult_vals), 0,
+ "dap.ReadResult", HFILL }},
+ { &hf_dap_CompareArgument_PDU,
+ { "CompareArgument", "dap.CompareArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_CompareArgument_vals), 0,
+ "dap.CompareArgument", HFILL }},
+ { &hf_dap_CompareResult_PDU,
+ { "CompareResult", "dap.CompareResult",
+ FT_UINT32, BASE_DEC, VALS(dap_CompareResult_vals), 0,
+ "dap.CompareResult", HFILL }},
+ { &hf_dap_AbandonArgument_PDU,
+ { "AbandonArgument", "dap.AbandonArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_AbandonArgument_vals), 0,
+ "dap.AbandonArgument", HFILL }},
+ { &hf_dap_AbandonResult_PDU,
+ { "AbandonResult", "dap.AbandonResult",
+ FT_UINT32, BASE_DEC, VALS(dap_AbandonResult_vals), 0,
+ "dap.AbandonResult", HFILL }},
+ { &hf_dap_ListArgument_PDU,
+ { "ListArgument", "dap.ListArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_ListArgument_vals), 0,
+ "dap.ListArgument", HFILL }},
+ { &hf_dap_ListResult_PDU,
+ { "ListResult", "dap.ListResult",
+ FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
+ "dap.ListResult", HFILL }},
+ { &hf_dap_SearchArgument_PDU,
+ { "SearchArgument", "dap.SearchArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_SearchArgument_vals), 0,
+ "dap.SearchArgument", HFILL }},
+ { &hf_dap_SearchResult_PDU,
+ { "SearchResult", "dap.SearchResult",
+ FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
+ "dap.SearchResult", HFILL }},
+ { &hf_dap_AddEntryArgument_PDU,
+ { "AddEntryArgument", "dap.AddEntryArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_AddEntryArgument_vals), 0,
+ "dap.AddEntryArgument", HFILL }},
+ { &hf_dap_AddEntryResult_PDU,
+ { "AddEntryResult", "dap.AddEntryResult",
+ FT_UINT32, BASE_DEC, VALS(dap_AddEntryResult_vals), 0,
+ "dap.AddEntryResult", HFILL }},
+ { &hf_dap_RemoveEntryArgument_PDU,
+ { "RemoveEntryArgument", "dap.RemoveEntryArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryArgument_vals), 0,
+ "dap.RemoveEntryArgument", HFILL }},
+ { &hf_dap_RemoveEntryResult_PDU,
+ { "RemoveEntryResult", "dap.RemoveEntryResult",
+ FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryResult_vals), 0,
+ "dap.RemoveEntryResult", HFILL }},
+ { &hf_dap_ModifyEntryArgument_PDU,
+ { "ModifyEntryArgument", "dap.ModifyEntryArgument",
+ FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryArgument_vals), 0,
+ "dap.ModifyEntryArgument", HFILL }},
+ { &hf_dap_ModifyEntryResult_PDU,
+ { "ModifyEntryResult", "dap.ModifyEntryResult",
+ FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryResult_vals), 0,
+ "dap.ModifyEntryResult", HFILL }},
+ { &hf_dap_ModifyDNArgument_PDU,
+ { "ModifyDNArgument", "dap.ModifyDNArgument",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.ModifyDNArgument", HFILL }},
+ { &hf_dap_ModifyDNResult_PDU,
+ { "ModifyDNResult", "dap.ModifyDNResult",
+ FT_UINT32, BASE_DEC, VALS(dap_ModifyDNResult_vals), 0,
+ "dap.ModifyDNResult", HFILL }},
+ { &hf_dap_Abandoned_PDU,
+ { "Abandoned", "dap.Abandoned",
+ FT_UINT32, BASE_DEC, VALS(dap_Abandoned_vals), 0,
+ "dap.Abandoned", HFILL }},
+ { &hf_dap_AbandonFailedError_PDU,
+ { "AbandonFailedError", "dap.AbandonFailedError",
+ FT_UINT32, BASE_DEC, VALS(dap_AbandonFailedError_vals), 0,
+ "dap.AbandonFailedError", HFILL }},
+ { &hf_dap_AttributeError_PDU,
+ { "AttributeError", "dap.AttributeError",
+ FT_UINT32, BASE_DEC, VALS(dap_AttributeError_vals), 0,
+ "dap.AttributeError", HFILL }},
+ { &hf_dap_NameError_PDU,
+ { "NameError", "dap.NameError",
+ FT_UINT32, BASE_DEC, VALS(dap_NameError_vals), 0,
+ "dap.NameError", HFILL }},
+ { &hf_dap_Referral_PDU,
+ { "Referral", "dap.Referral",
+ FT_UINT32, BASE_DEC, VALS(dap_Referral_vals), 0,
+ "dap.Referral", HFILL }},
+ { &hf_dap_SecurityError_PDU,
+ { "SecurityError", "dap.SecurityError",
+ FT_UINT32, BASE_DEC, VALS(dap_SecurityError_vals), 0,
+ "dap.SecurityError", HFILL }},
+ { &hf_dap_ServiceError_PDU,
+ { "ServiceError", "dap.ServiceError",
+ FT_UINT32, BASE_DEC, VALS(dap_ServiceError_vals), 0,
+ "dap.ServiceError", HFILL }},
+ { &hf_dap_UpdateError_PDU,
+ { "UpdateError", "dap.UpdateError",
+ FT_UINT32, BASE_DEC, VALS(dap_UpdateError_vals), 0,
+ "dap.UpdateError", HFILL }},
{ &hf_dap_options,
{ "options", "dap.options",
FT_BYTES, BASE_HEX, NULL, 0,
@@ -4804,6 +5037,14 @@ void proto_register_dap(void) {
{ "allOperationalAttributes", "dap.allOperationalAttributes",
FT_NONE, BASE_NONE, NULL, 0,
"dap.NULL", HFILL }},
+ { &hf_dap_extraSelect,
+ { "select", "dap.select",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "dap.SET_SIZE_1_MAX_OF_AttributeType", HFILL }},
+ { &hf_dap_extraSelect_item,
+ { "Item", "dap.select_item",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.AttributeType", HFILL }},
{ &hf_dap_contextSelection,
{ "contextSelection", "dap.contextSelection",
FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
@@ -4823,7 +5064,7 @@ void proto_register_dap(void) {
{ &hf_dap_selectedContexts,
{ "selectedContexts", "dap.selectedContexts",
FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SET_OF_TypeAndContextAssertion", HFILL }},
+ "dap.SET_SIZE_1_MAX_OF_TypeAndContextAssertion", HFILL }},
{ &hf_dap_selectedContexts_item,
{ "Item", "dap.selectedContexts_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -4927,7 +5168,7 @@ void proto_register_dap(void) {
{ &hf_dap_family_info,
{ "family-info", "dap.family_info",
FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SEQUENCE_OF_FamilyEntries", HFILL }},
+ "dap.SEQUENCE_SIZE_1_MAX_OF_FamilyEntries", HFILL }},
{ &hf_dap_family_info_item,
{ "Item", "dap.family_info_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5039,7 +5280,7 @@ void proto_register_dap(void) {
{ &hf_dap_sortKeys,
{ "sortKeys", "dap.sortKeys",
FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SEQUENCE_OF_SortKey", HFILL }},
+ "dap.SEQUENCE_SIZE_1_MAX_OF_SortKey", HFILL }},
{ &hf_dap_sortKeys_item,
{ "Item", "dap.sortKeys_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5236,18 +5477,6 @@ void proto_register_dap(void) {
{ "algorithm-identifier", "dap.algorithm_identifier",
FT_NONE, BASE_NONE, NULL, 0,
"x509af.AlgorithmIdentifier", HFILL }},
- { &hf_dap_error,
- { "error", "dap.error",
- FT_UINT32, BASE_DEC, VALS(dap_T_error_vals), 0,
- "dap.T_error", HFILL }},
- { &hf_dap_serviceProblem,
- { "serviceError", "dap.serviceError",
- FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
- "dap.ServiceProblem", HFILL }},
- { &hf_dap_securityProblem,
- { "securityError", "dap.securityError",
- FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
- "dap.SecurityProblem", HFILL }},
{ &hf_dap_unsignedDirectoryBindError,
{ "unsignedDirectoryBindError", "dap.unsignedDirectoryBindError",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5260,6 +5489,18 @@ void proto_register_dap(void) {
{ "directoryBindError", "dap.directoryBindError",
FT_NONE, BASE_NONE, NULL, 0,
"dap.DirectoryBindErrorData", HFILL }},
+ { &hf_dap_error,
+ { "error", "dap.error",
+ FT_UINT32, BASE_DEC, VALS(dap_T_error_vals), 0,
+ "dap.T_error", HFILL }},
+ { &hf_dap_serviceProblem,
+ { "serviceError", "dap.serviceError",
+ FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
+ "dap.ServiceProblem", HFILL }},
+ { &hf_dap_securityProblem,
+ { "securityError", "dap.securityError",
+ FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
+ "dap.SecurityProblem", HFILL }},
{ &hf_dap_object,
{ "object", "dap.object",
FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
@@ -5276,6 +5517,10 @@ void proto_register_dap(void) {
{ "serviceControls", "dap.serviceControls",
FT_NONE, BASE_NONE, NULL, 0,
"dap.ServiceControls", HFILL }},
+ { &hf_dap_securityParameters,
+ { "securityParameters", "dap.securityParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.SecurityParameters", HFILL }},
{ &hf_dap_requestor,
{ "requestor", "dap.requestor",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -5336,6 +5581,22 @@ void proto_register_dap(void) {
{ "modifyRights", "dap.modifyRights",
FT_UINT32, BASE_DEC, NULL, 0,
"dap.ModifyRights", HFILL }},
+ { &hf_dap_performer,
+ { "performer", "dap.performer",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.DistinguishedName", HFILL }},
+ { &hf_dap_aliasDereferenced,
+ { "aliasDereferenced", "dap.aliasDereferenced",
+ FT_BOOLEAN, 8, NULL, 0,
+ "dap.BOOLEAN", HFILL }},
+ { &hf_dap_notification,
+ { "notification", "dap.notification",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "dap.SEQUENCE_SIZE_1_MAX_OF_Attribute", HFILL }},
+ { &hf_dap_notification_item,
+ { "Item", "dap.notification_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.Attribute", HFILL }},
{ &hf_dap_unsignedReadResult,
{ "unsignedReadResult", "dap.unsignedReadResult",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5511,7 +5772,7 @@ void proto_register_dap(void) {
{ &hf_dap_unexplored,
{ "unexplored", "dap.unexplored",
FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SET_OF_ContinuationReference", HFILL }},
+ "dap.SET_SIZE_1_MAX_OF_ContinuationReference", HFILL }},
{ &hf_dap_unexplored_item,
{ "Item", "dap.unexplored_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5635,7 +5896,7 @@ void proto_register_dap(void) {
{ &hf_dap_joinAttributes,
{ "joinAttributes", "dap.joinAttributes",
FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SEQUENCE_OF_JoinAttPair", HFILL }},
+ "dap.SEQUENCE_SIZE_1_MAX_OF_JoinAttPair", HFILL }},
{ &hf_dap_joinAttributes_item,
{ "Item", "dap.joinAttributes_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5655,7 +5916,7 @@ void proto_register_dap(void) {
{ &hf_dap_joinContext,
{ "joinContext", "dap.joinContext",
FT_UINT32, BASE_DEC, NULL, 0,
- "dap.SEQUENCE_OF_JoinContextType", HFILL }},
+ "dap.SEQUENCE_SIZE_1_MAX_OF_JoinContextType", HFILL }},
{ &hf_dap_joinContext_item,
{ "Item", "dap.joinContext_item",
FT_OID, BASE_NONE, NULL, 0,
@@ -6170,7 +6431,7 @@ void proto_register_dap(void) {
"", HFILL }},
/*--- End of included file: packet-dap-hfarr.c ---*/
-#line 283 "packet-dap-template.c"
+#line 104 "packet-dap-template.c"
};
/* List of subtrees */
@@ -6179,8 +6440,6 @@ void proto_register_dap(void) {
/*--- Included file: packet-dap-ettarr.c ---*/
#line 1 "packet-dap-ettarr.c"
- &ett_dap_CommonResults,
- &ett_dap_SEQUENCE_OF_Attribute,
&ett_dap_ServiceControls,
&ett_dap_T_manageDSAITPlaneRef,
&ett_dap_ServiceControlOptions,
@@ -6188,8 +6447,9 @@ void proto_register_dap(void) {
&ett_dap_T_attributes,
&ett_dap_SET_OF_AttributeType,
&ett_dap_T_extraAttributes,
+ &ett_dap_SET_SIZE_1_MAX_OF_AttributeType,
&ett_dap_ContextSelection,
- &ett_dap_SET_OF_TypeAndContextAssertion,
+ &ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion,
&ett_dap_TypeAndContextAssertion,
&ett_dap_T_contextAssertions,
&ett_dap_SEQUENCE_OF_ContextAssertion,
@@ -6204,7 +6464,7 @@ void proto_register_dap(void) {
&ett_dap_FamilyEntry,
&ett_dap_FamilyInformation,
&ett_dap_T_family_information_item,
- &ett_dap_SEQUENCE_OF_FamilyEntries,
+ &ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries,
&ett_dap_Filter,
&ett_dap_SetOfFilter,
&ett_dap_FilterItem,
@@ -6215,7 +6475,7 @@ void proto_register_dap(void) {
&ett_dap_T_matchingRule,
&ett_dap_PagedResultsRequest,
&ett_dap_T_newRequest,
- &ett_dap_SEQUENCE_OF_SortKey,
+ &ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey,
&ett_dap_SortKey,
&ett_dap_SecurityParameters,
&ett_dap_Time,
@@ -6233,15 +6493,16 @@ void proto_register_dap(void) {
&ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier,
&ett_dap_Token,
&ett_dap_Versions,
- &ett_dap_DirectoryBindErrorData,
- &ett_dap_T_error,
&ett_dap_DirectoryBindError,
&ett_dap_T_signedDirectoryBindError,
+ &ett_dap_DirectoryBindErrorData,
+ &ett_dap_T_error,
&ett_dap_ReadArgumentData,
&ett_dap_Name,
&ett_dap_ReadArgument,
&ett_dap_T_signedReadArgument,
&ett_dap_ReadResultData,
+ &ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute,
&ett_dap_ReadResult,
&ett_dap_T_signedReadResult,
&ett_dap_ModifyRights,
@@ -6272,7 +6533,7 @@ void proto_register_dap(void) {
&ett_dap_ListResult,
&ett_dap_T_signedListResult,
&ett_dap_PartialOutcomeQualifier,
- &ett_dap_SET_OF_ContinuationReference,
+ &ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference,
&ett_dap_T_unknownErrors,
&ett_dap_T_entryCount,
&ett_dap_SearchArgumentData,
@@ -6282,9 +6543,9 @@ void proto_register_dap(void) {
&ett_dap_HierarchySelections,
&ett_dap_SearchControlOptions,
&ett_dap_JoinArgument,
- &ett_dap_SEQUENCE_OF_JoinAttPair,
+ &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair,
&ett_dap_JoinAttPair,
- &ett_dap_SEQUENCE_OF_JoinContextType,
+ &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType,
&ett_dap_SearchResultData,
&ett_dap_T_searchInfo,
&ett_dap_SET_OF_EntryInformation,
@@ -6350,13 +6611,12 @@ void proto_register_dap(void) {
&ett_dap_T_signedUpdateError,
/*--- End of included file: packet-dap-ettarr.c ---*/
-#line 289 "packet-dap-template.c"
+#line 110 "packet-dap-template.c"
};
module_t *dap_module;
/* Register protocol */
proto_dap = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("dap", dissect_dap, proto_dap);
/* Register fields and subtrees */
proto_register_field_array(proto_dap, hf, array_length(hf));
@@ -6364,11 +6624,7 @@ 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"
@@ -6391,9 +6647,7 @@ void proto_reg_handoff_dap(void) {
/* ABSTRACT SYNTAXES */
/* Register DAP with ROS (with no use of RTSE) */
- if((handle = find_dissector("dap"))) {
- register_ros_oid_dissector_handle("2.5.9.1", handle, 0, "id-as-directory-access", FALSE);
- }
+ register_ros_protocol_info("2.5.9.1", &dap_ros_info, 0, "id-as-directory-access", FALSE);
/* remember the tpkt handler for change in preferences */
tpkt_handle = find_dissector("tpkt");
diff --git a/epan/dissectors/packet-dap.h b/epan/dissectors/packet-dap.h
index a4a47b3ae6..a3a312712d 100644
--- a/epan/dissectors/packet-dap.h
+++ b/epan/dissectors/packet-dap.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dap.h */
-/* ../../tools/asn2wrs.py -b -e -X -T -p dap -c dap.cnf -s packet-dap-template dap.asn */
+/* ../../tools/asn2wrs.py -b -e -X -T -L -p dap -c dap.cnf -s packet-dap-template dap.asn DirectoryAccessProtocol.asn */
/* Input file: packet-dap-template.h */
@@ -66,7 +66,6 @@ extern const value_string dap_Referral_vals[];
extern const value_string dap_SecurityError_vals[];
extern const value_string dap_ServiceError_vals[];
extern const value_string dap_UpdateError_vals[];
-int dissect_dap_CommonResults(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_ContextSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_SecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);