Joseph Mingrone be18d9f77a
security/libgcrypt: Fix Curve25519 key validation
Starting with version 1.12.0, libgcrypt was failing to validate
Curve25519 secret keys on FreeBSD-main.  This resulted in failures such
as in the example below.  Incorporate the patch from
https://dev.gnupg.org/T8094 to fix the problem.

% TEMP_GPG=$(mktemp -d)

% GNUPGHOME=$TEMP_GPG gpg --batch --import < ./test/openpgp4-secret-key.asc
gpg: keybox '/tmp/tmp.gkqFaMAlVu/pubring.kbx' created
gpg: /tmp/tmp.gkqFaMAlVu/trustdb.gpg: trustdb created
gpg: key 7E6ABE924645CC60: public key "Notmuch Test Suite (INSECURE!) <test_suite@notmuchmail.org>" imported
gpg: key 7E6ABE924645CC60: secret key imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1

% GNUPGHOME=$TEMP_GPG gpg --decrypt ./test/corpora/crypto/basic-encrypted.eml
gpg: encrypted with cv25519 key, ID 1D71CFF38F6B48AF, created 2022-09-07
      "Notmuch Test Suite (INSECURE!) <test_suite@notmuchmail.org>"
gpg: public key decryption failed: Bad secret key
gpg: decryption failed: Bad secret key

Approved by:	cy (maintainer)
Obtained from:	https://dev.gnupg.org/T8094
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D55280
2026-02-13 17:57:38 -04:00

68 lines
1.5 KiB
Makefile

PORTNAME= libgcrypt
DISTVERSION= 1.12.0
PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= GNUPG
MAINTAINER= cy@FreeBSD.org
COMMENT= General purpose cryptographic library based on the code from GnuPG
WWW= https://www.gnupg.org/software/libgcrypt/index.html
LICENSE= GPLv2+ LGPL21+
LICENSE_COMB= multi
BUILD_DEPENDS= libgpg-error>=1.32:security/libgpg-error
RUN_DEPENDS= libgpg-error>=1.32:security/libgpg-error
USES= cpe libtool pathfix tar:bzip2
CPE_VENDOR= gnupg
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CFLAGS+= -pthread
TEST_TARGET= check
DOCS= AUTHORS ChangeLog ChangeLog-2011 INSTALL NEWS THANKS TODO \
doc/HACKING doc/README.apichanges
PORTDOCS= *
CONFIGURE_ARGS= --disable-drng-support
CONFIGURE_TARGET=${ARCH:S/amd64/x86_64/}-portbld-${OPSYS:tl}${OSREL}
OPTIONS_DEFINE= DOCS INFO STATIC
OPTIONS_DEFAULT= DOCS INFO STATIC
OPTIONS_SUB= yes
INFO_EXTRA_PATCHES_OFF= ${PATCHDIR}/extra-patch-no-info
INFO_CONFIGURE_ENV= MAKEINFO="${MAKEINFO} --no-split"
INFO_INFO= gcrypt
INFO_USES= makeinfo
STATIC_CONFIGURE_ENABLE= static
.include <bsd.port.options.mk>
.if ${ARCH} == "armv6" || ${ARCH} == "armv7"
CONFIGURE_ARGS+= --disable-jent-support
.endif
.if defined(WITH_DEBUG)
CFLAGS+= -DWITH_DEBUG
.endif
post-patch:
@${RM} ${WRKSRC}/doc/gcrypt.info*
@${REINPLACE_CMD} -e 's|ALIGN (3)|ALIGN (2)|g' ${WRKSRC}/mpi/i386/*.S
post-install:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}.so
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>