From b8402ab085c490c6385758c7e21e7828663ad5f7 Mon Sep 17 00:00:00 2001 From: Cedric Izoard Date: Mon, 28 Jun 2021 18:25:25 +0200 Subject: [PATCH] DPP: Use crypto_ec_key_get_subject_public_key() when possible Keep the locally defined ASN.1 sequence DPP_BOOTSTRAPPING_KEY for now to avoid losing a workaround for BoringSSL from commit 746c1792ac28 ("DPP: Build bootstrapping key DER encoding using custom routine"). Signed-off-by: Cedric Izoard --- src/common/dpp.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/common/dpp.c b/src/common/dpp.c index e4a00aef4..63189c169 100644 --- a/src/common/dpp.c +++ b/src/common/dpp.c @@ -2398,30 +2398,28 @@ fail: static void dpp_copy_csign(struct dpp_config_obj *conf, struct crypto_ec_key *csign) { - unsigned char *der = NULL; - int der_len; + struct wpabuf *c_sign_key; - der_len = i2d_PUBKEY((EVP_PKEY *) csign, &der); - if (der_len <= 0) + c_sign_key = crypto_ec_key_get_subject_public_key(csign); + if (!c_sign_key) return; + wpabuf_free(conf->c_sign_key); - conf->c_sign_key = wpabuf_alloc_copy(der, der_len); - OPENSSL_free(der); + conf->c_sign_key = c_sign_key; } static void dpp_copy_ppkey(struct dpp_config_obj *conf, struct crypto_ec_key *ppkey) { - unsigned char *der = NULL; - int der_len; + struct wpabuf *pp_key; - der_len = i2d_PUBKEY((EVP_PKEY *) ppkey, &der); - if (der_len <= 0) + pp_key = crypto_ec_key_get_subject_public_key(ppkey); + if (!pp_key) return; + wpabuf_free(conf->pp_key); - conf->pp_key = wpabuf_alloc_copy(der, der_len); - OPENSSL_free(der); + conf->pp_key = pp_key; }