/* Do not modify this file. Changes will be overwritten. */ /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ /* packet-novell_pkis.c */ /* asn2wrs.py -b -u -L -p novell_pkis -c ./novell_pkis.cnf -s ./packet-novell_pkis-template -D . -O ../.. novell_pkis.asn */ /* packet-novell_pkis.c * * Wireshark - Network traffic analyzer * By Gerald Combs * Copyright 1998 Gerald Combs * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "config.h" #include #include #include #include #include #include #include "packet-per.h" #include "packet-ber.h" static int hf_novell_pkis_SecurityAttributes_PDU = -1; /* SecurityAttributes */ static int hf_novell_pkis_RelianceLimits_PDU = -1; /* RelianceLimits */ static int hf_novell_pkis_versionNumber = -1; /* OCTET_STRING_SIZE_2 */ static int hf_novell_pkis_nSI = -1; /* BOOLEAN */ static int hf_novell_pkis_securityTM = -1; /* T_securityTM */ static int hf_novell_pkis_uriReference = -1; /* IA5String */ static int hf_novell_pkis_gLBExtensions = -1; /* GLBExtensions */ static int hf_novell_pkis_keyQuality = -1; /* KeyQuality */ static int hf_novell_pkis_cryptoProcessQuality = -1; /* CryptoProcessQuality */ static int hf_novell_pkis_certificateClass = -1; /* CertificateClass */ static int hf_novell_pkis_enterpriseId = -1; /* EnterpriseId */ static int hf_novell_pkis_enforceQuality = -1; /* BOOLEAN */ static int hf_novell_pkis_compusecQuality = -1; /* CompusecQuality */ static int hf_novell_pkis_cryptoQuality = -1; /* CryptoQuality */ static int hf_novell_pkis_keyStorageQuality = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_CompusecQuality_item = -1; /* CompusecQualityPair */ static int hf_novell_pkis_compusecCriteria = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_compusecRating = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_CryptoQuality_item = -1; /* CryptoQualityPair */ static int hf_novell_pkis_cryptoModuleCriteria = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_cryptoModuleRating = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_classValue = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_certificateValid = -1; /* BOOLEAN */ static int hf_novell_pkis_rootLabel = -1; /* SecurityLabelType1 */ static int hf_novell_pkis_registryLabel = -1; /* SecurityLabelType1 */ static int hf_novell_pkis_enterpriseLabel = -1; /* SEQUENCE_SIZE_1_1_OF_SecurityLabelType1 */ static int hf_novell_pkis_enterpriseLabel_item = -1; /* SecurityLabelType1 */ static int hf_novell_pkis_labelType1 = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_secrecyLevel1 = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_integrityLevel1 = -1; /* INTEGER_0_255 */ static int hf_novell_pkis_secrecyCategories1 = -1; /* BIT_STRING_SIZE_96 */ static int hf_novell_pkis_integrityCategories1 = -1; /* BIT_STRING_SIZE_64 */ static int hf_novell_pkis_secrecySingletons1 = -1; /* Singletons */ static int hf_novell_pkis_integritySingletons1 = -1; /* Singletons */ static int hf_novell_pkis_Singletons_item = -1; /* SingletonChoice */ static int hf_novell_pkis_uniqueSingleton = -1; /* INTEGER_0_9223372036854775807 */ static int hf_novell_pkis_singletonRange = -1; /* SingletonRange */ static int hf_novell_pkis_singletonLowerBound = -1; /* INTEGER_0_9223372036854775807 */ static int hf_novell_pkis_singletonUpperBound = -1; /* INTEGER_0_9223372036854775807 */ static int hf_novell_pkis_singletonValue = -1; /* BOOLEAN */ static int hf_novell_pkis_perTransactionLimit = -1; /* MonetaryValue */ static int hf_novell_pkis_perCertificateLimit = -1; /* MonetaryValue */ static int hf_novell_pkis_currency = -1; /* Currency */ static int hf_novell_pkis_amount = -1; /* INTEGER */ static int hf_novell_pkis_amtExp10 = -1; /* INTEGER */ static gint ett_novell_pkis_SecurityAttributes = -1; static gint ett_novell_pkis_GLBExtensions = -1; static gint ett_novell_pkis_Quality = -1; static gint ett_novell_pkis_CompusecQuality = -1; static gint ett_novell_pkis_CompusecQualityPair = -1; static gint ett_novell_pkis_CryptoQuality = -1; static gint ett_novell_pkis_CryptoQualityPair = -1; static gint ett_novell_pkis_CertificateClass = -1; static gint ett_novell_pkis_EnterpriseId = -1; static gint ett_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1 = -1; static gint ett_novell_pkis_SecurityLabelType1 = -1; static gint ett_novell_pkis_Singletons = -1; static gint ett_novell_pkis_SingletonChoice = -1; static gint ett_novell_pkis_SingletonRange = -1; static gint ett_novell_pkis_RelianceLimits = -1; static gint ett_novell_pkis_MonetaryValue = -1; static int dissect_novell_pkis_OCTET_STRING_SIZE_2(bool 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_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_novell_pkis_BOOLEAN(bool 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, NULL); return offset; } static int dissect_novell_pkis_T_securityTM(bool 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_PrintableString, actx, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_novell_pkis_IA5String(bool 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_IA5String, actx, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_novell_pkis_INTEGER_0_255(bool 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 CompusecQualityPair_sequence[] = { { &hf_novell_pkis_compusecCriteria, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { &hf_novell_pkis_compusecRating, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_CompusecQualityPair(bool 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(implicit_tag, actx, tree, tvb, offset, CompusecQualityPair_sequence, hf_index, ett_novell_pkis_CompusecQualityPair); return offset; } static const ber_sequence_t CompusecQuality_sequence_of[1] = { { &hf_novell_pkis_CompusecQuality_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_CompusecQualityPair }, }; static int dissect_novell_pkis_CompusecQuality(bool 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, CompusecQuality_sequence_of, hf_index, ett_novell_pkis_CompusecQuality); return offset; } static const ber_sequence_t CryptoQualityPair_sequence[] = { { &hf_novell_pkis_cryptoModuleCriteria, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { &hf_novell_pkis_cryptoModuleRating, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_CryptoQualityPair(bool 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(implicit_tag, actx, tree, tvb, offset, CryptoQualityPair_sequence, hf_index, ett_novell_pkis_CryptoQualityPair); return offset; } static const ber_sequence_t CryptoQuality_sequence_of[1] = { { &hf_novell_pkis_CryptoQuality_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_CryptoQualityPair }, }; static int dissect_novell_pkis_CryptoQuality(bool 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, CryptoQuality_sequence_of, hf_index, ett_novell_pkis_CryptoQuality); return offset; } static const ber_sequence_t Quality_sequence[] = { { &hf_novell_pkis_enforceQuality, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_BOOLEAN }, { &hf_novell_pkis_compusecQuality, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_CompusecQuality }, { &hf_novell_pkis_cryptoQuality, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_CryptoQuality }, { &hf_novell_pkis_keyStorageQuality, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_Quality(bool 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(implicit_tag, actx, tree, tvb, offset, Quality_sequence, hf_index, ett_novell_pkis_Quality); return offset; } static int dissect_novell_pkis_KeyQuality(bool 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_novell_pkis_Quality(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static int dissect_novell_pkis_CryptoProcessQuality(bool 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_novell_pkis_Quality(implicit_tag, tvb, offset, actx, tree, hf_index); return offset; } static const ber_sequence_t CertificateClass_sequence[] = { { &hf_novell_pkis_classValue, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { &hf_novell_pkis_certificateValid, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_BOOLEAN }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_CertificateClass(bool 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(implicit_tag, actx, tree, tvb, offset, CertificateClass_sequence, hf_index, ett_novell_pkis_CertificateClass); return offset; } static int dissect_novell_pkis_BIT_STRING_SIZE_96(bool 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, 0, hf_index, -1, NULL); return offset; } static int dissect_novell_pkis_BIT_STRING_SIZE_64(bool 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, 0, hf_index, -1, NULL); return offset; } static int dissect_novell_pkis_INTEGER_0_9223372036854775807(bool 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_integer64(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); return offset; } static const ber_sequence_t SingletonRange_sequence[] = { { &hf_novell_pkis_singletonLowerBound, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_9223372036854775807 }, { &hf_novell_pkis_singletonUpperBound, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_9223372036854775807 }, { &hf_novell_pkis_singletonValue, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_BOOLEAN }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_SingletonRange(bool 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(implicit_tag, actx, tree, tvb, offset, SingletonRange_sequence, hf_index, ett_novell_pkis_SingletonRange); return offset; } static const value_string novell_pkis_SingletonChoice_vals[] = { { 0, "uniqueSingleton" }, { 1, "singletonRange" }, { 0, NULL } }; static const ber_choice_t SingletonChoice_choice[] = { { 0, &hf_novell_pkis_uniqueSingleton, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_9223372036854775807 }, { 1, &hf_novell_pkis_singletonRange, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_SingletonRange }, { 0, NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_SingletonChoice(bool 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, SingletonChoice_choice, hf_index, ett_novell_pkis_SingletonChoice, NULL); return offset; } static const ber_sequence_t Singletons_sequence_of[1] = { { &hf_novell_pkis_Singletons_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_novell_pkis_SingletonChoice }, }; static int dissect_novell_pkis_Singletons(bool 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, Singletons_sequence_of, hf_index, ett_novell_pkis_Singletons); return offset; } static const ber_sequence_t SecurityLabelType1_sequence[] = { { &hf_novell_pkis_labelType1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { &hf_novell_pkis_secrecyLevel1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { &hf_novell_pkis_integrityLevel1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER_0_255 }, { &hf_novell_pkis_secrecyCategories1, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_BIT_STRING_SIZE_96 }, { &hf_novell_pkis_integrityCategories1, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_BIT_STRING_SIZE_64 }, { &hf_novell_pkis_secrecySingletons1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_Singletons }, { &hf_novell_pkis_integritySingletons1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_Singletons }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_SecurityLabelType1(bool 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(implicit_tag, actx, tree, tvb, offset, SecurityLabelType1_sequence, hf_index, ett_novell_pkis_SecurityLabelType1); return offset; } static const ber_sequence_t SEQUENCE_SIZE_1_1_OF_SecurityLabelType1_sequence_of[1] = { { &hf_novell_pkis_enterpriseLabel_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_SecurityLabelType1 }, }; static int dissect_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1(bool 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_1_OF_SecurityLabelType1_sequence_of, hf_index, ett_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1); return offset; } static const ber_sequence_t EnterpriseId_sequence[] = { { &hf_novell_pkis_rootLabel, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_novell_pkis_SecurityLabelType1 }, { &hf_novell_pkis_registryLabel, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_novell_pkis_SecurityLabelType1 }, { &hf_novell_pkis_enterpriseLabel, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1 }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_EnterpriseId(bool 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(implicit_tag, actx, tree, tvb, offset, EnterpriseId_sequence, hf_index, ett_novell_pkis_EnterpriseId); return offset; } static const ber_sequence_t GLBExtensions_sequence[] = { { &hf_novell_pkis_keyQuality, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_novell_pkis_KeyQuality }, { &hf_novell_pkis_cryptoProcessQuality, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_novell_pkis_CryptoProcessQuality }, { &hf_novell_pkis_certificateClass, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_novell_pkis_CertificateClass }, { &hf_novell_pkis_enterpriseId, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_novell_pkis_EnterpriseId }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_GLBExtensions(bool 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(implicit_tag, actx, tree, tvb, offset, GLBExtensions_sequence, hf_index, ett_novell_pkis_GLBExtensions); return offset; } static const ber_sequence_t SecurityAttributes_sequence[] = { { &hf_novell_pkis_versionNumber, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_OCTET_STRING_SIZE_2 }, { &hf_novell_pkis_nSI , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_BOOLEAN }, { &hf_novell_pkis_securityTM, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_T_securityTM }, { &hf_novell_pkis_uriReference, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_IA5String }, { &hf_novell_pkis_gLBExtensions, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_GLBExtensions }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_SecurityAttributes(bool 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(implicit_tag, actx, tree, tvb, offset, SecurityAttributes_sequence, hf_index, ett_novell_pkis_SecurityAttributes); return offset; } static int dissect_novell_pkis_Currency(bool 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 int dissect_novell_pkis_INTEGER(bool 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 MonetaryValue_sequence[] = { { &hf_novell_pkis_currency, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_Currency }, { &hf_novell_pkis_amount , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER }, { &hf_novell_pkis_amtExp10, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_INTEGER }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_MonetaryValue(bool 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(implicit_tag, actx, tree, tvb, offset, MonetaryValue_sequence, hf_index, ett_novell_pkis_MonetaryValue); return offset; } static const ber_sequence_t RelianceLimits_sequence[] = { { &hf_novell_pkis_perTransactionLimit, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_MonetaryValue }, { &hf_novell_pkis_perCertificateLimit, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_novell_pkis_MonetaryValue }, { NULL, 0, 0, 0, NULL } }; static int dissect_novell_pkis_RelianceLimits(bool 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(implicit_tag, actx, tree, tvb, offset, RelianceLimits_sequence, hf_index, ett_novell_pkis_RelianceLimits); return offset; } /*--- PDUs ---*/ static int dissect_SecurityAttributes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_novell_pkis_SecurityAttributes(FALSE, tvb, offset, &asn1_ctx, tree, hf_novell_pkis_SecurityAttributes_PDU); return offset; } static int dissect_RelianceLimits_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); offset = dissect_novell_pkis_RelianceLimits(FALSE, tvb, offset, &asn1_ctx, tree, hf_novell_pkis_RelianceLimits_PDU); return offset; } void proto_register_novell_pkis (void); void proto_reg_handoff_novell_pkis(void); static int proto_novell_pkis = -1; void proto_reg_handoff_novell_pkis(void) { register_ber_oid_dissector("2.16.840.1.113719.1.9.4.1", dissect_SecurityAttributes_PDU, proto_novell_pkis, "pa-sa"); register_ber_oid_dissector("2.16.840.1.113719.1.9.4.2", dissect_RelianceLimits_PDU, proto_novell_pkis, "pa-rl"); } void proto_register_novell_pkis (void) { static hf_register_info hf[] = { { &hf_novell_pkis_SecurityAttributes_PDU, { "SecurityAttributes", "novell_pkis.SecurityAttributes_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_RelianceLimits_PDU, { "RelianceLimits", "novell_pkis.RelianceLimits_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_versionNumber, { "versionNumber", "novell_pkis.versionNumber", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING_SIZE_2", HFILL }}, { &hf_novell_pkis_nSI, { "nSI", "novell_pkis.nSI", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_novell_pkis_securityTM, { "securityTM", "novell_pkis.securityTM", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_uriReference, { "uriReference", "novell_pkis.uriReference", FT_STRING, BASE_NONE, NULL, 0, "IA5String", HFILL }}, { &hf_novell_pkis_gLBExtensions, { "gLBExtensions", "novell_pkis.gLBExtensions_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_keyQuality, { "keyQuality", "novell_pkis.keyQuality_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_cryptoProcessQuality, { "cryptoProcessQuality", "novell_pkis.cryptoProcessQuality_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_certificateClass, { "certificateClass", "novell_pkis.certificateClass_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_enterpriseId, { "enterpriseId", "novell_pkis.enterpriseId_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_enforceQuality, { "enforceQuality", "novell_pkis.enforceQuality", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_novell_pkis_compusecQuality, { "compusecQuality", "novell_pkis.compusecQuality", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_cryptoQuality, { "cryptoQuality", "novell_pkis.cryptoQuality", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_keyStorageQuality, { "keyStorageQuality", "novell_pkis.keyStorageQuality", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_CompusecQuality_item, { "CompusecQualityPair", "novell_pkis.CompusecQualityPair_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_compusecCriteria, { "compusecCriteria", "novell_pkis.compusecCriteria", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_compusecRating, { "compusecRating", "novell_pkis.compusecRating", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_CryptoQuality_item, { "CryptoQualityPair", "novell_pkis.CryptoQualityPair_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_cryptoModuleCriteria, { "cryptoModuleCriteria", "novell_pkis.cryptoModuleCriteria", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_cryptoModuleRating, { "cryptoModuleRating", "novell_pkis.cryptoModuleRating", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_classValue, { "classValue", "novell_pkis.classValue", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_certificateValid, { "certificateValid", "novell_pkis.certificateValid", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_novell_pkis_rootLabel, { "rootLabel", "novell_pkis.rootLabel_element", FT_NONE, BASE_NONE, NULL, 0, "SecurityLabelType1", HFILL }}, { &hf_novell_pkis_registryLabel, { "registryLabel", "novell_pkis.registryLabel_element", FT_NONE, BASE_NONE, NULL, 0, "SecurityLabelType1", HFILL }}, { &hf_novell_pkis_enterpriseLabel, { "enterpriseLabel", "novell_pkis.enterpriseLabel", FT_UINT32, BASE_DEC, NULL, 0, "SEQUENCE_SIZE_1_1_OF_SecurityLabelType1", HFILL }}, { &hf_novell_pkis_enterpriseLabel_item, { "SecurityLabelType1", "novell_pkis.SecurityLabelType1_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_labelType1, { "labelType1", "novell_pkis.labelType1", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_secrecyLevel1, { "secrecyLevel1", "novell_pkis.secrecyLevel1", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_integrityLevel1, { "integrityLevel1", "novell_pkis.integrityLevel1", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_novell_pkis_secrecyCategories1, { "secrecyCategories1", "novell_pkis.secrecyCategories1", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_96", HFILL }}, { &hf_novell_pkis_integrityCategories1, { "integrityCategories1", "novell_pkis.integrityCategories1", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_64", HFILL }}, { &hf_novell_pkis_secrecySingletons1, { "secrecySingletons1", "novell_pkis.secrecySingletons1", FT_UINT32, BASE_DEC, NULL, 0, "Singletons", HFILL }}, { &hf_novell_pkis_integritySingletons1, { "integritySingletons1", "novell_pkis.integritySingletons1", FT_UINT32, BASE_DEC, NULL, 0, "Singletons", HFILL }}, { &hf_novell_pkis_Singletons_item, { "SingletonChoice", "novell_pkis.SingletonChoice", FT_UINT32, BASE_DEC, VALS(novell_pkis_SingletonChoice_vals), 0, NULL, HFILL }}, { &hf_novell_pkis_uniqueSingleton, { "uniqueSingleton", "novell_pkis.uniqueSingleton", FT_UINT64, BASE_DEC, NULL, 0, "INTEGER_0_9223372036854775807", HFILL }}, { &hf_novell_pkis_singletonRange, { "singletonRange", "novell_pkis.singletonRange_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_singletonLowerBound, { "singletonLowerBound", "novell_pkis.singletonLowerBound", FT_UINT64, BASE_DEC, NULL, 0, "INTEGER_0_9223372036854775807", HFILL }}, { &hf_novell_pkis_singletonUpperBound, { "singletonUpperBound", "novell_pkis.singletonUpperBound", FT_UINT64, BASE_DEC, NULL, 0, "INTEGER_0_9223372036854775807", HFILL }}, { &hf_novell_pkis_singletonValue, { "singletonValue", "novell_pkis.singletonValue", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_novell_pkis_perTransactionLimit, { "perTransactionLimit", "novell_pkis.perTransactionLimit_element", FT_NONE, BASE_NONE, NULL, 0, "MonetaryValue", HFILL }}, { &hf_novell_pkis_perCertificateLimit, { "perCertificateLimit", "novell_pkis.perCertificateLimit_element", FT_NONE, BASE_NONE, NULL, 0, "MonetaryValue", HFILL }}, { &hf_novell_pkis_currency, { "currency", "novell_pkis.currency", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_novell_pkis_amount, { "amount", "novell_pkis.amount", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, { &hf_novell_pkis_amtExp10, { "amtExp10", "novell_pkis.amtExp10", FT_INT32, BASE_DEC, NULL, 0, "INTEGER", HFILL }}, }; static gint *ett[] = { &ett_novell_pkis_SecurityAttributes, &ett_novell_pkis_GLBExtensions, &ett_novell_pkis_Quality, &ett_novell_pkis_CompusecQuality, &ett_novell_pkis_CompusecQualityPair, &ett_novell_pkis_CryptoQuality, &ett_novell_pkis_CryptoQualityPair, &ett_novell_pkis_CertificateClass, &ett_novell_pkis_EnterpriseId, &ett_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1, &ett_novell_pkis_SecurityLabelType1, &ett_novell_pkis_Singletons, &ett_novell_pkis_SingletonChoice, &ett_novell_pkis_SingletonRange, &ett_novell_pkis_RelianceLimits, &ett_novell_pkis_MonetaryValue, }; /* execute protocol initialization only once */ if (proto_novell_pkis != -1) return; proto_novell_pkis = proto_register_protocol("Novell PKIS ASN.1 type", "novell_pkis", "novell_pkis"); proto_register_field_array (proto_novell_pkis, hf, array_length (hf)); proto_register_subtree_array (ett, array_length (ett)); }