aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-x509af.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-20 10:45:11 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-20 10:45:11 +0000
commita9c3e27415abef93c66de5d9a4acd468fd84a22f (patch)
tree7ea6aa17b8b44ed39a9673bdd5be608f9c54b69a /epan/dissectors/packet-x509af.c
parent723d3dbe44c0d14ef0849195c662211aaa98fdb8 (diff)
Small update to AlgorithmIdentifier.
Allow the TYPE field to match ANY type of BER construct. svn path=/trunk/; revision=11441
Diffstat (limited to 'epan/dissectors/packet-x509af.c')
-rw-r--r--epan/dissectors/packet-x509af.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/epan/dissectors/packet-x509af.c b/epan/dissectors/packet-x509af.c
index 3fb6017e80..86b636d28e 100644
--- a/epan/dissectors/packet-x509af.c
+++ b/epan/dissectors/packet-x509af.c
@@ -171,16 +171,27 @@ static gint ett_x509af_SET_OF_AttributeType = -1;
-static int dissect_hf_x509af_algorithm_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+static char algorithm_id[64]; /*64 chars should be long enough? */
+static int
+dissect_hf_x509af_algorithm_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset)
+{
offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
- hf_x509af_algorithm_id, NULL);
+ hf_x509af_algorithm_id, algorithm_id);
+ return offset;
+}
+
+static int
+dissect_hf_x509af_algorithm_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset)
+{
+ offset=invoke_ber_oid_callback(algorithm_id, tvb, offset, pinfo, tree);
+
return offset;
}
/* Algorithm Identifier can not yet be handled by the compiler */
static ber_sequence AlgorithmIdentifier_sequence[] = {
{ BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_hf_x509af_algorithm_id },
-/*QQQ for the Type we need compiler support for ANY (==FT_BYTES) */
+ { BER_CLASS_ANY, 0, 0, dissect_hf_x509af_algorithm_type },
{ 0, 0, 0, NULL }
};