From 69120cc96101e79499dbf900a76fb04e501b7f83 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Sat, 13 Aug 2022 00:43:35 +0200 Subject: [PATCH] Added cvc_get_ext() to find CVC extensions. Signed-off-by: Pol Henarejos --- src/hsm/cvc.c | 7 +++++++ src/hsm/cvc.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/hsm/cvc.c b/src/hsm/cvc.c index 478c7e5..2c5954c 100644 --- a/src/hsm/cvc.c +++ b/src/hsm/cvc.c @@ -392,6 +392,13 @@ const uint8_t *cvc_get_pub(const uint8_t *data, size_t len, size_t *olen) { return NULL; } +const uint8_t *cvc_get_ext(const uint8_t *data, size_t len, size_t *olen) { + if ((data = cvc_get_body(data, len, olen)) != NULL) { + return cvc_get_field(data, len, olen, 0x65); + } + return NULL; +} + extern PUK puk_store[MAX_PUK_STORE_ENTRIES]; extern int puk_store_entries; diff --git a/src/hsm/cvc.h b/src/hsm/cvc.h index 2305153..90c2774 100644 --- a/src/hsm/cvc.h +++ b/src/hsm/cvc.h @@ -43,6 +43,7 @@ extern const uint8_t *cvc_get_field(const uint8_t *data, size_t len, size_t *ole extern const uint8_t *cvc_get_car(const uint8_t *data, size_t len, size_t *olen); extern const uint8_t *cvc_get_chr(const uint8_t *data, size_t len, size_t *olen); extern const uint8_t *cvc_get_pub(const uint8_t *data, size_t len, size_t *olen); +extern const uint8_t *cvc_get_ext(const uint8_t *data, size_t len, size_t *olen); extern int cvc_verify(const uint8_t *cert, size_t cert_len, const uint8_t *ca, size_t ca_len); extern mbedtls_ecp_group_id cvc_inherite_ec_group(const uint8_t *ca, size_t ca_len); extern int puk_verify(const uint8_t *sig, size_t sig_len, const uint8_t *hash, size_t hash_len, const uint8_t *ca, size_t ca_len);