mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-05-29 17:41:24 +02:00
In asn1_find_tag(), tag_data and tag_len are not modified if not found.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
@@ -83,9 +83,14 @@ int walk_tlv(const uint8_t *cdata, size_t cdata_len, uint8_t **p, uint16_t *tag,
|
|||||||
bool asn1_find_tag(const uint8_t *data, size_t data_len, uint16_t itag, size_t *tag_len, uint8_t **tag_data) {
|
bool asn1_find_tag(const uint8_t *data, size_t data_len, uint16_t itag, size_t *tag_len, uint8_t **tag_data) {
|
||||||
uint16_t tag = 0x0;
|
uint16_t tag = 0x0;
|
||||||
uint8_t *p = NULL;
|
uint8_t *p = NULL;
|
||||||
while (walk_tlv(data, data_len, &p, &tag, tag_len, tag_data)) {
|
uint8_t *tdata = NULL;
|
||||||
if (itag == tag)
|
size_t tlen = 0;
|
||||||
|
while (walk_tlv(data, data_len, &p, &tag, &tlen, &tdata)) {
|
||||||
|
if (itag == tag) {
|
||||||
|
*tag_data = tdata;
|
||||||
|
*tag_len = tlen;
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user