RSA: Use ASN.1 helper functions

Simplify ASN.1 parser operations by using the shared helper functions.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2021-03-12 23:24:54 +02:00
parent 72b0217ab1
commit 173e7eedef

View file

@ -37,9 +37,8 @@ static const u8 * crypto_rsa_parse_integer(const u8 *pos, const u8 *end,
return NULL; return NULL;
if (asn1_get_next(pos, end - pos, &hdr) < 0 || if (asn1_get_next(pos, end - pos, &hdr) < 0 ||
hdr.class != ASN1_CLASS_UNIVERSAL || hdr.tag != ASN1_TAG_INTEGER) { !asn1_is_integer(&hdr)) {
wpa_printf(MSG_DEBUG, "RSA: Expected INTEGER - found class %d " asn1_unexpected(&hdr, "RSA: Expected INTEGER");
"tag 0x%x", hdr.class, hdr.tag);
return NULL; 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 || if (asn1_get_next(buf, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) {
hdr.class != ASN1_CLASS_UNIVERSAL || asn1_unexpected(&hdr, "RSA: Expected SEQUENCE (public key)");
hdr.tag != ASN1_TAG_SEQUENCE) {
wpa_printf(MSG_DEBUG, "RSA: Expected SEQUENCE "
"(public key) - found class %d tag 0x%x",
hdr.class, hdr.tag);
goto error; goto error;
} }
pos = hdr.payload; 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 * Version ::= INTEGER -- shall be 0 for this version of the standard
*/ */
if (asn1_get_next(buf, len, &hdr) < 0 || if (asn1_get_next(buf, len, &hdr) < 0 || !asn1_is_sequence(&hdr)) {
hdr.class != ASN1_CLASS_UNIVERSAL || asn1_unexpected(&hdr, "RSA: Expected SEQUENCE (public key)");
hdr.tag != ASN1_TAG_SEQUENCE) {
wpa_printf(MSG_DEBUG, "RSA: Expected SEQUENCE "
"(public key) - found class %d tag 0x%x",
hdr.class, hdr.tag);
goto error; goto error;
} }
pos = hdr.payload; pos = hdr.payload;