From 06ec2a2e327f14f28bb1e353f2cb7c9a8cab3a90 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Mon, 14 Feb 2022 13:48:00 -0800 Subject: [PATCH] dpp-util: fix dpp_point_from_asn1 This got merged without a few additional fixes, in particular an over 80 character line and incorrect length check. Fixes: d8116e8828b4 ("dpp-util: add dpp_point_from_asn1()") --- src/dpp-util.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dpp-util.c b/src/dpp-util.c index 4a5bd046..5199d0ae 100644 --- a/src/dpp-util.c +++ b/src/dpp-util.c @@ -828,7 +828,8 @@ struct l_ecc_point *dpp_point_from_asn1(const uint8_t *asn1, size_t len) return NULL; /* SEQUENCE */ - inner_seq = asn1_der_find_elem(outer_seq, outer_len, 0, &tag, &inner_len); + inner_seq = asn1_der_find_elem(outer_seq, outer_len, 0, &tag, + &inner_len); if (!inner_seq || tag != ASN1_ID_SEQUENCE) return NULL; @@ -859,7 +860,7 @@ struct l_ecc_point *dpp_point_from_asn1(const uint8_t *asn1, size_t len) /* BITSTRING */ key_data = asn1_der_find_elem(outer_seq, outer_len, 1, &tag, &elen); - if (!key_data || tag != ASN1_ID_BIT_STRING || elen > 2) + if (!key_data || tag != ASN1_ID_BIT_STRING || elen < 2) return NULL; return l_ecc_point_from_data(curve, key_data[1],