Avoid symbol collision with libcrypto
authortb <tb@openbsd.org>
Sun, 13 Nov 2022 14:09:17 +0000 (14:09 +0000)
committertb <tb@openbsd.org>
Sun, 13 Nov 2022 14:09:17 +0000 (14:09 +0000)
libcrypto now provides Ed25519 and the raw public key API, so neuter the
compat implementations. Also link libfido against libcrypto.

The #ifdefs were upstreamed in https://github.com/Yubico/libfido2/pull/645

no objection djm
ok jsing

lib/libfido2/Makefile
lib/libfido2/src/eddsa.c
lib/libfido2/src/fido/eddsa.h

index 740e995..4833d70 100644 (file)
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.8 2022/08/29 03:04:29 djm Exp $
+# $OpenBSD: Makefile,v 1.9 2022/11/13 14:09:17 tb Exp $
 
 .PATH: ${.CURDIR}/man ${.CURDIR}/src
 
@@ -10,6 +10,7 @@ CDIAGFLAGS+=  -Wall -Wextra
 CDIAGFLAGS+=   -Werror
 
 LDADD+=                -L${BSDOBJDIR}/lib/libcbor -lcbor
+LDADD+=                -L${BSDOBJDIR}/lib/libcrypto -lcrypto
 LDADD+=                -L${BSDOBJDIR}/lib/libz -lz
 
 SYMBOL_LIST=   Symbols.list
index a94ae30..c718f7e 100644 (file)
@@ -10,7 +10,7 @@
 #include "fido.h"
 #include "fido/eddsa.h"
 
-#if defined(LIBRESSL_VERSION_NUMBER)
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3070000f
 EVP_PKEY *
 EVP_PKEY_new_raw_public_key(int type, ENGINE *e, const unsigned char *key,
     size_t keylen)
index 083721c..12abaaa 100644 (file)
@@ -31,7 +31,7 @@ int eddsa_pk_from_ptr(eddsa_pk_t *, const void *, size_t);
 
 #ifdef _FIDO_INTERNAL
 
-#if defined(LIBRESSL_VERSION_NUMBER)
+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3070000f
 #define EVP_PKEY_ED25519 EVP_PKEY_NONE
 int EVP_PKEY_get_raw_public_key(const EVP_PKEY *, unsigned char *, size_t *);
 EVP_PKEY *EVP_PKEY_new_raw_public_key(int, ENGINE *, const unsigned char *,