diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2004-07-20 10:45:11 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2004-07-20 10:45:11 +0000 |
commit | a9c3e27415abef93c66de5d9a4acd468fd84a22f (patch) | |
tree | 7ea6aa17b8b44ed39a9673bdd5be608f9c54b69a /epan/dissectors/packet-x509af.c | |
parent | 723d3dbe44c0d14ef0849195c662211aaa98fdb8 (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.c | 17 |
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 } }; |