SUBDIRS = man
ARFLAGS = cr
-lib_pair_ap_a_CFLAGS = -Wall -g -DCONFIG_OPENSSL -pthread
+lib_pair_ap_a_CFLAGS = -Wall -g -DCONFIG_GCRYPT -pthread
lib_tinyhttp_a_CFLAGS = -pthread
lib_dbus_interface_a_CFLAGS = -pthread
lib_mpris_interface_a_CFLAGS = -pthread
])
])
PKG_CHECK_MODULES([libsodium], [libsodium],[CFLAGS="${libsodium_CFLAGS} ${CFLAGS}" LIBS="${libsodium_LIBS} ${LIBS}"],[AC_MSG_ERROR(AirPlay 2 support requires libsodium -- libsodium-dev suggested)])
+ PKG_CHECK_MODULES([libgcrypt], [libgcrypt],[CFLAGS="${libgcrypt_CFLAGS} ${CFLAGS}" LIBS="${libgcrypt_LIBS} ${LIBS}"],[
+ AC_CHECK_LIB([gcrypt], [gcry_control], [], [
+ AC_MSG_ERROR([Airplay 2 support requires libgcrypt -- libgcrypt-dev suggested])
+ ])
+ ])
PKG_CHECK_MODULES([libavutil], [libavutil],[CFLAGS="${libavutil_CFLAGS} ${CFLAGS}" LIBS="${libavutil_LIBS} ${LIBS}"],[
AC_MSG_ERROR(AirPlay 2 support requires libavutil -- libavutil-dev suggested)])
PKG_CHECK_MODULES([libavcodec], [libavcodec],[CFLAGS="${libavcodec_CFLAGS} ${CFLAGS}" LIBS="${libavcodec_LIBS} ${LIBS}"],[
#ifdef CONFIG_AIRPLAY_2
#include "ptp-utilities.h"
+#include <gcrypt.h>
#include <libavcodec/avcodec.h>
#include <sodium.h>
#include <uuid/uuid.h>
debug(1, "libsodium initialised.");
}
+ // this code is based on
+ // https://www.gnupg.org/documentation/manuals/gcrypt/Initializing-the-library.html
+
+ /* Version check should be the very first call because it
+ makes sure that important subsystems are initialized.
+ #define NEED_LIBGCRYPT_VERSION to the minimum required version. */
+
+#define NEED_LIBGCRYPT_VERSION "1.5.4"
+
+ if (!gcry_check_version(NEED_LIBGCRYPT_VERSION)) {
+ die("libgcrypt is too old (need %s, have %s).", NEED_LIBGCRYPT_VERSION,
+ gcry_check_version(NULL));
+ }
+
+ /* Disable secure memory. */
+ gcry_control(GCRYCTL_DISABLE_SECMEM, 0);
+
+ /* ... If required, other initialization goes here. */
+
+ /* Tell Libgcrypt that initialization has completed. */
+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
+
#endif
/* Mess around with the latency options */