diff --git a/security/nettle/Makefile b/security/nettle/Makefile index 10764107b1d3..98ba631471b8 100644 --- a/security/nettle/Makefile +++ b/security/nettle/Makefile @@ -1,57 +1,64 @@ # Created by: ijliao # $FreeBSD$ PORTNAME= nettle PORTVERSION= 3.7.2 +PORTREVISION= 1 CATEGORIES= security MASTER_SITES= GNU \ https://www.lysator.liu.se/~nisse/archive/ MAINTAINER= sunpoet@FreeBSD.org COMMENT= Low-level cryptographic library LICENSE= GPLv2+ LGPL3 LICENSE_COMB= multi LICENSE_FILE_GPLv2+ = ${WRKSRC}/COPYINGv2 LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LESSERv3 BUILD_DEPENDS= gmp>=6.0.0:math/gmp LIB_DEPENDS= libgmp.so:math/gmp 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 OPTIONS_DEFINE= DOCS EXAMPLES +EXAMPLES_CFLAGS= -I${OPENSSLINC} +EXAMPLES_USES= ssl + .include .if ${ARCH} == "sparc64" CONFIGURE_ENV+= CCPIC=-fPIC .endif post-patch: - @${REINPLACE_CMD} -e '/SUBDIRS = / s| examples||' ${WRKSRC}/Makefile.in @${REINPLACE_CMD} -e '/libdir=/ s|lib32|lib|' ${WRKSRC}/configure .if ${ARCH} == "mips64" @${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} NEWS README nettle.html nettle.pdf ${STAGEDIR}${DOCSDIR} post-install-EXAMPLES-on: ${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/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 1c870090c412..55cf281c811a 100644 --- a/security/nettle/pkg-plist +++ b/security/nettle/pkg-plist @@ -1,105 +1,118 @@ bin/nettle-hash bin/nettle-lfib-stream bin/nettle-pbkdf2 bin/pkcs1-conv bin/sexp-conv include/nettle/aes.h include/nettle/arcfour.h include/nettle/arctwo.h include/nettle/asn1.h include/nettle/base16.h include/nettle/base64.h include/nettle/bignum.h include/nettle/blowfish.h include/nettle/buffer.h include/nettle/camellia.h include/nettle/cast128.h include/nettle/cbc.h include/nettle/ccm.h include/nettle/cfb.h include/nettle/chacha-poly1305.h include/nettle/chacha.h include/nettle/cmac.h include/nettle/ctr.h include/nettle/curve25519.h include/nettle/curve448.h include/nettle/des.h include/nettle/dsa-compat.h include/nettle/dsa.h include/nettle/eax.h include/nettle/ecc-curve.h include/nettle/ecc.h include/nettle/ecdsa.h include/nettle/eddsa.h include/nettle/gcm.h include/nettle/gostdsa.h include/nettle/gosthash94.h include/nettle/hkdf.h include/nettle/hmac.h include/nettle/knuth-lfib.h include/nettle/macros.h include/nettle/md2.h include/nettle/md4.h include/nettle/md5-compat.h include/nettle/md5.h include/nettle/memops.h include/nettle/memxor.h include/nettle/nettle-meta.h include/nettle/nettle-types.h include/nettle/pbkdf2.h include/nettle/pgp.h include/nettle/pkcs1.h include/nettle/poly1305.h include/nettle/pss-mgf1.h include/nettle/pss.h include/nettle/realloc.h include/nettle/ripemd160.h include/nettle/rsa.h include/nettle/salsa20.h include/nettle/serpent.h include/nettle/sexp.h include/nettle/sha.h 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 include/nettle/xts.h include/nettle/yarrow.h lib/libhogweed.a lib/libhogweed.so lib/libhogweed.so.6 lib/libhogweed.so.6.3 lib/libnettle.a lib/libnettle.so lib/libnettle.so.8 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