![Graeme Lunt](/assets/img/avatar_default.png)
IDMP provides a mapping of request-response service elements directly onto the Internet TCP/IP protocol, bypassing the ACSE, Presentation, Session and Transport layers of the OSI model. It also supports the use of TLS services. The DAP dissector has been updated to use the IDMP protocol. svn path=/trunk/; revision=33177
369 lines
8.7 KiB
INI
369 lines
8.7 KiB
INI
# $Id$
|
|
|
|
|
|
#.TYPE_ATTR
|
|
# X509AF also exports the type Time. This makes sure asn2wrs uses the locally defined version.
|
|
Time TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(dap_Time_vals) BITMASK = 0
|
|
#.END
|
|
|
|
#.IMPORT ../x509if/x509if-exp.cnf
|
|
#.IMPORT ../x509af/x509af-exp.cnf
|
|
#.IMPORT ../x509sat/x509sat-exp.cnf
|
|
#.IMPORT ../crmf/crmf-exp.cnf
|
|
#.IMPORT ../dsp/dsp-exp.cnf
|
|
#.IMPORT ../disp/disp-exp.cnf
|
|
#.IMPORT ../ros/ros-exp.cnf
|
|
#.IMPORT ../acse/acse-exp.cnf
|
|
|
|
#.OMIT_ASSIGNMENT
|
|
DAP-InvokeIDSet
|
|
#.END
|
|
|
|
#.MODULE_IMPORT
|
|
AttributeCertificateDefinitions x509af
|
|
BasicAccessControl crmf
|
|
|
|
# Forward declaration of classes
|
|
#.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
|
|
|
|
#.CLASS OBJECT-CLASS
|
|
&Superclasses ClassReference OBJECT-CLASS
|
|
&kind TypeReference ObjectClassKind
|
|
&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 TypeReference AttributeUsage
|
|
&id ObjectIdentifierType
|
|
#.END
|
|
|
|
#.CLASS MATCHING-RULE
|
|
&ParentMatchingRules ClassReference MATCHING-RULE
|
|
&AssertionType
|
|
&uniqueMatchIndicator ClassReference ATTRIBUTE
|
|
&id ObjectIdentifierType
|
|
#.END
|
|
|
|
#.OMIT_ASSIGNMENT
|
|
CommonArguments
|
|
CommonResults
|
|
CommonResultsSeq
|
|
#.END
|
|
|
|
#.EXPORTS
|
|
Filter
|
|
Referral
|
|
EntryModification
|
|
ContextSelection
|
|
DirectoryBindArgument
|
|
DirectoryBindError
|
|
ReadArgument
|
|
ReadResult
|
|
ListArgument
|
|
ListResult
|
|
SearchArgument
|
|
SearchResult
|
|
AddEntryArgument
|
|
AddEntryResult
|
|
CompareArgument
|
|
CompareResult
|
|
RemoveEntryArgument
|
|
RemoveEntryResult
|
|
ModifyEntryArgument
|
|
ModifyEntryResult
|
|
ModifyDNArgument
|
|
ModifyDNResult
|
|
AbandonArgument
|
|
AbandonResult
|
|
AttributeError
|
|
NameError
|
|
ServiceError
|
|
Abandoned
|
|
SearchControlOptions
|
|
SecurityError
|
|
SecurityProblem
|
|
SecurityParameters
|
|
ServiceControlOptions
|
|
AbandonFailedError
|
|
UpdateError
|
|
HierarchySelections
|
|
FamilyGrouping
|
|
FamilyReturn
|
|
|
|
#.TYPE_RENAME
|
|
FamilyEntry/information FamilyInformation
|
|
AbandonResult/information AbandonInformation
|
|
AddEntryResult/information AddEntryInformation
|
|
RemoveEntryResult/information RemoveEntryInformation
|
|
ModifyEntryResult/information ModifyEntryInformation
|
|
ModifyDNResult/information ModifyDNInformation
|
|
|
|
EntryInformation/information/_item EntryInformationItem
|
|
|
|
#.FIELD_RENAME
|
|
|
|
ModifyRights/_item/item/attribute attribute-type
|
|
|
|
ModifyRights/_item/item/entry item-entry
|
|
AddEntryArgumentData/entry add-entry
|
|
|
|
EntryInformation/information entry-information
|
|
FamilyEntry/information family-information
|
|
AbandonResult/information abandon-information
|
|
AddEntryResult/information add-entry-information
|
|
RemoveEntryResult/information remove-entry-information
|
|
ModifyEntryResult/information modify-entry-information
|
|
ModifyDNResult/information modify-dn-information
|
|
|
|
EntryInformation/information/_item entry-information-item
|
|
|
|
Filter/item filter-item
|
|
|
|
NameErrorData/matched matched-name
|
|
|
|
SecurityParameters/name distinguished-name
|
|
SimpleCredentials/name distinguished-name
|
|
StrongCredentials/name distinguished-name
|
|
|
|
ModifyDNArgument/object distinguished-name
|
|
|
|
AbandonFailedErrorData/problem abandon-failed-problem
|
|
ServiceErrorData/problem service-error-problem
|
|
AttributeErrorData/problems/_item/problem attribute-error-problem
|
|
NameErrorData/problem name-error-problem
|
|
SecurityErrorData/problem security-error-problem
|
|
UpdateErrorData/problem update-error-problem
|
|
|
|
DirectoryBindErrorData/error/securityError securityProblem
|
|
SecurityError/signedSecurityError/securityError securityErrorData
|
|
|
|
DirectoryBindErrorData/error/serviceError serviceProblem
|
|
|
|
FilterItem/substrings/type sunstringType
|
|
|
|
ModifyRights/_item/item/value value-assertion
|
|
|
|
TokenData/name distinguished-name
|
|
|
|
TokenData/time utctime
|
|
|
|
PagedResultsRequest/queryReference pagedResultsQueryReference
|
|
|
|
EntryInformationSelection/extraAttributes/select extraSelect
|
|
|
|
SaslCredentials/credentials saslCredentials
|
|
|
|
# This table creates the value_sting to name DAP operation codes and errors
|
|
# in file packet-dap-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);
|
|
proto_item_append_text(it," XXX: Not yet implemented!");
|
|
|
|
#.FN_BODY FilterItem/substrings/strings/_item/any
|
|
/* XXX: not yet implemented */
|
|
|
|
#.FN_BODY FilterItem/substrings/strings/_item/final
|
|
/* XXX: not yet implemented */
|
|
|
|
#.FN_BODY MatchingRuleAssertion/matchValue
|
|
/* XXX: not yet implemented */
|
|
|
|
#.FN_BODY SpkmCredentials/req
|
|
/* XXX: not yet implemented */
|
|
|
|
#.FN_BODY SpkmCredentials/rep
|
|
/* XXX: not yet implemented */
|
|
|
|
#.FN_BODY SecurityErrorData/spkmInfo
|
|
/* XXX: not yet implemented */
|
|
|
|
#.FN_BODY DirectoryBindArgument
|
|
|
|
guint32 len;
|
|
|
|
/* check and see if this is an empty set */
|
|
dissect_ber_length(actx->pinfo, tree, tvb, offset+1, &len, NULL);
|
|
|
|
if(len == 0) {
|
|
/* its an empty set - i.e anonymous (assuming version is DEFAULTed) */
|
|
proto_tree_add_text(tree, tvb, offset, -1,"Anonymous");
|
|
|
|
col_append_str(actx->pinfo->cinfo, COL_INFO, " anonymous");
|
|
|
|
}
|
|
/* do the default thing */
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
#.FN_BODY SimpleCredentials
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x509if_get_last_dn());
|
|
|
|
|
|
|
|
|
|
#.FN_BODY PagedResultsRequest/queryReference VAL_PTR=&out_tvb
|
|
tvbuff_t *out_tvb;
|
|
int i;
|
|
int len;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if(out_tvb) {
|
|
len = tvb_length(out_tvb);
|
|
/* now see if we can add a string representation */
|
|
for(i=0; i<len; i++)
|
|
if(!g_ascii_isprint(tvb_get_guint8(out_tvb, i)))
|
|
break;
|
|
|
|
if(i == len) {
|
|
if(actx->created_item) {
|
|
|
|
proto_item_append_text(actx->created_item," (");
|
|
for(i=0; i<len; i++)
|
|
proto_item_append_text(actx->created_item,"%%c",tvb_get_guint8(out_tvb,i));
|
|
proto_item_append_text(actx->created_item,")");
|
|
}
|
|
}
|
|
}
|
|
|
|
#.FN_PARS SecurityProblem
|
|
VAL_PTR = &problem
|
|
|
|
#.FN_BODY SecurityProblem
|
|
guint32 problem;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_SecurityProblem_vals, "SecurityProblem(%%d)"));
|
|
|
|
#.FN_PARS ServiceProblem
|
|
VAL_PTR = &problem
|
|
|
|
#.FN_BODY ServiceProblem
|
|
guint32 problem;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_ServiceProblem_vals, "ServiceProblem(%%d)"));
|
|
|
|
#.FN_PARS UpdateProblem
|
|
VAL_PTR = &problem
|
|
|
|
#.FN_BODY UpdateProblem
|
|
guint32 problem;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_UpdateProblem_vals, "UpdateProblem(%%d)"));
|
|
|
|
#.FN_PARS LimitProblem
|
|
VAL_PTR = &problem
|
|
|
|
#.FN_BODY LimitProblem
|
|
guint32 problem;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(problem, dap_LimitProblem_vals, "LimitProblem(%%d)"));
|
|
|
|
#.END
|
|
|
|
|
|
#.FN_BODY SearchArgumentData/subset VAL_PTR=&subset
|
|
guint32 subset;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", val_to_str(subset, dap_T_subset_vals, "Subset(%%d)"));
|
|
|
|
|
|
#.FN_BODY Name
|
|
const char *dn;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
dn = x509if_get_last_dn();
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", (dn && *dn) ? dn : "(root)");
|
|
|