diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c
index ac8e6a1eea..b6feddba98 100644
--- a/src/resolve/resolved-dns-packet.c
+++ b/src/resolve/resolved-dns-packet.c
@@ -18,6 +18,10 @@
along with systemd; If not, see .
***/
+#if HAVE_GCRYPT
+#include
+#endif
+
#include "alloc-util.h"
#include "dns-domain.h"
#include "resolved-dns-packet.h"
@@ -752,13 +756,20 @@ int dns_packet_append_opt(DnsPacket *p, uint16_t max_udp_size, bool edns0_do, in
static const uint8_t rfc6975[] = {
0, 5, /* OPTION_CODE: DAU */
+#if GCRYPT_VERSION_NUMBER >= 0x010600
+ 0, 7, /* LIST_LENGTH */
+#else
0, 6, /* LIST_LENGTH */
+#endif
DNSSEC_ALGORITHM_RSASHA1,
DNSSEC_ALGORITHM_RSASHA1_NSEC3_SHA1,
DNSSEC_ALGORITHM_RSASHA256,
DNSSEC_ALGORITHM_RSASHA512,
DNSSEC_ALGORITHM_ECDSAP256SHA256,
DNSSEC_ALGORITHM_ECDSAP384SHA384,
+#if GCRYPT_VERSION_NUMBER >= 0x010600
+ DNSSEC_ALGORITHM_ED25519,
+#endif
0, 6, /* OPTION_CODE: DHU */
0, 3, /* LIST_LENGTH */