diff options
author | Omar Polo <op@omarpolo.com> | 2023-06-11 11:30:20 +0000 |
---|---|---|
committer | Omar Polo <op@omarpolo.com> | 2023-06-11 11:30:20 +0000 |
commit | ec96a0ad3b80dd46a4d68359807c0c09560100cb (patch) | |
tree | 1ed76a8a7d9f7fcc90f3060862b5a3e29072aff8 /crypto.c | |
parent | 86693a33abd5e8c31530adb3045c9f4664d4d6c9 (diff) |
work around different signature for ecdsae_compute_key
Diffstat (limited to 'crypto.c')
-rw-r--r-- | crypto.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -562,6 +562,7 @@ ecdsae_keygen(EC_KEY *eckey) return (keygen(eckey)); } +#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER <= 0x3080100fL static int ecdsae_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY *ecdh, void *(*kdf)(const void *, size_t, void *, size_t *)) @@ -573,6 +574,19 @@ ecdsae_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, EC_KEY_METHOD_get_compute_key(ecdsa_default, &ckey); return (ckey(out, outlen, pub_key, ecdh, kdf)); } +#else +static int +ecdsae_compute_key(unsigned char **psec, size_t *pseclen, + const EC_POINT *pub_key, const EC_KEY *ecdh) +{ + int (*ckey)(unsigned char **, size_t *, const EC_POINT *, + const EC_KEY *); + + log_debug("debug: %s", __func__); + EC_KEY_METHOD_get_compute_key(ecdsa_default, &ckey); + return (ckey(psec, pseclen, pub_key, ecdh)); +} +#endif static int ecdsae_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig, |