ASN.1: Add a helper for parsing SEQUENCE
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
3393d94d02
commit
f7f2843c45
2 changed files with 20 additions and 0 deletions
|
@ -307,3 +307,21 @@ int asn1_get_integer(const u8 *buf, size_t len, int *integer, const u8 **next)
|
|||
*integer = value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int asn1_get_sequence(const u8 *buf, size_t len, struct asn1_hdr *hdr,
|
||||
const u8 **next)
|
||||
{
|
||||
if (asn1_get_next(buf, len, hdr) < 0 ||
|
||||
hdr->class != ASN1_CLASS_UNIVERSAL ||
|
||||
hdr->tag != ASN1_TAG_SEQUENCE) {
|
||||
wpa_printf(MSG_DEBUG,
|
||||
"ASN.1: Expected SEQUENCE - found class %d tag 0x%x",
|
||||
hdr->class, hdr->tag);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (next)
|
||||
*next = hdr->payload + hdr->length;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -66,6 +66,8 @@ void asn1_oid_to_str(const struct asn1_oid *oid, char *buf, size_t len);
|
|||
unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len);
|
||||
int asn1_oid_equal(const struct asn1_oid *a, const struct asn1_oid *b);
|
||||
int asn1_get_integer(const u8 *buf, size_t len, int *integer, const u8 **next);
|
||||
int asn1_get_sequence(const u8 *buf, size_t len, struct asn1_hdr *hdr,
|
||||
const u8 **next);
|
||||
|
||||
extern struct asn1_oid asn1_sha1_oid;
|
||||
extern struct asn1_oid asn1_sha256_oid;
|
||||
|
|
Loading…
Reference in a new issue