Commit Diff


commit - 86693a33abd5e8c31530adb3045c9f4664d4d6c9
commit + ec96a0ad3b80dd46a4d68359807c0c09560100cb
blob - 9b4f060e60aa901ccc1b3f0e35bd1185c67037d2
blob + ecac97be9e3002b61bee2aae7397548cae17bab8
--- crypto.c
+++ crypto.c
@@ -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 *))
@@ -572,7 +573,20 @@ ecdsae_compute_key(void *out, size_t outlen, const EC_
 	log_debug("debug: %s", __func__);
 	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,