diff options
Diffstat (limited to 'epan/dissectors/asn1/cms/cms.cnf')
-rw-r--r-- | epan/dissectors/asn1/cms/cms.cnf | 115 |
1 files changed, 80 insertions, 35 deletions
diff --git a/epan/dissectors/asn1/cms/cms.cnf b/epan/dissectors/asn1/cms/cms.cnf index 5ce647b941..77da31436b 100644 --- a/epan/dissectors/asn1/cms/cms.cnf +++ b/epan/dissectors/asn1/cms/cms.cnf @@ -21,6 +21,7 @@ DigestAlgorithmIdentifiers DigestInfo EncapsulatedContentInfo EnvelopedData +AuthEnvelopedData IssuerAndSerialNumber SignedAttributes SignedData @@ -38,6 +39,8 @@ EnvelopedData B "1.2.840.113549.1.7.3" "id-envelopedData" DigestedData B "1.2.840.113549.1.7.5" "id-digestedData" EncryptedData B "1.2.840.113549.1.7.6" "id-encryptedData" AuthenticatedData B "1.2.840.113549.1.9.16.1.2" "id-ct-authenticatedData" +EncryptedContentInfo B "1.2.840.113549.1.9.16.1.9" "id-ct-compressedData" +AuthEnvelopedData B "1.2.840.113549.1.9.16.1.23" "id-ct-authEnvelopedData" ContentType B "1.2.840.113549.1.9.3" "id-contentType" MessageDigest B "1.2.840.113549.1.9.4" "id-messageDigest" @@ -53,6 +56,22 @@ SMIMEEncryptionKeyPreference B "1.2.840.113549.1.9.16.2.11" "id-encryption-key-p # I think the following should be RC2CBCParameter - but that appears to be incorrect RC2CBCParameters B "1.2.840.113549.3.4" "id-alg-rc4" +KeyEncryptionAlgorithmIdentifier B "0.4.0.127.0.7.1.1.5.1.1.3" "ecka-eg-X963KDF-SHA256" +KeyEncryptionAlgorithmIdentifier B "0.4.0.127.0.7.1.1.5.1.1.4" "ecka-eg-X963KDF-SHA384" +KeyEncryptionAlgorithmIdentifier B "0.4.0.127.0.7.1.1.5.1.1.5" "ecka-eg-X963KDF-SHA512" + +KeyEncryptionAlgorithmIdentifier B "2.16.840.1.101.3.4.1.5" "id-aes128-wrap" +KeyEncryptionAlgorithmIdentifier B "2.16.840.1.101.3.4.1.25" "id-aes192-wrap" +KeyEncryptionAlgorithmIdentifier B "2.16.840.1.101.3.4.1.45" "id-aes256-wrap" + +GCMParameters B "2.16.840.1.101.3.4.1.6" "id-aes128-GCM" +GCMParameters B "2.16.840.1.101.3.4.1.26" "id-aes192-GCM" +GCMParameters B "2.16.840.1.101.3.4.1.46" "id-aes256-GCM" + +CCMParameters B "2.16.840.1.101.3.4.1.7" "id-aes128-CCM" +CCMParameters B "2.16.840.1.101.3.4.1.27" "id-aes192-CCM" +CCMParameters B "2.16.840.1.101.3.4.1.44" "id-aes256-CCM" + # EC algorithms from RFC 3278 / RFC 5753 KeyWrapAlgorithm B "1.3.133.16.840.63.0.2" "dhSinglePass-stdDH-sha1kdf-scheme" KeyWrapAlgorithm B "1.3.132.1.11.0" "dhSinglePass-stdDH-sha224kdf-scheme" @@ -121,72 +140,94 @@ FirmwarePackageLoadError/version fwErrorVersion #.FN_BODY ContentInfo top_tree = tree; %(DEFAULT_BODY)s - content_tvb = NULL; - object_identifier_id = NULL; top_tree = NULL; #.FN_PARS ContentType - FN_VARIANT = _str VAL_PTR = &object_identifier_id + FN_VARIANT = _str VAL_PTR = &cms_data->object_identifier_id #.FN_BODY ContentType - const char *name = NULL; + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->object_identifier_id = NULL; + const char *name = NULL; - %(DEFAULT_BODY)s + %(DEFAULT_BODY)s - if(object_identifier_id) { - name = oid_resolved_from_string(actx->pinfo->pool, object_identifier_id); - proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id); - } + if(cms_data->object_identifier_id) { + name = oid_resolved_from_string(actx->pinfo->pool, cms_data->object_identifier_id); + proto_item_append_text(tree, " (%%s)", name ? name : cms_data->object_identifier_id); + } #.FN_BODY ContentInfo/content - offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + offset=call_ber_oid_callback(cms_data->object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); #.FN_BODY EncapsulatedContentInfo/eContent + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->content_tvb = NULL; + offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &cms_data->content_tvb); - offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &content_tvb); - - if(content_tvb) { - proto_item_set_text(actx->created_item, "eContent (%%u bytes)", tvb_reported_length (content_tvb)); + if(cms_data->content_tvb) { + proto_item_set_text(actx->created_item, "eContent (%%u bytes)", tvb_reported_length(cms_data->content_tvb)); - call_ber_oid_callback(object_identifier_id, content_tvb, 0, actx->pinfo, top_tree ? top_tree : tree, NULL); + call_ber_oid_callback(cms_data->object_identifier_id, cms_data->content_tvb, 0, actx->pinfo, top_tree ? top_tree : tree, NULL); } #.FN_PARS OtherRecipientInfo/oriType - FN_VARIANT = _str VAL_PTR = &object_identifier_id + FN_VARIANT = _str VAL_PTR = &cms_data->object_identifier_id + +#.FN_HDR OtherRecipientInfo/oriType + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->object_identifier_id = NULL; #.FN_BODY OtherRecipientInfo/oriValue - offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + offset=call_ber_oid_callback(cms_data->object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); #.FN_PARS OtherKeyAttribute/keyAttrId - FN_VARIANT = _str HF_INDEX = hf_cms_ci_contentType VAL_PTR = &object_identifier_id + FN_VARIANT = _str HF_INDEX = hf_cms_ci_contentType VAL_PTR = &cms_data->object_identifier_id + +#.FN_HDR OtherKeyAttribute/keyAttrId + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->object_identifier_id = NULL; #.FN_BODY OtherKeyAttribute/keyAttr - offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + offset=call_ber_oid_callback(cms_data->object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + #.FN_PARS OtherRevocationInfoFormat/otherRevInfoFormat - FN_VARIANT = _str VAL_PTR = &object_identifier_id + FN_VARIANT = _str VAL_PTR = &cms_data->object_identifier_id + +#.FN_HDR OtherRevocationInfoFormat/otherRevInfoFormat + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->object_identifier_id = NULL; #.FN_BODY OtherRevocationInfoFormat/otherRevInfo - offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + offset=call_ber_oid_callback(cms_data->object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); #.FN_PARS Attribute/attrType - FN_VARIANT = _str HF_INDEX = hf_cms_attrType VAL_PTR = &object_identifier_id + FN_VARIANT = _str HF_INDEX = hf_cms_attrType VAL_PTR = &cms_data->object_identifier_id #.FN_BODY Attribute/attrType + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->object_identifier_id = NULL; const char *name = NULL; %(DEFAULT_BODY)s - if(object_identifier_id) { - name = oid_resolved_from_string(actx->pinfo->pool, object_identifier_id); - proto_item_append_text(tree, " (%%s)", name ? name : object_identifier_id); + if(cms_data->object_identifier_id) { + name = oid_resolved_from_string(actx->pinfo->pool, cms_data->object_identifier_id); + proto_item_append_text(tree, " (%%s)", name ? name : cms_data->object_identifier_id); } #.FN_BODY AttributeValue + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); - offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + offset=call_ber_oid_callback(cms_data->object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); #.FN_BODY MessageDigest + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); proto_item *pi; int old_offset = offset; @@ -198,26 +239,29 @@ FirmwarePackageLoadError/version fwErrorVersion old_offset = get_ber_identifier(tvb, old_offset, NULL, NULL, NULL); old_offset = get_ber_length(tvb, old_offset, NULL, NULL); - if(content_tvb) - cms_verify_msg_digest(pi, content_tvb, x509af_get_last_algorithm_id(), tvb, old_offset); + if(cms_data->content_tvb) + cms_verify_msg_digest(pi, cms_data->content_tvb, x509af_get_last_algorithm_id(), tvb, old_offset); #.FN_PARS SMIMECapability/capability - FN_VARIANT = _str HF_INDEX = hf_cms_attrType VAL_PTR = &object_identifier_id + FN_VARIANT = _str HF_INDEX = hf_cms_attrType VAL_PTR = &cms_data->object_identifier_id #.FN_BODY SMIMECapability/capability + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); + cms_data->object_identifier_id = NULL; const char *name = NULL; %(DEFAULT_BODY)s - if(object_identifier_id) { - name = oid_resolved_from_string(actx->pinfo->pool, object_identifier_id); - proto_item_append_text(tree, " %%s", name ? name : object_identifier_id); + if(cms_data->object_identifier_id) { + name = oid_resolved_from_string(actx->pinfo->pool, cms_data->object_identifier_id); + proto_item_append_text(tree, " %%s", name ? name : cms_data->object_identifier_id); cap_tree = tree; } #.FN_BODY SMIMECapability/parameters + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); - offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); + offset=call_ber_oid_callback(cms_data->object_identifier_id, tvb, offset, actx->pinfo, tree, NULL); #.FN_PARS RC2ParameterVersion VAL_PTR = &length @@ -238,10 +282,11 @@ FirmwarePackageLoadError/version fwErrorVersion #.END #.FN_FTR EncryptedContent + struct cms_private_data *cms_data = cms_get_private_data(actx->pinfo); - item = actx->created_item; + item = actx->created_item; - PBE_decrypt_data(object_identifier_id, encrypted_tvb, actx->pinfo, actx, item); + PBE_decrypt_data(cms_data->object_identifier_id, encrypted_tvb, actx->pinfo, actx, item); #.END |