diff --git a/security/nettle/Makefile b/security/nettle/Makefile index 7ae7ed67bd29..98ba631471b8 100644 --- a/security/nettle/Makefile +++ b/security/nettle/Makefile @@ -2,7 +2,8 @@ # $FreeBSD$ PORTNAME= nettle -PORTVERSION= 3.6 +PORTVERSION= 3.7.2 +PORTREVISION= 1 CATEGORIES= security MASTER_SITES= GNU \ https://www.lysator.liu.se/~nisse/archive/ @@ -23,14 +24,16 @@ USES= compiler:c11 gmake localbase makeinfo pathfix CONFIGURE_ARGS= --enable-shared CONFIGURE_ENV= M4="/usr/bin/m4 -g" GNU_CONFIGURE= yes +TEST_TARGET= check USE_LDCONFIG= yes INFO= nettle -PORTDOCS= NEWS README nettle.html nettle.pdf -PORTEXAMPLES= *.c *.h OPTIONS_DEFINE= DOCS EXAMPLES +EXAMPLES_CFLAGS= -I${OPENSSLINC} +EXAMPLES_USES= ssl + .include .if ${ARCH} == "sparc64" @@ -43,15 +46,19 @@ post-patch: @${REINPLACE_CMD} -e 's|__sgi|__unix__|' ${WRKSRC}/configure .endif +post-patch-EXAMPLES-off: + @${REINPLACE_CMD} -e '/SUBDIRS = / s| examples||' ${WRKSRC}/Makefile.in + post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib*.so post-install-DOCS-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR} - cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} + ${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC} && ${INSTALL_DATA} NEWS README nettle.html nettle.pdf ${STAGEDIR}${DOCSDIR} post-install-EXAMPLES-on: - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} - cd ${WRKSRC}/examples && ${INSTALL_DATA} ${PORTEXAMPLES} ${STAGEDIR}${EXAMPLESDIR} + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + cd ${WRKSRC}/examples && ${INSTALL_PROGRAM} base16dec base16enc base64dec base64enc ecc-benchmark hogweed-benchmark nettle-benchmark random-prime rsa-decrypt rsa-encrypt rsa-keygen rsa-sign rsa-verify ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${WRKSRC}/examples/*.[ch] ${STAGEDIR}${EXAMPLESDIR} .include diff --git a/security/nettle/distinfo b/security/nettle/distinfo index e222dc8ac294..5d9308e5c04d 100644 --- a/security/nettle/distinfo +++ b/security/nettle/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1588256838 -SHA256 (nettle-3.6.tar.gz) = d24c0d0f2abffbc8f4f34dcf114b0f131ec3774895f3555922fe2f40f3d5e3f1 -SIZE (nettle-3.6.tar.gz) = 2288173 +TIMESTAMP = 1616863436 +SHA256 (nettle-3.7.2.tar.gz) = 8d2a604ef1cde4cd5fb77e422531ea25ad064679ff0adf956e78b3352e0ef162 +SIZE (nettle-3.7.2.tar.gz) = 2382309 diff --git a/security/nettle/files/patch-examples-nettle-openssl.c b/security/nettle/files/patch-examples-nettle-openssl.c new file mode 100644 index 000000000000..d7cf037c61c3 --- /dev/null +++ b/security/nettle/files/patch-examples-nettle-openssl.c @@ -0,0 +1,49 @@ +--- examples/nettle-openssl.c.orig 2021-03-21 08:32:25 UTC ++++ examples/nettle-openssl.c +@@ -374,6 +374,7 @@ openssl_hash_update(void *p, + EVP_DigestUpdate(ctx->evp, src, length); + } + ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + #define OPENSSL_HASH(NAME, name) \ + static void \ + openssl_##name##_init(void *p) \ +@@ -404,6 +405,38 @@ nettle_openssl_##name = { \ + openssl_hash_update, \ + openssl_##name##_digest \ + }; ++#else ++#define OPENSSL_HASH(NAME, name) \ ++static void \ ++openssl_##name##_init(void *p) \ ++{ \ ++ struct openssl_hash_ctx *ctx = p; \ ++ if ((ctx->evp = EVP_MD_CTX_create()) == NULL) \ ++ return; \ ++ \ ++ EVP_DigestInit(ctx->evp, EVP_##name()); \ ++} \ ++ \ ++static void \ ++openssl_##name##_digest(void *p, \ ++ size_t length, uint8_t *dst) \ ++{ \ ++ struct openssl_hash_ctx *ctx = p; \ ++ assert(length == NAME##_DIGEST_LENGTH); \ ++ \ ++ EVP_DigestFinal(ctx->evp, dst, NULL); \ ++ EVP_DigestInit(ctx->evp, EVP_##name()); \ ++} \ ++ \ ++const struct nettle_hash \ ++nettle_openssl_##name = { \ ++ "openssl " #name, sizeof(struct openssl_hash_ctx), \ ++ NAME##_DIGEST_LENGTH, NAME##_CBLOCK, \ ++ openssl_##name##_init, \ ++ openssl_hash_update, \ ++ openssl_##name##_digest \ ++}; ++#endif + + OPENSSL_HASH(MD5, md5) + OPENSSL_HASH(SHA, sha1) diff --git a/security/nettle/pkg-plist b/security/nettle/pkg-plist index 38b707ce259e..55cf281c811a 100644 --- a/security/nettle/pkg-plist +++ b/security/nettle/pkg-plist @@ -63,6 +63,7 @@ include/nettle/sha1.h include/nettle/sha2.h include/nettle/sha3.h include/nettle/siv-cmac.h +include/nettle/streebog.h include/nettle/twofish.h include/nettle/umac.h include/nettle/version.h @@ -71,10 +72,47 @@ include/nettle/yarrow.h lib/libhogweed.a lib/libhogweed.so lib/libhogweed.so.6 -lib/libhogweed.so.6.0 +lib/libhogweed.so.6.3 lib/libnettle.a lib/libnettle.so lib/libnettle.so.8 -lib/libnettle.so.8.0 +lib/libnettle.so.8.3 libdata/pkgconfig/hogweed.pc libdata/pkgconfig/nettle.pc +%%PORTDOCS%%%%DOCSDIR%%/NEWS +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/nettle.html +%%PORTDOCS%%%%DOCSDIR%%/nettle.pdf +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base16dec +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base16dec.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base16enc +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base16enc.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base64dec +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base64dec.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base64enc +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/base64enc.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ecc-benchmark +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ecc-benchmark.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hogweed-benchmark +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hogweed-benchmark.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/io.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/io.h +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nettle-benchmark +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nettle-benchmark.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nettle-openssl.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/random-prime +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/random-prime.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/read_rsa_key.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-decrypt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-decrypt.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-encrypt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-encrypt.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-keygen +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-keygen.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-session.h +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-sign +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-sign.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-verify +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rsa-verify.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timing.c +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timing.h