From 173e7eedef52fcff6ea4d844c9c359527037c5b6 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 12 Mar 2021 23:24:54 +0200 Subject: [PATCH] RSA: Use ASN.1 helper functions Simplify ASN.1 parser operations by using the shared helper functions. Signed-off-by: Jouni Malinen --- src/tls/rsa.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/tls/rsa.c b/src/tls/rsa.c index 1b01f5843..56ae7d779 100644 --- a/src/tls/rsa.c +++ b/src/tls/rsa.c @@ -37,9 +37,8 @@ static const u8 * crypto_rsa_parse_integer(const u8 *pos, const u8 *end, return NULL; if (asn1_get_next(pos, end - pos, &hdr) < 0 || - hdr.class != ASN1_CLASS_UNIVERSAL || hdr.tag != ASN1_TAG_INTEGER) { - wpa_printf(MSG_DEBUG, "RSA: Expected INTEGER - found class %d " - "tag 0x%x", hdr.class, hdr.tag); + !asn1_is_integer(&hdr)) { + asn1_unexpected(&hdr, "RSA: Expected INTEGER"); return NULL; } @@ -84,12 +83,8 @@ crypto_rsa_import_public_key(const u8 *buf, size_t len) * } */ - if (asn1_get_next(buf, len, &hdr) < 0 || - hdr.class != ASN1_CLASS_UNIVERSAL || - hdr.tag != ASN1_TAG_SEQUENCE) { - wpa_printf(MSG_DEBUG, "RSA: Expected SEQUENCE " - "(public key) - found class %d tag 0x%x", - hdr.class, hdr.tag); + if (asn1_get_next(buf, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { + asn1_unexpected(&hdr, "RSA: Expected SEQUENCE (public key)"); goto error; } pos = hdr.payload; @@ -191,12 +186,8 @@ crypto_rsa_import_private_key(const u8 *buf, size_t len) * * Version ::= INTEGER -- shall be 0 for this version of the standard */ - if (asn1_get_next(buf, len, &hdr) < 0 || - hdr.class != ASN1_CLASS_UNIVERSAL || - hdr.tag != ASN1_TAG_SEQUENCE) { - wpa_printf(MSG_DEBUG, "RSA: Expected SEQUENCE " - "(public key) - found class %d tag 0x%x", - hdr.class, hdr.tag); + if (asn1_get_next(buf, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) { + asn1_unexpected(&hdr, "RSA: Expected SEQUENCE (public key)"); goto error; } pos = hdr.payload;