aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/nettle
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/nettle
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/nettle')
-rw-r--r--vcpkg/ports/nettle/ccas.patch71
-rw-r--r--vcpkg/ports/nettle/compile.patch26
-rw-r--r--vcpkg/ports/nettle/fix-libdir.patch12
-rw-r--r--vcpkg/ports/nettle/hogweed-arm.def290
-rw-r--r--vcpkg/ports/nettle/hogweed-arm64.def290
-rw-r--r--vcpkg/ports/nettle/hogweed-x64.def297
-rw-r--r--vcpkg/ports/nettle/hogweed-x86.def290
-rw-r--r--vcpkg/ports/nettle/host-tools.patch115
-rw-r--r--vcpkg/ports/nettle/lib-to-def.cmake32
-rw-r--r--vcpkg/ports/nettle/libname-windows.patch67
-rw-r--r--vcpkg/ports/nettle/msvc-support.patch99
-rw-r--r--vcpkg/ports/nettle/nettle-arm.def567
-rw-r--r--vcpkg/ports/nettle/nettle-arm64.def591
-rw-r--r--vcpkg/ports/nettle/nettle-x64.def598
-rw-r--r--vcpkg/ports/nettle/nettle-x86.def567
-rw-r--r--vcpkg/ports/nettle/portfile.cmake117
-rw-r--r--vcpkg/ports/nettle/subdirs.patch32
-rw-r--r--vcpkg/ports/nettle/vcpkg.json24
-rw-r--r--vcpkg/ports/nettle/yasm.patch61
19 files changed, 4146 insertions, 0 deletions
diff --git a/vcpkg/ports/nettle/ccas.patch b/vcpkg/ports/nettle/ccas.patch
new file mode 100644
index 0000000..5bc491c
--- /dev/null
+++ b/vcpkg/ports/nettle/ccas.patch
@@ -0,0 +1,71 @@
+diff --git a/Makefile.in b/Makefile.in
+index 2bf7f1e8..c9607468 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -303,7 +303,7 @@ libhogweed.a: $(hogweed_OBJS)
+
+ %.$(OBJEXT): %.asm $(srcdir)/m4-utils.m4 $(srcdir)/asm.m4 config.m4 machine.m4
+ $(M4) $(srcdir)/m4-utils.m4 $(srcdir)/asm.m4 config.m4 machine.m4 $< >$*.s
+- $(COMPILE) $(ASM_FLAGS) -c $*.s
++ $(COMPILE_AS) -c $*.s -o $@
+
+ %.$(OBJEXT): %.c
+ $(COMPILE) -c $< \
+diff --git a/aclocal.m4 b/aclocal.m4
+index 629db8a7..04ff4d31 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -268,7 +268,7 @@ AC_DEFUN([GMP_TRY_ASSEMBLE],
+ [cat >conftest.s <<EOF
+ [$1]
+ EOF
+-gmp_assemble="$CC $CFLAGS $CPPFLAGS $ASM_FLAGS -c conftest.s >conftest.out 2>&1"
++gmp_assemble="$CCAS $CPPFLAGS $ASM_FLAGS -c conftest.s >conftest.out 2>&1"
+ if AC_TRY_EVAL(gmp_assemble); then
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ ifelse([$2],,:,[$2])
+diff --git a/config.make.in b/config.make.in
+index 6aec7c73..8bc5599f 100644
+--- a/config.make.in
++++ b/config.make.in
+@@ -74,6 +74,8 @@ TEST_SHLIB_DIR = ${abs_top_builddir}/.lib
+ # flags before CPPFLAGS and LDFLAGS. While EXTRA_CFLAGS are added at the end.
+
+ COMPILE = $(CC) $(PRE_CPPFLAGS) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(DEP_FLAGS)
++CCAS = @CCAS@
++COMPILE_AS = $(CCAS) $(PRE_CPPFLAGS) $(CPPFLAGS) $(DEFS) $(ASM_FLAGS) $(DEP_FLAGS)
+ COMPILE_CXX = $(CXX) $(PRE_CPPFLAGS) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(DEP_FLAGS)
+ LINK = $(CC) $(CFLAGS) $(PRE_LDFLAGS) $(LDFLAGS)
+ LINK_CXX = $(CXX) $(CXXFLAGS) $(PRE_LDFLAGS) $(LDFLAGS)
+diff --git a/configure.ac b/configure.ac
+index 4f27e663..324e4706 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -148,6 +148,9 @@ LSH_RPATH_INIT([`echo $with_lib_path | sed 's/:/ /g'` \
+
+ # Checks for programs.
+ AC_PROG_CC
++# Copied from gmp
++test -n "$CCAS" || CCAS='$(CC)'
++AC_SUBST(CCAS)
+
+ NETTLE_CHECK_IFUNC
+
+@@ -318,7 +321,7 @@ W64_ABI=no # For x86_64 windows
+ case "$host_cpu" in
+ [x86_64 | amd64])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+-#if defined(__x86_64__) || defined(__arch64__)
++#if defined(__x86_64__) || defined(__arch64__) || defined(_M_AMD64)
+ #error 64-bit x86
+ #endif
+ ]], [[]])], [
+@@ -371,7 +374,7 @@ case "$host_cpu" in
+ ;;
+ aarch64*)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+-#if defined(__aarch64__)
++#if defined(__aarch64__) || defined(_M_ARM64)
+ #error 64-bit arm
+ #endif
+ ]], [[]])], [
diff --git a/vcpkg/ports/nettle/compile.patch b/vcpkg/ports/nettle/compile.patch
new file mode 100644
index 0000000..168214f
--- /dev/null
+++ b/vcpkg/ports/nettle/compile.patch
@@ -0,0 +1,26 @@
+diff --git a/streebog.c b/streebog.c
+index 7ad619d5e..85609a473 100644
+--- a/streebog.c
++++ b/streebog.c
+@@ -1233,7 +1233,7 @@ streebog512_compress (struct streebog512_ctx *ctx, const uint8_t *input, uint64_
+ static void
+ streebog_final (struct streebog512_ctx *ctx)
+ {
+- uint64_t Z[8] = {};
++ uint64_t Z[8] = {0,0,0,0,0,0,0,0};
+ unsigned int i;
+
+ /* PAD. It does not count towards message length */
+diff --git a/Makefile.in b/Makefile.in
+index b65ff4960..3887d0c8f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -322,7 +322,7 @@ $(LIBHOGWEED_FORLINK): $(hogweed_OBJS) $(LIBNETTLE_FORLINK)
+
+ # For building the various *data.c programs. -lm needed for shadata.
+ %$(EXEEXT_FOR_BUILD): %.c
+- $(CC_FOR_BUILD) $< -lm -o $@
++ $(COMPILE) $(PRE_LDFLAGS) $(LDFLAGS) $(LIBS) $< -o $@
+
+ # Explicit dependency.
+ eccdata$(EXEEXT_FOR_BUILD): mini-gmp.c mini-gmp.h
diff --git a/vcpkg/ports/nettle/fix-libdir.patch b/vcpkg/ports/nettle/fix-libdir.patch
new file mode 100644
index 0000000..e1edc66
--- /dev/null
+++ b/vcpkg/ports/nettle/fix-libdir.patch
@@ -0,0 +1,12 @@
+diff --git a/configure.ac b/configure.ac
+index f4d9e90..1012718 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -351,6 +351,7 @@ if test "x$ABI" != xstandard ; then
+ if test "$libdir" = '${exec_prefix}/lib' ; then
+ # Try setting a better default
+ case "$host_cpu:$host_os:$ABI" in
++ *) ;; # $libdir is okay for vcpkg
+ *:solaris*:32|*:sunos*:32)
+ libdir='${exec_prefix}/lib'
+ ;;
diff --git a/vcpkg/ports/nettle/hogweed-arm.def b/vcpkg/ports/nettle/hogweed-arm.def
new file mode 100644
index 0000000..59480f3
--- /dev/null
+++ b/vcpkg/ports/nettle/hogweed-arm.def
@@ -0,0 +1,290 @@
+EXPORTS
+ nettle_ed448_shake256_verify
+ nettle_ed448_shake256_sign
+ nettle_ed448_shake256_public_key
+ _nettle_ed448_shake256
+ nettle_ed25519_sha512_verify
+ nettle_ed25519_sha512_sign
+ nettle_ed25519_sha512_public_key
+ _nettle_ed25519_sha512
+ _nettle_eddsa_verify_itch
+ _nettle_eddsa_verify
+ _nettle_eddsa_sign_itch
+ _nettle_eddsa_sign
+ _nettle_eddsa_public_key_itch
+ _nettle_eddsa_public_key
+ _nettle_eddsa_hash
+ _nettle_eddsa_expand_key
+ _nettle_eddsa_decompress_itch
+ _nettle_eddsa_decompress
+ _nettle_eddsa_compress_itch
+ _nettle_eddsa_compress
+ _nettle_curve448_eh_to_x
+ nettle_curve448_mul
+ nettle_curve448_mul_g
+ _nettle_curve25519_eh_to_x
+ nettle_curve25519_mul
+ nettle_curve25519_mul_g
+ nettle_gostdsa_vko
+ nettle_gostdsa_verify
+ nettle_ecc_gostdsa_verify_itch
+ nettle_ecc_gostdsa_verify
+ nettle_gostdsa_sign
+ nettle_ecc_gostdsa_sign_itch
+ nettle_ecc_gostdsa_sign
+ nettle_ecdsa_generate_keypair
+ nettle_ecdsa_verify
+ nettle_ecc_ecdsa_verify_itch
+ nettle_ecc_ecdsa_verify
+ nettle_ecdsa_sign
+ nettle_ecc_ecdsa_sign_itch
+ nettle_ecc_ecdsa_sign
+ nettle_ecc_point_mul_g
+ nettle_ecc_point_mul
+ nettle_ecc_scalar_init
+ nettle_ecc_scalar_clear
+ nettle_ecc_scalar_set
+ nettle_ecc_scalar_get
+ nettle_ecc_point_init
+ nettle_ecc_point_clear
+ nettle_ecc_point_set
+ nettle_ecc_point_get
+ nettle_ecc_scalar_random
+ _nettle_ecc_mod_random
+ _nettle_ecc_mul_a
+ _nettle_ecc_mul_g
+ _nettle_ecc_mul_m
+ _nettle_ecc_mul_a_eh
+ _nettle_ecc_mul_g_eh
+ _nettle_ecc_add_thh
+ _nettle_ecc_add_th
+ _nettle_ecc_dup_th
+ _nettle_ecc_add_ehh
+ _nettle_ecc_add_eh
+ _nettle_ecc_dup_eh
+ _nettle_ecc_eh_to_a
+ _nettle_ecc_nonsec_add_jjj
+ _nettle_ecc_add_jjj
+ _nettle_ecc_add_jja
+ _nettle_ecc_dup_jj
+ _nettle_ecc_a_to_j
+ _nettle_ecc_j_to_a
+ nettle_ecc_bit_size
+ nettle_ecc_size
+ nettle_ecc_size_a
+ nettle_ecc_size_j
+ _nettle_secp_521r1
+ nettle_get_secp_521r1
+ _nettle_secp_384r1
+ nettle_get_secp_384r1
+ _nettle_secp_256r1
+ nettle_get_secp_256r1
+ _nettle_secp_224r1
+ nettle_get_secp_224r1
+ _nettle_secp_192r1
+ nettle_get_secp_192r1
+ _nettle_gost_gc512a
+ nettle_get_gost_gc512a
+ _nettle_gost_gc256b
+ nettle_get_gost_gc256b
+ _nettle_curve448
+ _nettle_curve25519
+ _nettle_ecc_pm1_redc
+ _nettle_ecc_pp1_redc
+ _nettle_ecc_mod_zero_p
+ _nettle_ecc_mod_equal_p
+ _nettle_ecc_mod_add
+ _nettle_ecc_mod_sub
+ _nettle_ecc_mod_mul_1
+ _nettle_ecc_mod_addmul_1
+ _nettle_ecc_mod_submul_1
+ _nettle_ecc_mod_mul
+ _nettle_ecc_mod_sqr
+ _nettle_ecc_mod_mul_canonical
+ _nettle_ecc_mod_sqr_canonical
+ _nettle_ecc_mod_pow_2k
+ _nettle_ecc_mod_pow_2k_mul
+ _nettle_ecc_mod_inv
+ _nettle_ecc_mod
+ _nettle_cnd_copy
+ _nettle_sec_zero_p
+ _nettle_mpz_limbs_copy
+ _nettle_mpz_set_n
+ _nettle_mpn_set_base256
+ _nettle_mpn_set_base256_le
+ _nettle_mpn_get_base256
+ _nettle_mpn_get_base256_le
+ _nettle_gmp_alloc_limbs
+ _nettle_gmp_free_limbs
+ _nettle_gmp_alloc
+ _nettle_gmp_free
+ _nettle_sec_sub_1
+ _nettle_sec_add_1
+ nettle_dsa_params_from_der_iterator
+ nettle_dsa_public_key_from_der_iterator
+ nettle_dsa_openssl_private_key_from_der_iterator
+ nettle_openssl_provate_key_from_der
+ nettle_rsa_public_key_from_der_iterator
+ nettle_rsa_private_key_from_der_iterator
+ nettle_rsa_keypair_from_der
+ nettle_asn1_der_get_bignum
+ nettle_asn1_der_iterator_first
+ nettle_asn1_der_iterator_next
+ nettle_asn1_der_decode_constructed
+ nettle_asn1_der_decode_constructed_last
+ nettle_asn1_der_decode_bitstring
+ nettle_asn1_der_decode_bitstring_last
+ nettle_asn1_der_get_uint32
+ nettle_rsa_keypair_to_openpgp
+ nettle_pgp_put_uint32
+ nettle_pgp_put_uint16
+ nettle_pgp_put_mpi
+ nettle_pgp_put_string
+ nettle_pgp_put_length
+ nettle_pgp_put_header
+ nettle_pgp_put_header_length
+ nettle_pgp_sub_packet_start
+ nettle_pgp_put_sub_packet
+ nettle_pgp_sub_packet_end
+ nettle_pgp_put_public_rsa_key
+ nettle_pgp_put_rsa_sha1_signature
+ nettle_pgp_put_userid
+ nettle_pgp_crc24
+ nettle_pgp_armor
+ nettle_dsa_signature_from_sexp
+ nettle_dsa_keypair_from_sexp_alist
+ nettle_dsa_sha1_keypair_from_sexp
+ nettle_dsa_sha256_keypair_from_sexp
+ nettle_dsa_keypair_to_sexp
+ nettle_dsa_sha256_verify
+ nettle_dsa_sha256_verify_digest
+ nettle_dsa_sha256_sign
+ nettle_dsa_sha256_sign_digest
+ nettle_dsa_sha1_verify
+ nettle_dsa_sha1_verify_digest
+ nettle_dsa_sha1_sign
+ nettle_dsa_sha1_sign_digest
+ _nettle_dsa_hash
+ nettle_dsa_generate_keypair
+ nettle_dsa_verify
+ nettle_dsa_sign
+ nettle_dsa_generate_params
+ nettle_dsa_compat_generate_keypair
+ nettle_dsa_public_key_init
+ nettle_dsa_public_key_clear
+ nettle_dsa_private_key_init
+ nettle_dsa_private_key_clear
+ nettle_dsa_params_init
+ nettle_dsa_params_clear
+ nettle_dsa_signature_init
+ nettle_dsa_signature_clear
+ nettle_rsa_keypair_from_sexp_alist
+ nettle_rsa_keypair_from_sexp
+ nettle_rsa_keypair_to_sexp
+ _nettle_rsa_blind
+ _nettle_rsa_unblind
+ nettle_rsa_generate_keypair
+ nettle_rsa_decrypt_tr
+ nettle_rsa_sec_decrypt
+ nettle_rsa_decrypt
+ nettle_rsa_encrypt
+ nettle_rsa_pss_sha384_verify_digest
+ nettle_rsa_pss_sha512_verify_digest
+ nettle_rsa_pss_sha384_sign_digest_tr
+ nettle_rsa_pss_sha512_sign_digest_tr
+ nettle_rsa_pss_sha256_verify_digest
+ nettle_rsa_pss_sha256_sign_digest_tr
+ nettle_rsa_sha512_verify
+ nettle_rsa_sha512_verify_digest
+ nettle_rsa_sha512_sign_tr
+ nettle_rsa_sha512_sign_digest_tr
+ nettle_rsa_sha512_sign
+ nettle_rsa_sha512_sign_digest
+ nettle_rsa_sha256_verify
+ nettle_rsa_sha256_verify_digest
+ nettle_rsa_sha256_sign_tr
+ nettle_rsa_sha256_sign_digest_tr
+ nettle_rsa_sha256_sign
+ nettle_rsa_sha256_sign_digest
+ nettle_rsa_sha1_verify
+ nettle_rsa_sha1_verify_digest
+ nettle_rsa_sha1_sign_tr
+ nettle_rsa_sha1_sign_digest_tr
+ nettle_rsa_sha1_sign
+ nettle_rsa_sha1_sign_digest
+ nettle_rsa_md5_verify
+ nettle_rsa_md5_verify_digest
+ nettle_rsa_md5_sign_tr
+ nettle_rsa_md5_sign_digest_tr
+ nettle_rsa_md5_sign
+ nettle_rsa_md5_sign_digest
+ nettle_rsa_pkcs1_verify
+ nettle_rsa_pkcs1_sign_tr
+ nettle_rsa_pkcs1_sign
+ _nettle_rsa_sec_compute_root_itch
+ _nettle_rsa_sec_compute_root
+ _nettle_rsa_verify
+ _nettle_rsa_verify_recover
+ nettle_rsa_compute_root_tr
+ _nettle_rsa_sec_compute_root_tr
+ nettle_rsa_private_key_init
+ nettle_rsa_private_key_clear
+ nettle_rsa_private_key_prepare
+ nettle_rsa_compute_root
+ nettle_rsa_public_key_init
+ nettle_rsa_public_key_clear
+ nettle_rsa_public_key_prepare
+ _nettle_rsa_check_size
+ nettle_pss_mgf1
+ nettle_pss_encode_mgf1
+ nettle_pss_verify_mgf1
+ nettle_pkcs1_rsa_sha512_encode
+ nettle_pkcs1_rsa_sha512_encode_digest
+ nettle_pkcs1_rsa_sha256_encode
+ nettle_pkcs1_rsa_sha256_encode_digest
+ nettle_pkcs1_rsa_sha1_encode
+ nettle_pkcs1_rsa_sha1_encode_digest
+ nettle_pkcs1_rsa_md5_encode
+ nettle_pkcs1_rsa_md5_encode_digest
+ nettle_pkcs1_rsa_digest_encode
+ _nettle_pkcs1_sec_decrypt
+ _nettle_pkcs1_sec_decrypt_variable
+ nettle_pkcs1_decrypt
+ nettle_pkcs1_encrypt
+ _nettle_pkcs1_signature_prefix
+ nettle_mpz_set_sexp
+ nettle_random_prime
+ _nettle_generate_pocklington_prime
+ nettle_mpz_random_size
+ nettle_mpz_random
+ nettle_mpz_sizeinbase_256_s
+ nettle_mpz_sizeinbase_256_u
+ nettle_mpz_get_str_256
+ nettle_mpz_set_str_256_s
+ nettle_mpz_init_set_str_256_s
+ nettle_mpz_set_str_256_u
+ nettle_mpz_init_set_str_256_u
+ nettle_sexp_transport_format
+ nettle_sexp_transport_vformat
+ nettle_sexp_transport_iterator_first
+ nettle_sexp_format
+ nettle_sexp_vformat
+ nettle_sexp_iterator_first
+ nettle_sexp_iterator_next
+ nettle_sexp_iterator_enter_list
+ nettle_sexp_iterator_exit_list
+ nettle_sexp_iterator_subexpr
+ nettle_sexp_iterator_get_uint32
+ nettle_sexp_iterator_check_type
+ nettle_sexp_iterator_check_types
+ nettle_sexp_iterator_assoc
+ _nettle_rsa_oaep_decrypt
+ _nettle_rsa_oaep_encrypt
+ nettle_rsa_oaep_sha256_decrypt
+ nettle_rsa_oaep_sha384_decrypt
+ nettle_rsa_oaep_sha512_decrypt
+ nettle_rsa_oaep_sha256_encrypt
+ nettle_rsa_oaep_sha384_encrypt
+ nettle_rsa_oaep_sha512_encrypt
+ _nettle_oaep_decode_mgf1
+ _nettle_oaep_encode_mgf1
diff --git a/vcpkg/ports/nettle/hogweed-arm64.def b/vcpkg/ports/nettle/hogweed-arm64.def
new file mode 100644
index 0000000..59480f3
--- /dev/null
+++ b/vcpkg/ports/nettle/hogweed-arm64.def
@@ -0,0 +1,290 @@
+EXPORTS
+ nettle_ed448_shake256_verify
+ nettle_ed448_shake256_sign
+ nettle_ed448_shake256_public_key
+ _nettle_ed448_shake256
+ nettle_ed25519_sha512_verify
+ nettle_ed25519_sha512_sign
+ nettle_ed25519_sha512_public_key
+ _nettle_ed25519_sha512
+ _nettle_eddsa_verify_itch
+ _nettle_eddsa_verify
+ _nettle_eddsa_sign_itch
+ _nettle_eddsa_sign
+ _nettle_eddsa_public_key_itch
+ _nettle_eddsa_public_key
+ _nettle_eddsa_hash
+ _nettle_eddsa_expand_key
+ _nettle_eddsa_decompress_itch
+ _nettle_eddsa_decompress
+ _nettle_eddsa_compress_itch
+ _nettle_eddsa_compress
+ _nettle_curve448_eh_to_x
+ nettle_curve448_mul
+ nettle_curve448_mul_g
+ _nettle_curve25519_eh_to_x
+ nettle_curve25519_mul
+ nettle_curve25519_mul_g
+ nettle_gostdsa_vko
+ nettle_gostdsa_verify
+ nettle_ecc_gostdsa_verify_itch
+ nettle_ecc_gostdsa_verify
+ nettle_gostdsa_sign
+ nettle_ecc_gostdsa_sign_itch
+ nettle_ecc_gostdsa_sign
+ nettle_ecdsa_generate_keypair
+ nettle_ecdsa_verify
+ nettle_ecc_ecdsa_verify_itch
+ nettle_ecc_ecdsa_verify
+ nettle_ecdsa_sign
+ nettle_ecc_ecdsa_sign_itch
+ nettle_ecc_ecdsa_sign
+ nettle_ecc_point_mul_g
+ nettle_ecc_point_mul
+ nettle_ecc_scalar_init
+ nettle_ecc_scalar_clear
+ nettle_ecc_scalar_set
+ nettle_ecc_scalar_get
+ nettle_ecc_point_init
+ nettle_ecc_point_clear
+ nettle_ecc_point_set
+ nettle_ecc_point_get
+ nettle_ecc_scalar_random
+ _nettle_ecc_mod_random
+ _nettle_ecc_mul_a
+ _nettle_ecc_mul_g
+ _nettle_ecc_mul_m
+ _nettle_ecc_mul_a_eh
+ _nettle_ecc_mul_g_eh
+ _nettle_ecc_add_thh
+ _nettle_ecc_add_th
+ _nettle_ecc_dup_th
+ _nettle_ecc_add_ehh
+ _nettle_ecc_add_eh
+ _nettle_ecc_dup_eh
+ _nettle_ecc_eh_to_a
+ _nettle_ecc_nonsec_add_jjj
+ _nettle_ecc_add_jjj
+ _nettle_ecc_add_jja
+ _nettle_ecc_dup_jj
+ _nettle_ecc_a_to_j
+ _nettle_ecc_j_to_a
+ nettle_ecc_bit_size
+ nettle_ecc_size
+ nettle_ecc_size_a
+ nettle_ecc_size_j
+ _nettle_secp_521r1
+ nettle_get_secp_521r1
+ _nettle_secp_384r1
+ nettle_get_secp_384r1
+ _nettle_secp_256r1
+ nettle_get_secp_256r1
+ _nettle_secp_224r1
+ nettle_get_secp_224r1
+ _nettle_secp_192r1
+ nettle_get_secp_192r1
+ _nettle_gost_gc512a
+ nettle_get_gost_gc512a
+ _nettle_gost_gc256b
+ nettle_get_gost_gc256b
+ _nettle_curve448
+ _nettle_curve25519
+ _nettle_ecc_pm1_redc
+ _nettle_ecc_pp1_redc
+ _nettle_ecc_mod_zero_p
+ _nettle_ecc_mod_equal_p
+ _nettle_ecc_mod_add
+ _nettle_ecc_mod_sub
+ _nettle_ecc_mod_mul_1
+ _nettle_ecc_mod_addmul_1
+ _nettle_ecc_mod_submul_1
+ _nettle_ecc_mod_mul
+ _nettle_ecc_mod_sqr
+ _nettle_ecc_mod_mul_canonical
+ _nettle_ecc_mod_sqr_canonical
+ _nettle_ecc_mod_pow_2k
+ _nettle_ecc_mod_pow_2k_mul
+ _nettle_ecc_mod_inv
+ _nettle_ecc_mod
+ _nettle_cnd_copy
+ _nettle_sec_zero_p
+ _nettle_mpz_limbs_copy
+ _nettle_mpz_set_n
+ _nettle_mpn_set_base256
+ _nettle_mpn_set_base256_le
+ _nettle_mpn_get_base256
+ _nettle_mpn_get_base256_le
+ _nettle_gmp_alloc_limbs
+ _nettle_gmp_free_limbs
+ _nettle_gmp_alloc
+ _nettle_gmp_free
+ _nettle_sec_sub_1
+ _nettle_sec_add_1
+ nettle_dsa_params_from_der_iterator
+ nettle_dsa_public_key_from_der_iterator
+ nettle_dsa_openssl_private_key_from_der_iterator
+ nettle_openssl_provate_key_from_der
+ nettle_rsa_public_key_from_der_iterator
+ nettle_rsa_private_key_from_der_iterator
+ nettle_rsa_keypair_from_der
+ nettle_asn1_der_get_bignum
+ nettle_asn1_der_iterator_first
+ nettle_asn1_der_iterator_next
+ nettle_asn1_der_decode_constructed
+ nettle_asn1_der_decode_constructed_last
+ nettle_asn1_der_decode_bitstring
+ nettle_asn1_der_decode_bitstring_last
+ nettle_asn1_der_get_uint32
+ nettle_rsa_keypair_to_openpgp
+ nettle_pgp_put_uint32
+ nettle_pgp_put_uint16
+ nettle_pgp_put_mpi
+ nettle_pgp_put_string
+ nettle_pgp_put_length
+ nettle_pgp_put_header
+ nettle_pgp_put_header_length
+ nettle_pgp_sub_packet_start
+ nettle_pgp_put_sub_packet
+ nettle_pgp_sub_packet_end
+ nettle_pgp_put_public_rsa_key
+ nettle_pgp_put_rsa_sha1_signature
+ nettle_pgp_put_userid
+ nettle_pgp_crc24
+ nettle_pgp_armor
+ nettle_dsa_signature_from_sexp
+ nettle_dsa_keypair_from_sexp_alist
+ nettle_dsa_sha1_keypair_from_sexp
+ nettle_dsa_sha256_keypair_from_sexp
+ nettle_dsa_keypair_to_sexp
+ nettle_dsa_sha256_verify
+ nettle_dsa_sha256_verify_digest
+ nettle_dsa_sha256_sign
+ nettle_dsa_sha256_sign_digest
+ nettle_dsa_sha1_verify
+ nettle_dsa_sha1_verify_digest
+ nettle_dsa_sha1_sign
+ nettle_dsa_sha1_sign_digest
+ _nettle_dsa_hash
+ nettle_dsa_generate_keypair
+ nettle_dsa_verify
+ nettle_dsa_sign
+ nettle_dsa_generate_params
+ nettle_dsa_compat_generate_keypair
+ nettle_dsa_public_key_init
+ nettle_dsa_public_key_clear
+ nettle_dsa_private_key_init
+ nettle_dsa_private_key_clear
+ nettle_dsa_params_init
+ nettle_dsa_params_clear
+ nettle_dsa_signature_init
+ nettle_dsa_signature_clear
+ nettle_rsa_keypair_from_sexp_alist
+ nettle_rsa_keypair_from_sexp
+ nettle_rsa_keypair_to_sexp
+ _nettle_rsa_blind
+ _nettle_rsa_unblind
+ nettle_rsa_generate_keypair
+ nettle_rsa_decrypt_tr
+ nettle_rsa_sec_decrypt
+ nettle_rsa_decrypt
+ nettle_rsa_encrypt
+ nettle_rsa_pss_sha384_verify_digest
+ nettle_rsa_pss_sha512_verify_digest
+ nettle_rsa_pss_sha384_sign_digest_tr
+ nettle_rsa_pss_sha512_sign_digest_tr
+ nettle_rsa_pss_sha256_verify_digest
+ nettle_rsa_pss_sha256_sign_digest_tr
+ nettle_rsa_sha512_verify
+ nettle_rsa_sha512_verify_digest
+ nettle_rsa_sha512_sign_tr
+ nettle_rsa_sha512_sign_digest_tr
+ nettle_rsa_sha512_sign
+ nettle_rsa_sha512_sign_digest
+ nettle_rsa_sha256_verify
+ nettle_rsa_sha256_verify_digest
+ nettle_rsa_sha256_sign_tr
+ nettle_rsa_sha256_sign_digest_tr
+ nettle_rsa_sha256_sign
+ nettle_rsa_sha256_sign_digest
+ nettle_rsa_sha1_verify
+ nettle_rsa_sha1_verify_digest
+ nettle_rsa_sha1_sign_tr
+ nettle_rsa_sha1_sign_digest_tr
+ nettle_rsa_sha1_sign
+ nettle_rsa_sha1_sign_digest
+ nettle_rsa_md5_verify
+ nettle_rsa_md5_verify_digest
+ nettle_rsa_md5_sign_tr
+ nettle_rsa_md5_sign_digest_tr
+ nettle_rsa_md5_sign
+ nettle_rsa_md5_sign_digest
+ nettle_rsa_pkcs1_verify
+ nettle_rsa_pkcs1_sign_tr
+ nettle_rsa_pkcs1_sign
+ _nettle_rsa_sec_compute_root_itch
+ _nettle_rsa_sec_compute_root
+ _nettle_rsa_verify
+ _nettle_rsa_verify_recover
+ nettle_rsa_compute_root_tr
+ _nettle_rsa_sec_compute_root_tr
+ nettle_rsa_private_key_init
+ nettle_rsa_private_key_clear
+ nettle_rsa_private_key_prepare
+ nettle_rsa_compute_root
+ nettle_rsa_public_key_init
+ nettle_rsa_public_key_clear
+ nettle_rsa_public_key_prepare
+ _nettle_rsa_check_size
+ nettle_pss_mgf1
+ nettle_pss_encode_mgf1
+ nettle_pss_verify_mgf1
+ nettle_pkcs1_rsa_sha512_encode
+ nettle_pkcs1_rsa_sha512_encode_digest
+ nettle_pkcs1_rsa_sha256_encode
+ nettle_pkcs1_rsa_sha256_encode_digest
+ nettle_pkcs1_rsa_sha1_encode
+ nettle_pkcs1_rsa_sha1_encode_digest
+ nettle_pkcs1_rsa_md5_encode
+ nettle_pkcs1_rsa_md5_encode_digest
+ nettle_pkcs1_rsa_digest_encode
+ _nettle_pkcs1_sec_decrypt
+ _nettle_pkcs1_sec_decrypt_variable
+ nettle_pkcs1_decrypt
+ nettle_pkcs1_encrypt
+ _nettle_pkcs1_signature_prefix
+ nettle_mpz_set_sexp
+ nettle_random_prime
+ _nettle_generate_pocklington_prime
+ nettle_mpz_random_size
+ nettle_mpz_random
+ nettle_mpz_sizeinbase_256_s
+ nettle_mpz_sizeinbase_256_u
+ nettle_mpz_get_str_256
+ nettle_mpz_set_str_256_s
+ nettle_mpz_init_set_str_256_s
+ nettle_mpz_set_str_256_u
+ nettle_mpz_init_set_str_256_u
+ nettle_sexp_transport_format
+ nettle_sexp_transport_vformat
+ nettle_sexp_transport_iterator_first
+ nettle_sexp_format
+ nettle_sexp_vformat
+ nettle_sexp_iterator_first
+ nettle_sexp_iterator_next
+ nettle_sexp_iterator_enter_list
+ nettle_sexp_iterator_exit_list
+ nettle_sexp_iterator_subexpr
+ nettle_sexp_iterator_get_uint32
+ nettle_sexp_iterator_check_type
+ nettle_sexp_iterator_check_types
+ nettle_sexp_iterator_assoc
+ _nettle_rsa_oaep_decrypt
+ _nettle_rsa_oaep_encrypt
+ nettle_rsa_oaep_sha256_decrypt
+ nettle_rsa_oaep_sha384_decrypt
+ nettle_rsa_oaep_sha512_decrypt
+ nettle_rsa_oaep_sha256_encrypt
+ nettle_rsa_oaep_sha384_encrypt
+ nettle_rsa_oaep_sha512_encrypt
+ _nettle_oaep_decode_mgf1
+ _nettle_oaep_encode_mgf1
diff --git a/vcpkg/ports/nettle/hogweed-x64.def b/vcpkg/ports/nettle/hogweed-x64.def
new file mode 100644
index 0000000..7fd43de
--- /dev/null
+++ b/vcpkg/ports/nettle/hogweed-x64.def
@@ -0,0 +1,297 @@
+EXPORTS
+ _nettle_ecc_curve448_modp
+ _nettle_ecc_curve25519_modp
+ _nettle_ecc_secp521r1_modp
+ _nettle_ecc_secp384r1_modp
+ _nettle_ecc_secp256r1_redc
+ _nettle_ecc_secp224r1_modp
+ _nettle_ecc_secp192r1_modp
+ nettle_ed448_shake256_verify
+ nettle_ed448_shake256_sign
+ nettle_ed448_shake256_public_key
+ _nettle_ed448_shake256
+ nettle_ed25519_sha512_verify
+ nettle_ed25519_sha512_sign
+ nettle_ed25519_sha512_public_key
+ _nettle_ed25519_sha512
+ _nettle_eddsa_verify_itch
+ _nettle_eddsa_verify
+ _nettle_eddsa_sign_itch
+ _nettle_eddsa_sign
+ _nettle_eddsa_public_key_itch
+ _nettle_eddsa_public_key
+ _nettle_eddsa_hash
+ _nettle_eddsa_expand_key
+ _nettle_eddsa_decompress_itch
+ _nettle_eddsa_decompress
+ _nettle_eddsa_compress_itch
+ _nettle_eddsa_compress
+ _nettle_curve448_eh_to_x
+ nettle_curve448_mul
+ nettle_curve448_mul_g
+ _nettle_curve25519_eh_to_x
+ nettle_curve25519_mul
+ nettle_curve25519_mul_g
+ nettle_gostdsa_vko
+ nettle_gostdsa_verify
+ nettle_ecc_gostdsa_verify_itch
+ nettle_ecc_gostdsa_verify
+ nettle_gostdsa_sign
+ nettle_ecc_gostdsa_sign_itch
+ nettle_ecc_gostdsa_sign
+ nettle_ecdsa_generate_keypair
+ nettle_ecdsa_verify
+ nettle_ecc_ecdsa_verify_itch
+ nettle_ecc_ecdsa_verify
+ nettle_ecdsa_sign
+ nettle_ecc_ecdsa_sign_itch
+ nettle_ecc_ecdsa_sign
+ nettle_ecc_point_mul_g
+ nettle_ecc_point_mul
+ nettle_ecc_scalar_init
+ nettle_ecc_scalar_clear
+ nettle_ecc_scalar_set
+ nettle_ecc_scalar_get
+ nettle_ecc_point_init
+ nettle_ecc_point_clear
+ nettle_ecc_point_set
+ nettle_ecc_point_get
+ nettle_ecc_scalar_random
+ _nettle_ecc_mod_random
+ _nettle_ecc_mul_a
+ _nettle_ecc_mul_g
+ _nettle_ecc_mul_m
+ _nettle_ecc_mul_a_eh
+ _nettle_ecc_mul_g_eh
+ _nettle_ecc_add_thh
+ _nettle_ecc_add_th
+ _nettle_ecc_dup_th
+ _nettle_ecc_add_ehh
+ _nettle_ecc_add_eh
+ _nettle_ecc_dup_eh
+ _nettle_ecc_eh_to_a
+ _nettle_ecc_nonsec_add_jjj
+ _nettle_ecc_add_jjj
+ _nettle_ecc_add_jja
+ _nettle_ecc_dup_jj
+ _nettle_ecc_a_to_j
+ _nettle_ecc_j_to_a
+ nettle_ecc_bit_size
+ nettle_ecc_size
+ nettle_ecc_size_a
+ nettle_ecc_size_j
+ _nettle_secp_521r1
+ nettle_get_secp_521r1
+ _nettle_secp_384r1
+ nettle_get_secp_384r1
+ _nettle_secp_256r1
+ nettle_get_secp_256r1
+ _nettle_secp_224r1
+ nettle_get_secp_224r1
+ _nettle_secp_192r1
+ nettle_get_secp_192r1
+ _nettle_gost_gc512a
+ nettle_get_gost_gc512a
+ _nettle_gost_gc256b
+ nettle_get_gost_gc256b
+ _nettle_curve448
+ _nettle_curve25519
+ _nettle_ecc_pm1_redc
+ _nettle_ecc_pp1_redc
+ _nettle_ecc_mod_zero_p
+ _nettle_ecc_mod_equal_p
+ _nettle_ecc_mod_add
+ _nettle_ecc_mod_sub
+ _nettle_ecc_mod_mul_1
+ _nettle_ecc_mod_addmul_1
+ _nettle_ecc_mod_submul_1
+ _nettle_ecc_mod_mul
+ _nettle_ecc_mod_sqr
+ _nettle_ecc_mod_mul_canonical
+ _nettle_ecc_mod_sqr_canonical
+ _nettle_ecc_mod_pow_2k
+ _nettle_ecc_mod_pow_2k_mul
+ _nettle_ecc_mod_inv
+ _nettle_ecc_mod
+ _nettle_cnd_copy
+ _nettle_sec_zero_p
+ _nettle_mpz_limbs_copy
+ _nettle_mpz_set_n
+ _nettle_mpn_set_base256
+ _nettle_mpn_set_base256_le
+ _nettle_mpn_get_base256
+ _nettle_mpn_get_base256_le
+ _nettle_gmp_alloc_limbs
+ _nettle_gmp_free_limbs
+ _nettle_gmp_alloc
+ _nettle_gmp_free
+ _nettle_sec_sub_1
+ _nettle_sec_add_1
+ nettle_dsa_params_from_der_iterator
+ nettle_dsa_public_key_from_der_iterator
+ nettle_dsa_openssl_private_key_from_der_iterator
+ nettle_openssl_provate_key_from_der
+ nettle_rsa_public_key_from_der_iterator
+ nettle_rsa_private_key_from_der_iterator
+ nettle_rsa_keypair_from_der
+ nettle_asn1_der_get_bignum
+ nettle_asn1_der_iterator_first
+ nettle_asn1_der_iterator_next
+ nettle_asn1_der_decode_constructed
+ nettle_asn1_der_decode_constructed_last
+ nettle_asn1_der_decode_bitstring
+ nettle_asn1_der_decode_bitstring_last
+ nettle_asn1_der_get_uint32
+ nettle_rsa_keypair_to_openpgp
+ nettle_pgp_put_uint32
+ nettle_pgp_put_uint16
+ nettle_pgp_put_mpi
+ nettle_pgp_put_string
+ nettle_pgp_put_length
+ nettle_pgp_put_header
+ nettle_pgp_put_header_length
+ nettle_pgp_sub_packet_start
+ nettle_pgp_put_sub_packet
+ nettle_pgp_sub_packet_end
+ nettle_pgp_put_public_rsa_key
+ nettle_pgp_put_rsa_sha1_signature
+ nettle_pgp_put_userid
+ nettle_pgp_crc24
+ nettle_pgp_armor
+ nettle_dsa_signature_from_sexp
+ nettle_dsa_keypair_from_sexp_alist
+ nettle_dsa_sha1_keypair_from_sexp
+ nettle_dsa_sha256_keypair_from_sexp
+ nettle_dsa_keypair_to_sexp
+ nettle_dsa_sha256_verify
+ nettle_dsa_sha256_verify_digest
+ nettle_dsa_sha256_sign
+ nettle_dsa_sha256_sign_digest
+ nettle_dsa_sha1_verify
+ nettle_dsa_sha1_verify_digest
+ nettle_dsa_sha1_sign
+ nettle_dsa_sha1_sign_digest
+ _nettle_dsa_hash
+ nettle_dsa_generate_keypair
+ nettle_dsa_verify
+ nettle_dsa_sign
+ nettle_dsa_generate_params
+ nettle_dsa_compat_generate_keypair
+ nettle_dsa_public_key_init
+ nettle_dsa_public_key_clear
+ nettle_dsa_private_key_init
+ nettle_dsa_private_key_clear
+ nettle_dsa_params_init
+ nettle_dsa_params_clear
+ nettle_dsa_signature_init
+ nettle_dsa_signature_clear
+ nettle_rsa_keypair_from_sexp_alist
+ nettle_rsa_keypair_from_sexp
+ nettle_rsa_keypair_to_sexp
+ _nettle_rsa_blind
+ _nettle_rsa_unblind
+ nettle_rsa_generate_keypair
+ nettle_rsa_decrypt_tr
+ nettle_rsa_sec_decrypt
+ nettle_rsa_decrypt
+ nettle_rsa_encrypt
+ nettle_rsa_pss_sha384_verify_digest
+ nettle_rsa_pss_sha512_verify_digest
+ nettle_rsa_pss_sha384_sign_digest_tr
+ nettle_rsa_pss_sha512_sign_digest_tr
+ nettle_rsa_pss_sha256_verify_digest
+ nettle_rsa_pss_sha256_sign_digest_tr
+ nettle_rsa_sha512_verify
+ nettle_rsa_sha512_verify_digest
+ nettle_rsa_sha512_sign_tr
+ nettle_rsa_sha512_sign_digest_tr
+ nettle_rsa_sha512_sign
+ nettle_rsa_sha512_sign_digest
+ nettle_rsa_sha256_verify
+ nettle_rsa_sha256_verify_digest
+ nettle_rsa_sha256_sign_tr
+ nettle_rsa_sha256_sign_digest_tr
+ nettle_rsa_sha256_sign
+ nettle_rsa_sha256_sign_digest
+ nettle_rsa_sha1_verify
+ nettle_rsa_sha1_verify_digest
+ nettle_rsa_sha1_sign_tr
+ nettle_rsa_sha1_sign_digest_tr
+ nettle_rsa_sha1_sign
+ nettle_rsa_sha1_sign_digest
+ nettle_rsa_md5_verify
+ nettle_rsa_md5_verify_digest
+ nettle_rsa_md5_sign_tr
+ nettle_rsa_md5_sign_digest_tr
+ nettle_rsa_md5_sign
+ nettle_rsa_md5_sign_digest
+ nettle_rsa_pkcs1_verify
+ nettle_rsa_pkcs1_sign_tr
+ nettle_rsa_pkcs1_sign
+ _nettle_rsa_sec_compute_root_itch
+ _nettle_rsa_sec_compute_root
+ _nettle_rsa_verify
+ _nettle_rsa_verify_recover
+ nettle_rsa_compute_root_tr
+ _nettle_rsa_sec_compute_root_tr
+ nettle_rsa_private_key_init
+ nettle_rsa_private_key_clear
+ nettle_rsa_private_key_prepare
+ nettle_rsa_compute_root
+ nettle_rsa_public_key_init
+ nettle_rsa_public_key_clear
+ nettle_rsa_public_key_prepare
+ _nettle_rsa_check_size
+ nettle_pss_mgf1
+ nettle_pss_encode_mgf1
+ nettle_pss_verify_mgf1
+ nettle_pkcs1_rsa_sha512_encode
+ nettle_pkcs1_rsa_sha512_encode_digest
+ nettle_pkcs1_rsa_sha256_encode
+ nettle_pkcs1_rsa_sha256_encode_digest
+ nettle_pkcs1_rsa_sha1_encode
+ nettle_pkcs1_rsa_sha1_encode_digest
+ nettle_pkcs1_rsa_md5_encode
+ nettle_pkcs1_rsa_md5_encode_digest
+ nettle_pkcs1_rsa_digest_encode
+ _nettle_pkcs1_sec_decrypt
+ _nettle_pkcs1_sec_decrypt_variable
+ nettle_pkcs1_decrypt
+ nettle_pkcs1_encrypt
+ _nettle_pkcs1_signature_prefix
+ nettle_mpz_set_sexp
+ nettle_random_prime
+ _nettle_generate_pocklington_prime
+ nettle_mpz_random_size
+ nettle_mpz_random
+ nettle_mpz_sizeinbase_256_s
+ nettle_mpz_sizeinbase_256_u
+ nettle_mpz_get_str_256
+ nettle_mpz_set_str_256_s
+ nettle_mpz_init_set_str_256_s
+ nettle_mpz_set_str_256_u
+ nettle_mpz_init_set_str_256_u
+ nettle_sexp_transport_format
+ nettle_sexp_transport_vformat
+ nettle_sexp_transport_iterator_first
+ nettle_sexp_format
+ nettle_sexp_vformat
+ nettle_sexp_iterator_first
+ nettle_sexp_iterator_next
+ nettle_sexp_iterator_enter_list
+ nettle_sexp_iterator_exit_list
+ nettle_sexp_iterator_subexpr
+ nettle_sexp_iterator_get_uint32
+ nettle_sexp_iterator_check_type
+ nettle_sexp_iterator_check_types
+ nettle_sexp_iterator_assoc
+ _nettle_rsa_oaep_decrypt
+ _nettle_rsa_oaep_encrypt
+ nettle_rsa_oaep_sha256_decrypt
+ nettle_rsa_oaep_sha384_decrypt
+ nettle_rsa_oaep_sha512_decrypt
+ nettle_rsa_oaep_sha256_encrypt
+ nettle_rsa_oaep_sha384_encrypt
+ nettle_rsa_oaep_sha512_encrypt
+ _nettle_oaep_decode_mgf1
+ _nettle_oaep_encode_mgf1
diff --git a/vcpkg/ports/nettle/hogweed-x86.def b/vcpkg/ports/nettle/hogweed-x86.def
new file mode 100644
index 0000000..d4752e9
--- /dev/null
+++ b/vcpkg/ports/nettle/hogweed-x86.def
@@ -0,0 +1,290 @@
+EXPORTS
+ nettle_ed448_shake256_verify
+ nettle_ed448_shake256_sign
+ nettle_ed448_shake256_public_key
+ _nettle_ed448_shake256
+ nettle_ed25519_sha512_verify
+ nettle_ed25519_sha512_sign
+ nettle_ed25519_sha512_public_key
+ _nettle_ed25519_sha512
+ _nettle_eddsa_verify_itch
+ _nettle_eddsa_verify
+ _nettle_eddsa_sign_itch
+ _nettle_eddsa_sign
+ _nettle_eddsa_public_key_itch
+ _nettle_eddsa_public_key
+ _nettle_eddsa_hash
+ _nettle_eddsa_expand_key
+ _nettle_eddsa_decompress_itch
+ _nettle_eddsa_decompress
+ _nettle_eddsa_compress_itch
+ _nettle_eddsa_compress
+ _nettle_curve448_eh_to_x
+ nettle_curve448_mul
+ nettle_curve448_mul_g
+ _nettle_curve25519_eh_to_x
+ nettle_curve25519_mul
+ nettle_curve25519_mul_g
+ nettle_gostdsa_vko
+ nettle_gostdsa_verify
+ nettle_ecc_gostdsa_verify_itch
+ nettle_ecc_gostdsa_verify
+ nettle_gostdsa_sign
+ nettle_ecc_gostdsa_sign_itch
+ nettle_ecc_gostdsa_sign
+ nettle_ecdsa_generate_keypair
+ nettle_ecdsa_verify
+ nettle_ecc_ecdsa_verify_itch
+ nettle_ecc_ecdsa_verify
+ nettle_ecdsa_sign
+ nettle_ecc_ecdsa_sign_itch
+ nettle_ecc_ecdsa_sign
+ nettle_ecc_point_mul_g
+ nettle_ecc_point_mul
+ nettle_ecc_scalar_init
+ nettle_ecc_scalar_clear
+ nettle_ecc_scalar_set
+ nettle_ecc_scalar_get
+ nettle_ecc_point_init
+ nettle_ecc_point_clear
+ nettle_ecc_point_set
+ nettle_ecc_point_get
+ nettle_ecc_scalar_random
+ _nettle_ecc_mod_random
+ _nettle_ecc_mul_a
+ _nettle_ecc_mul_g
+ _nettle_ecc_mul_m
+ _nettle_ecc_mul_a_eh
+ _nettle_ecc_mul_g_eh
+ _nettle_ecc_add_thh
+ _nettle_ecc_add_th
+ _nettle_ecc_dup_th
+ _nettle_ecc_add_ehh
+ _nettle_ecc_add_eh
+ _nettle_ecc_dup_eh
+ _nettle_ecc_eh_to_a
+ _nettle_ecc_nonsec_add_jjj
+ _nettle_ecc_add_jjj
+ _nettle_ecc_add_jja
+ _nettle_ecc_dup_jj
+ _nettle_ecc_a_to_j
+ _nettle_ecc_j_to_a
+ nettle_ecc_bit_size
+ nettle_ecc_size
+ nettle_ecc_size_a
+ nettle_ecc_size_j
+ _nettle_secp_521r1
+ nettle_get_secp_521r1
+ _nettle_secp_384r1
+ nettle_get_secp_384r1
+ _nettle_secp_256r1
+ nettle_get_secp_256r1
+ _nettle_secp_224r1
+ nettle_get_secp_224r1
+ _nettle_secp_192r1
+ nettle_get_secp_192r1
+ _nettle_gost_gc512a
+ nettle_get_gost_gc512a
+ _nettle_gost_gc256b
+ nettle_get_gost_gc256b
+ _nettle_curve448
+ _nettle_curve25519
+ _nettle_ecc_pm1_redc
+ _nettle_ecc_pp1_redc
+ _nettle_ecc_mod_zero_p
+ _nettle_ecc_mod_equal_p
+ _nettle_ecc_mod_add
+ _nettle_ecc_mod_sub
+ _nettle_ecc_mod_mul_1
+ _nettle_ecc_mod_addmul_1
+ _nettle_ecc_mod_submul_1
+ _nettle_ecc_mod_mul
+ _nettle_ecc_mod_sqr
+ _nettle_ecc_mod_mul_canonical
+ _nettle_ecc_mod_sqr_canonical
+ _nettle_ecc_mod_pow_2k
+ _nettle_ecc_mod_pow_2k_mul
+ _nettle_ecc_mod_inv
+ _nettle_ecc_mod
+ _nettle_cnd_copy
+ _nettle_sec_zero_p
+ _nettle_mpz_limbs_copy
+ _nettle_mpz_set_n
+ _nettle_mpn_set_base256
+ _nettle_mpn_set_base256_le
+ _nettle_mpn_get_base256
+ _nettle_mpn_get_base256_le
+ _nettle_gmp_alloc_limbs
+ _nettle_gmp_free_limbs
+ _nettle_gmp_alloc
+ _nettle_gmp_free
+ _nettle_sec_sub_1
+ _nettle_sec_add_1
+ nettle_dsa_params_from_der_iterator
+ nettle_dsa_public_key_from_der_iterator
+ nettle_dsa_openssl_private_key_from_der_iterator
+ nettle_openssl_provate_key_from_der
+ nettle_rsa_public_key_from_der_iterator
+ nettle_rsa_private_key_from_der_iterator
+ nettle_rsa_keypair_from_der
+ nettle_asn1_der_get_bignum
+ nettle_asn1_der_iterator_first
+ nettle_asn1_der_iterator_next
+ nettle_asn1_der_decode_constructed
+ nettle_asn1_der_decode_constructed_last
+ nettle_asn1_der_decode_bitstring
+ nettle_asn1_der_decode_bitstring_last
+ nettle_asn1_der_get_uint32
+ nettle_rsa_keypair_to_openpgp
+ nettle_pgp_put_uint32
+ nettle_pgp_put_uint16
+ nettle_pgp_put_mpi
+ nettle_pgp_put_string
+ nettle_pgp_put_length
+ nettle_pgp_put_header
+ nettle_pgp_put_header_length
+ nettle_pgp_sub_packet_start
+ nettle_pgp_put_sub_packet
+ nettle_pgp_sub_packet_end
+ nettle_pgp_put_public_rsa_key
+ nettle_pgp_put_rsa_sha1_signature
+ nettle_pgp_put_userid
+ nettle_pgp_crc24
+ nettle_pgp_armor
+ nettle_dsa_signature_from_sexp
+ nettle_dsa_keypair_from_sexp_alist
+ nettle_dsa_sha1_keypair_from_sexp
+ nettle_dsa_sha256_keypair_from_sexp
+ nettle_dsa_keypair_to_sexp
+ nettle_dsa_sha256_verify
+ nettle_dsa_sha256_verify_digest
+ nettle_dsa_sha256_sign
+ nettle_dsa_sha256_sign_digest
+ nettle_dsa_sha1_verify
+ nettle_dsa_sha1_verify_digest
+ nettle_dsa_sha1_sign
+ nettle_dsa_sha1_sign_digest
+ _nettle_dsa_hash
+ nettle_dsa_generate_keypair
+ nettle_dsa_verify
+ nettle_dsa_sign
+ nettle_dsa_generate_params
+ nettle_dsa_compat_generate_keypair
+ nettle_dsa_public_key_init
+ nettle_dsa_public_key_clear
+ nettle_dsa_private_key_init
+ nettle_dsa_private_key_clear
+ nettle_dsa_params_init
+ nettle_dsa_params_clear
+ nettle_dsa_signature_init
+ nettle_dsa_signature_clear
+ nettle_rsa_keypair_from_sexp_alist
+ nettle_rsa_keypair_from_sexp
+ nettle_rsa_keypair_to_sexp
+ _nettle_rsa_blind
+ _nettle_rsa_unblind
+ nettle_rsa_generate_keypair
+ nettle_rsa_decrypt_tr
+ nettle_rsa_sec_decrypt
+ nettle_rsa_decrypt
+ nettle_rsa_encrypt
+ nettle_rsa_pss_sha384_verify_digest
+ nettle_rsa_pss_sha512_verify_digest
+ nettle_rsa_pss_sha384_sign_digest_tr
+ nettle_rsa_pss_sha512_sign_digest_tr
+ nettle_rsa_pss_sha256_verify_digest
+ nettle_rsa_pss_sha256_sign_digest_tr
+ nettle_rsa_sha512_verify
+ nettle_rsa_sha512_verify_digest
+ nettle_rsa_sha512_sign_tr
+ nettle_rsa_sha512_sign_digest_tr
+ nettle_rsa_sha512_sign
+ nettle_rsa_sha512_sign_digest
+ nettle_rsa_sha256_verify
+ nettle_rsa_sha256_verify_digest
+ nettle_rsa_sha256_sign_tr
+ nettle_rsa_sha256_sign_digest_tr
+ nettle_rsa_sha256_sign
+ nettle_rsa_sha256_sign_digest
+ nettle_rsa_sha1_verify
+ nettle_rsa_sha1_verify_digest
+ nettle_rsa_sha1_sign_tr
+ nettle_rsa_sha1_sign_digest_tr
+ nettle_rsa_sha1_sign
+ nettle_rsa_sha1_sign_digest
+ nettle_rsa_md5_verify
+ nettle_rsa_md5_verify_digest
+ nettle_rsa_md5_sign_tr
+ nettle_rsa_md5_sign_digest_tr
+ nettle_rsa_md5_sign
+ nettle_rsa_md5_sign_digest
+ nettle_rsa_pkcs1_verify
+ nettle_rsa_pkcs1_sign_tr
+ nettle_rsa_pkcs1_sign
+ _nettle_rsa_sec_compute_root_itch
+ _nettle_rsa_sec_compute_root
+ _nettle_rsa_verify
+ _nettle_rsa_verify_recover
+ nettle_rsa_compute_root_tr
+ _nettle_rsa_sec_compute_root_tr
+ nettle_rsa_private_key_init
+ nettle_rsa_private_key_clear
+ nettle_rsa_private_key_prepare
+ nettle_rsa_compute_root
+ nettle_rsa_public_key_init
+ nettle_rsa_public_key_clear
+ nettle_rsa_public_key_prepare
+ _nettle_rsa_check_size
+ nettle_pss_mgf1
+ nettle_pss_encode_mgf1
+ nettle_pss_verify_mgf1
+ nettle_pkcs1_rsa_sha512_encode
+ nettle_pkcs1_rsa_sha512_encode_digest
+ nettle_pkcs1_rsa_sha256_encode
+ nettle_pkcs1_rsa_sha256_encode_digest
+ nettle_pkcs1_rsa_sha1_encode
+ nettle_pkcs1_rsa_sha1_encode_digest
+ nettle_pkcs1_rsa_md5_encode
+ nettle_pkcs1_rsa_md5_encode_digest
+ nettle_pkcs1_rsa_digest_encode
+ _nettle_pkcs1_sec_decrypt
+ _nettle_pkcs1_sec_decrypt_variable
+ nettle_pkcs1_decrypt
+ nettle_pkcs1_encrypt
+ _nettle_pkcs1_signature_prefix
+ nettle_mpz_set_sexp
+ nettle_random_prime
+ _nettle_generate_pocklington_prime
+ nettle_mpz_random_size
+ nettle_mpz_random
+ nettle_mpz_sizeinbase_256_s
+ nettle_mpz_sizeinbase_256_u
+ nettle_mpz_get_str_256
+ nettle_mpz_set_str_256_s
+ nettle_mpz_init_set_str_256_s
+ nettle_mpz_set_str_256_u
+ nettle_mpz_init_set_str_256_u
+ nettle_sexp_transport_format
+ nettle_sexp_transport_vformat
+ nettle_sexp_transport_iterator_first
+ nettle_sexp_format
+ nettle_sexp_vformat
+ nettle_sexp_iterator_first
+ nettle_sexp_iterator_next
+ nettle_sexp_iterator_enter_list
+ nettle_sexp_iterator_exit_list
+ nettle_sexp_iterator_subexpr
+ nettle_sexp_iterator_get_uint32
+ nettle_sexp_iterator_check_type
+ nettle_sexp_iterator_check_types
+ nettle_sexp_iterator_assoc
+ _nettle_rsa_oaep_decrypt
+ _nettle_rsa_oaep_encrypt
+ nettle_rsa_oaep_sha256_decrypt
+ nettle_rsa_oaep_sha384_decrypt
+ nettle_rsa_oaep_sha512_decrypt
+ nettle_rsa_oaep_sha256_encrypt
+ nettle_rsa_oaep_sha384_encrypt
+ nettle_rsa_oaep_sha512_encrypt
+ _nettle_oaep_decode_mgf1
+ _nettle_oaep_encode_mgf1
diff --git a/vcpkg/ports/nettle/host-tools.patch b/vcpkg/ports/nettle/host-tools.patch
new file mode 100644
index 0000000..5b9c500
--- /dev/null
+++ b/vcpkg/ports/nettle/host-tools.patch
@@ -0,0 +1,115 @@
+diff --git a/Makefile.in b/Makefile.in
+index 2bf7f1e8..4b80c8df 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1,3 +1,6 @@
++# Using native tools, either this build or from host triplet
++HOST_TOOLS_PREFIX ?= .
++
+ # Nettle Makefile
+
+ @SET_MAKE@
+@@ -347,11 +350,11 @@ des_headers = rotors.h keymap.h
+ # Generate DES headers.
+ $(des_headers): desdata.stamp
+ f="$(srcdir)/`basename $@`"; \
+- ./desdata$(EXEEXT_FOR_BUILD) $(@F) > $${f}T; \
++ $(HOST_TOOLS_PREFIX)/desdata$(EXEEXT_FOR_BUILD) $(@F) > $${f}T; \
+ test -s $${f}T && mv -f $${f}T $$f
+
+-desdata.stamp: desdata.c
+- $(MAKE) desdata$(EXEEXT_FOR_BUILD)
++./desdata$(EXEEXT_FOR_BUILD): desdata.c
++desdata.stamp: $(HOST_TOOLS_PREFIX)/desdata$(EXEEXT_FOR_BUILD)
+ echo stamp > desdata.stamp
+
+ des.$(OBJEXT): des.c des.h $(des_headers)
+@@ -364,7 +367,7 @@ des.$(OBJEXT): des.c des.h $(des_headers)
+ # k = 11, c = 6, S = 192, T = 44 ( 33 A + 11 D) 9 KB
+ # k = 16, c = 6, S = 128, T = 48 ( 32 A + 16 D) 6 KB
+ ecc-secp192r1.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) secp192r1 8 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp192r1 8 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Some reasonable choices for 224:
+ # k = 16, c = 7, S = 256, T = 48 ( 32 A + 16 D) ~16 KB
+@@ -372,7 +375,7 @@ ecc-secp192r1.h: eccdata.stamp
+ # k = 13, c = 6, S = 192, T = 52 ( 39 A + 13 D) ~12 KB
+ # k = 9, c = 5, S = 160, T = 54 ( 45 A + 9 D) ~10 KB
+ ecc-secp224r1.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) secp224r1 16 7 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp224r1 16 7 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Some reasonable choices for 256:
+ # k = 9, c = 6, S = 320, T = 54 ( 45 A + 9 D) 20 KB
+@@ -380,7 +383,7 @@ ecc-secp224r1.h: eccdata.stamp
+ # k = 19, c = 7, S = 256, T = 57 ( 38 A + 19 D) 16 KB
+ # k = 15, c = 6, S = 192, T = 60 ( 45 A + 15 D) 12 KB
+ ecc-secp256r1.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) secp256r1 11 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp256r1 11 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Some reasonable choices for 384:
+ # k = 16, c = 6, S = 256, T = 80 ( 64 A + 16 D) 24 KB
+@@ -391,7 +394,7 @@ ecc-secp256r1.h: eccdata.stamp
+ # k = 16, c = 5, S = 160, T = 96 ( 80 A + 16 D) 15 KB
+ # k = 32, c = 6, S = 128, T = 96 ( 64 A + 32 D) 12 KB
+ ecc-secp384r1.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) secp384r1 32 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp384r1 32 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Some reasonable choices for 521:
+ # k = 29, c = 6, S = 192, T = 116 ( 87 A + 29 D) ~27 KB
+@@ -399,14 +402,14 @@ ecc-secp384r1.h: eccdata.stamp
+ # k = 44, c = 6, S = 128, T = 132 ( 88 A + 44 D) ~18 KB
+ # k = 35, c = 5, S = 96, T = 140 (105 A + 35 D) ~14 KB
+ ecc-secp521r1.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) secp521r1 44 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp521r1 44 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Parameter choices mostly the same as for ecc-secp256r1.h.
+ ecc-curve25519.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) curve25519 11 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) curve25519 11 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ ecc-curve448.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) curve448 38 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) curve448 38 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Some reasonable choices for 256:
+ # k = 9, c = 6, S = 320, T = 54 ( 45 A + 9 D) 20 KB
+@@ -414,7 +417,7 @@ ecc-curve448.h: eccdata.stamp
+ # k = 19, c = 7, S = 256, T = 57 ( 38 A + 19 D) 16 KB
+ # k = 15, c = 6, S = 192, T = 60 ( 45 A + 15 D) 12 KB
+ ecc-gost-gc256b.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) gost_gc256b 11 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) gost_gc256b 11 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+ # Some reasonable choices for 512:
+ # k = 22, c = 6, S = 256, T = 110 ( 88 A + 22 D) 32 KB
+@@ -423,10 +426,10 @@ ecc-gost-gc256b.h: eccdata.stamp
+ # k = 43, c = 6, S = 128, T = 129 ( 86 A + 43 D) 16 KB
+ # k = 35, c = 5, S = 96, T = 140 (105 A + 35 D) 12 KB
+ ecc-gost-gc512a.h: eccdata.stamp
+- ./eccdata$(EXEEXT_FOR_BUILD) gost_gc512a 43 6 $(NUMB_BITS) > $@T && mv $@T $@
++ $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) gost_gc512a 43 6 $(NUMB_BITS) > $@T && mv $@T $@
+
+-eccdata.stamp: eccdata.c
+- $(MAKE) eccdata$(EXEEXT_FOR_BUILD)
++./eccdata$(EXEEXT_FOR_BUILD): eccdata.c
++eccdata.stamp: $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD)
+ echo stamp > eccdata.stamp
+
+ ecc-curve25519.$(OBJEXT): ecc-curve25519.h
+diff --git a/aclocal.m4 b/aclocal.m4
+index 629db8a7..0cf32544 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -345,6 +345,7 @@ if AC_TRY_EVAL(gmp_compile); then
+ if (./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest) >&AS_MESSAGE_LOG_FD 2>&1; then
+ cc_for_build_works=yes
+ fi
++ cc_for_build_works=yes # forced
+ fi
+ rm -f conftest* a.out b.out a.exe a_out.exe
+ AC_MSG_RESULT($cc_for_build_works)
diff --git a/vcpkg/ports/nettle/lib-to-def.cmake b/vcpkg/ports/nettle/lib-to-def.cmake
new file mode 100644
index 0000000..09d55c4
--- /dev/null
+++ b/vcpkg/ports/nettle/lib-to-def.cmake
@@ -0,0 +1,32 @@
+function(lib_to_def)
+ if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW OR NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ return()
+ endif()
+
+ cmake_parse_arguments(PARSE_ARGV 0 arg "" "BASENAME;REGEX" "")
+ if(NOT arg_BASENAME)
+ message(FATAL_ERROR "BASENAME is a required argument.")
+ endif()
+ if(NOT arg_REGEX)
+ set(arg_REGEX "[^ ]+")
+ endif()
+
+ set(logfile "${CURRENT_BUILDTREES_DIR}/dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}-symbols.log")
+ vcpkg_execute_required_process(
+ COMMAND dumpbin /symbols "/OUT:${logfile}" "${CURRENT_PACKAGES_DIR}/lib/${arg_BASENAME}.lib"
+ WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}"
+ LOGNAME "dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}"
+ )
+ file(STRINGS "${logfile}" symbols REGEX "^... ........ SECT.. notype .. External [|] ${arg_REGEX}")
+ list(TRANSFORM symbols REPLACE "^[^|]+[|] " " ")
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ string(REPLACE " _" " " symbols "${symbols}")
+ endif()
+ list(JOIN symbols "\n" symbols)
+ set(symbols "EXPORTS\n${symbols}\n")
+ file(READ "${CMAKE_CURRENT_LIST_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def" original_symbols)
+ if(NOT symbols STREQUAL original_symbols)
+ file(WRITE "${CURRENT_BUILDTREES_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def.log" "${symbols}")
+ message(SEND_ERROR "${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def has changed.")
+ endif()
+endfunction()
diff --git a/vcpkg/ports/nettle/libname-windows.patch b/vcpkg/ports/nettle/libname-windows.patch
new file mode 100644
index 0000000..e8990ec
--- /dev/null
+++ b/vcpkg/ports/nettle/libname-windows.patch
@@ -0,0 +1,67 @@
+diff --git a/Makefile.in b/Makefile.in
+index 2f05c29..16a150c 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -26,7 +26,7 @@ include config.make
+ PRE_CPPFLAGS = -I.
+ EXTRA_CFLAGS = $(CCPIC)
+
+-LIBTARGETS = @IF_STATIC@ libnettle.a @IF_HOGWEED@ libhogweed.a
++LIBTARGETS = @IF_STATIC@ $(LIBNETTLE_FILE) @IF_HOGWEED@ $(LIBHOGWEED_FILE)
+ SHLIBTARGETS = @IF_SHARED@ $(LIBNETTLE_FORLINK) @IF_HOGWEED@ $(LIBHOGWEED_FORLINK)
+
+ getopt_SOURCES = getopt.c getopt1.c
+@@ -276,13 +276,13 @@ nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) \
+ hogweed_OBJS = $(hogweed_SOURCES:.c=.$(OBJEXT)) \
+ $(OPT_HOGWEED_OBJS) @IF_MINI_GMP@ mini-gmp.$(OBJEXT)
+
+-libnettle.a: $(nettle_OBJS)
++$(LIBNETTLE_FILE): $(nettle_OBJS)
+ -rm -f $@
+ $(AR) $(ARFLAGS) $@ $(nettle_OBJS)
+ $(RANLIB) $@
+ echo nettle > libnettle.stamp
+
+-libhogweed.a: $(hogweed_OBJS)
++$(LIBHOGWEED_FILE): $(hogweed_OBJS)
+ -rm -f $@
+ $(AR) $(ARFLAGS) $@ $(hogweed_OBJS)
+ $(RANLIB) $@
+diff --git a/configure.ac b/configure.ac
+index c020afd..0fb201b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -786,8 +786,8 @@ case "$host_os" in
+ # linking to the DLL, is installed into the lib dir.
+ case "$host_os" in
+ mingw32*)
+- LIBNETTLE_FORLINK='libnettle-$(LIBNETTLE_MAJOR).dll'
+- LIBHOGWEED_FORLINK='libhogweed-$(LIBHOGWEED_MAJOR).dll'
++ LIBNETTLE_FORLINK='nettle-$(LIBNETTLE_MAJOR).dll'
++ LIBHOGWEED_FORLINK='hogweed-$(LIBHOGWEED_MAJOR).dll'
+ ;;
+ cygwin*)
+ LIBNETTLE_FORLINK='cygnettle-$(LIBNETTLE_MAJOR).dll'
+@@ -808,16 +808,16 @@ case "$host_os" in
+ W64_ABI=yes
+ fi
+ LIBNETTLE_SONAME=''
+- LIBNETTLE_FILE='libnettle.dll.a'
++ LIBNETTLE_FILE='nettle.lib'
+ LIBNETTLE_FILE_SRC='$(LIBNETTLE_FILE)'
+- LIBNETTLE_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBNETTLE_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
+- LIBNETTLE_LIBS='-Wl,--no-whole-archive $(LIBS)'
++ LIBNETTLE_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBNETTLE_FILE) -Wl,-DEF:nettle.def'
++ LIBNETTLE_LIBS='$(LIBS)'
+
+ LIBHOGWEED_SONAME=''
+- LIBHOGWEED_FILE='libhogweed.dll.a'
++ LIBHOGWEED_FILE='hogweed.lib'
+ LIBHOGWEED_FILE_SRC='$(LIBHOGWEED_FILE)'
+- LIBHOGWEED_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBHOGWEED_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
+- LIBHOGWEED_LIBS='-Wl,--no-whole-archive $(LIBS) libnettle.dll.a'
++ LIBHOGWEED_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBHOGWEED_FILE) -Wl,-DEF:hogweed.def'
++ LIBHOGWEED_LIBS='$(LIBS) $(LIBNETTLE_FILE)'
+ IF_DLL=''
+ ;;
+ darwin*)
diff --git a/vcpkg/ports/nettle/msvc-support.patch b/vcpkg/ports/nettle/msvc-support.patch
new file mode 100644
index 0000000..4245a28
--- /dev/null
+++ b/vcpkg/ports/nettle/msvc-support.patch
@@ -0,0 +1,99 @@
+diff --git a/Makefile.in b/Makefile.in
+index 3194735..669bdfe 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -29,8 +29,9 @@ include config.make
+ PRE_CPPFLAGS = -I.
+ EXTRA_CFLAGS = $(CCPIC)
+
+-LIBTARGETS = @IF_STATIC@ libnettle.a @IF_HOGWEED@ libhogweed.a
++LIBTARGETS = @IF_STATIC@ @LIBNETTLE_ARCHIVE@ @IF_HOGWEED@ @LIBHOGWEED_ARCHIVE@
+ SHLIBTARGETS = @IF_SHARED@ $(LIBNETTLE_FORLINK) @IF_HOGWEED@ $(LIBHOGWEED_FORLINK)
++MSVC_TARGET = @MSVC_TARGET@
+
+ getopt_SOURCES = getopt.c getopt1.c
+ getopt_TARGETS = $(getopt_SOURCES:.c=.$(OBJEXT))
+@@ -288,13 +289,13 @@ nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) \
+ hogweed_OBJS = $(hogweed_SOURCES:.c=.$(OBJEXT)) \
+ $(OPT_HOGWEED_OBJS) @IF_MINI_GMP@ mini-gmp.$(OBJEXT)
+
+-libnettle.a: $(nettle_OBJS)
++@LIBNETTLE_ARCHIVE@: $(nettle_OBJS)
+ -rm -f $@
+ $(AR) $(ARFLAGS) $@ $(nettle_OBJS)
+ $(RANLIB) $@
+ echo nettle > libnettle.stamp
+
+-libhogweed.a: $(hogweed_OBJS)
++@LIBHOGWEED_ARCHIVE@: $(hogweed_OBJS)
+ -rm -f $@
+ $(AR) $(ARFLAGS) $@ $(hogweed_OBJS)
+ $(RANLIB) $@
+@@ -500,8 +501,8 @@ install-static: $(LIBTARGETS)
+ done
+
+ install-dll-nettle:
+- $(MKDIR_P) $(DESTDIR)$(bindir)
+- $(INSTALL_DATA) $(LIBNETTLE_FORLINK) $(DESTDIR)$(bindir)/$(LIBNETTLE_FORLINK)
++ $(MKDIR_P) $(DESTDIR)$(libdir)/../bin
++ $(INSTALL_DATA) $(LIBNETTLE_FORLINK) $(DESTDIR)$(libdir)/../bin/$(LIBNETTLE_FORLINK)
+
+ install-shared-nettle: $(LIBNETTLE_FORLINK) @IF_DLL@ install-dll-nettle
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+@@ -513,8 +514,8 @@ install-shared-nettle: $(LIBNETTLE_FORLINK) @IF_DLL@ install-dll-nettle
+ && $(LN_S) $(LIBNETTLE_FILE) $(LIBNETTLE_FORLINK))
+
+ install-dll-hogweed:
+- $(MKDIR_P) $(DESTDIR)$(bindir)
+- $(INSTALL_DATA) $(LIBHOGWEED_FORLINK) $(DESTDIR)$(bindir)/$(LIBHOGWEED_FORLINK)
++ $(MKDIR_P) $(DESTDIR)$(libdir)/../bin
++ $(INSTALL_DATA) $(LIBHOGWEED_FORLINK) $(DESTDIR)$(libdir)/../bin/$(LIBHOGWEED_FORLINK)
+
+ install-shared-hogweed: $(LIBHOGWEED_FORLINK) @IF_DLL@ install-dll-hogweed
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+diff --git a/configure.ac b/configure.ac
+index 7a17853..c854679 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -907,6 +907,27 @@ case "$host_os" in
+ LIBHOGWEED_LIBS='libnettle.so $(LIBS)'
+ ;;
+ esac
++AC_ARG_VAR(MSVC_TARGET,[Enable msvc and set target architecture])
++case "$MSVC_TARGET" in
++x86|x64|arm|arm64)
++ LIBNETTLE_ARCHIVE='nettle.lib'
++ LIBNETTLE_FORLINK='nettle-$(LIBNETTLE_MAJOR).dll'
++ LIBNETTLE_FILE='nettle.lib'
++ LIBNETTLE_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBNETTLE_FILE) -Wl,-DEF:$(srcdir)/nettle-$(MSVC_TARGET).def'
++ LIBNETTLE_LIBS='$(LIBS)'
++ LIBHOGWEED_FILE='hogweed.lib'
++ LIBHOGWEED_ARCHIVE='hogweed.lib'
++ LIBHOGWEED_FORLINK='hogweed-$(LIBHOGWEED_MAJOR).dll'
++ LIBHOGWEED_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBHOGWEED_FILE) -Wl,-DEF:$(srcdir)/hogweed-$(MSVC_TARGET).def'
++ LIBHOGWEED_LIBS='$(LIBNETTLE_FILE) $(LIBS)'
++ ;;
++*)
++ LIBNETTLE_ARCHIVE='libnettle.a'
++ LIBHOGWEED_ARCHIVE='libhogweed.a'
++ ;;
++esac
++AC_SUBST(LIBNETTLE_ARCHIVE)
++AC_SUBST(LIBHOGWEED_ARCHIVE)
+
+ ASM_SYMBOL_PREFIX=''
+ ASM_ELF_STYLE='no'
+diff --git a/getopt.c b/getopt.c
+index 9d29de7..42df5a6 100644
+--- a/getopt.c
++++ b/getopt.c
+@@ -32,7 +32,9 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#ifndef _MSC_VER
+ #include <unistd.h>
++#endif
+
+
+ /* Comment out all this code if we are using the GNU C Library, and are not
diff --git a/vcpkg/ports/nettle/nettle-arm.def b/vcpkg/ports/nettle/nettle-arm.def
new file mode 100644
index 0000000..52d5fb1
--- /dev/null
+++ b/vcpkg/ports/nettle/nettle-arm.def
@@ -0,0 +1,567 @@
+EXPORTS
+ nettle_xts_aes256_set_encrypt_key
+ nettle_xts_aes256_set_decrypt_key
+ nettle_xts_aes256_encrypt_message
+ nettle_xts_aes256_decrypt_message
+ nettle_xts_aes128_set_encrypt_key
+ nettle_xts_aes128_set_decrypt_key
+ nettle_xts_aes128_encrypt_message
+ nettle_xts_aes128_decrypt_message
+ nettle_xts_encrypt_message
+ nettle_xts_decrypt_message
+ nettle_yarrow_key_event_init
+ nettle_yarrow_key_event_estimate
+ nettle_yarrow256_init
+ nettle_yarrow256_seed
+ nettle_yarrow256_update
+ nettle_yarrow256_random
+ nettle_yarrow256_is_seeded
+ nettle_yarrow256_needed_sources
+ nettle_yarrow256_fast_reseed
+ nettle_yarrow256_slow_reseed
+ _nettle_write_le64
+ _nettle_write_le32
+ _nettle_write_be32
+ nettle_version_major
+ nettle_version_minor
+ nettle_umac128_set_key
+ nettle_umac128_set_nonce
+ nettle_umac128_update
+ nettle_umac128_digest
+ nettle_umac96_set_key
+ nettle_umac96_set_nonce
+ nettle_umac96_update
+ nettle_umac96_digest
+ nettle_umac64_set_key
+ nettle_umac64_set_nonce
+ nettle_umac64_update
+ nettle_umac64_digest
+ nettle_umac32_set_key
+ nettle_umac32_set_nonce
+ nettle_umac32_update
+ nettle_umac32_digest
+ _nettle_umac_set_key
+ _nettle_umac_poly128
+ _nettle_umac_poly64
+ _nettle_umac_l3_init
+ _nettle_umac_l3
+ _nettle_umac_l2_init
+ _nettle_umac_l2
+ _nettle_umac_l2_final
+ _nettle_umac_nh_n
+ _nettle_umac_nh
+ nettle_sm4
+ nettle_sm4_set_encrypt_key
+ nettle_sm4_set_decrypt_key
+ nettle_sm4_crypt
+ nettle_twofish128
+ nettle_twofish192
+ nettle_twofish256
+ nettle_twofish_set_key
+ nettle_twofish128_set_key
+ nettle_twofish192_set_key
+ nettle_twofish256_set_key
+ nettle_twofish_encrypt
+ nettle_twofish_decrypt
+ nettle_streebog256
+ nettle_streebog512
+ nettle_streebog512_init
+ nettle_streebog512_update
+ nettle_streebog512_digest
+ nettle_streebog256_init
+ nettle_streebog256_digest
+ nettle_serpent128
+ nettle_serpent192
+ nettle_serpent256
+ nettle_serpent_decrypt
+ nettle_serpent_encrypt
+ nettle_serpent_set_key
+ nettle_serpent128_set_key
+ nettle_serpent192_set_key
+ nettle_serpent256_set_key
+ nettle_sm3
+ nettle_sm3_init
+ nettle_sm3_update
+ nettle_sm3_digest
+ nettle_sha3_256_shake
+ nettle_sha3_512
+ nettle_sha3_512_init
+ nettle_sha3_512_update
+ nettle_sha3_512_digest
+ nettle_sha3_384
+ nettle_sha3_384_init
+ nettle_sha3_384_update
+ nettle_sha3_384_digest
+ nettle_sha3_256
+ nettle_sha3_256_init
+ nettle_sha3_256_update
+ nettle_sha3_256_digest
+ nettle_sha3_224
+ nettle_sha3_224_init
+ nettle_sha3_224_update
+ nettle_sha3_224_digest
+ nettle_sha3_permute
+ _nettle_sha3_update
+ _nettle_sha3_pad
+ nettle_sha512_256
+ nettle_sha512_224
+ nettle_sha512
+ nettle_sha384
+ _nettle_sha512_compress
+ nettle_sha512_init
+ nettle_sha512_update
+ nettle_sha512_digest
+ nettle_sha512_compress
+ nettle_sha384_init
+ nettle_sha384_digest
+ nettle_sha512_224_init
+ nettle_sha512_224_digest
+ nettle_sha512_256_init
+ nettle_sha512_256_digest
+ nettle_sha256
+ nettle_sha224
+ _nettle_sha256_compress_n
+ nettle_sha256_init
+ nettle_sha256_update
+ nettle_sha256_digest
+ nettle_sha256_compress
+ nettle_sha224_init
+ nettle_sha224_digest
+ nettle_sha1
+ nettle_sha1_compress
+ nettle_sha1_init
+ nettle_sha1_update
+ nettle_sha1_digest
+ nettle_salsa20_256_set_key
+ nettle_salsa20_128_set_key
+ nettle_salsa20_set_nonce
+ nettle_salsa20_set_key
+ nettle_salsa20r12_crypt
+ nettle_salsa20_crypt
+ _nettle_salsa20_crypt
+ _nettle_salsa20_core
+ nettle_ripemd160
+ _nettle_ripemd160_compress
+ nettle_ripemd160_init
+ nettle_ripemd160_update
+ nettle_ripemd160_digest
+ nettle_realloc
+ nettle_xrealloc
+ _nettle_poly1305_update
+ _nettle_poly1305_set_key
+ _nettle_poly1305_digest
+ _nettle_poly1305_block
+ nettle_poly1305_aes_set_key
+ nettle_poly1305_aes_set_nonce
+ nettle_poly1305_aes_update
+ nettle_poly1305_aes_digest
+ nettle_pbkdf2_hmac_sha512
+ nettle_pbkdf2_hmac_sha384
+ nettle_pbkdf2_hmac_sha256
+ nettle_pbkdf2_hmac_sha1
+ nettle_pbkdf2_hmac_gosthash94cp
+ nettle_pbkdf2
+ nettle_ocb_aes128_set_encrypt_key
+ nettle_ocb_aes128_set_decrypt_key
+ nettle_ocb_aes128_set_nonce
+ nettle_ocb_aes128_update
+ nettle_ocb_aes128_encrypt
+ nettle_ocb_aes128_decrypt
+ nettle_ocb_aes128_digest
+ nettle_ocb_aes128_encrypt_message
+ nettle_ocb_aes128_decrypt_message
+ nettle_ocb_set_key
+ nettle_ocb_set_nonce
+ nettle_ocb_update
+ nettle_ocb_encrypt
+ nettle_ocb_decrypt
+ nettle_ocb_digest
+ nettle_ocb_encrypt_message
+ nettle_ocb_decrypt_message
+ _nettle_macs
+ nettle_get_macs
+ _nettle_hashes
+ nettle_get_hashes
+ _nettle_ciphers
+ nettle_get_ciphers
+ _nettle_armors
+ nettle_get_armors
+ _nettle_aeads
+ nettle_get_aeads
+ nettle_lookup_hash
+ nettle_memxor3
+ nettle_memxor
+ nettle_memeql_sec
+ nettle_md5
+ nettle_MD5Init
+ nettle_MD5Update
+ nettle_MD5Final
+ nettle_md5_compress
+ nettle_md5_init
+ nettle_md5_update
+ nettle_md5_digest
+ nettle_md4
+ nettle_md4_init
+ nettle_md4_update
+ nettle_md4_digest
+ nettle_md2
+ nettle_md2_init
+ nettle_md2_update
+ nettle_md2_digest
+ nettle_hkdf_extract
+ nettle_hkdf_expand
+ nettle_knuth_lfib_init
+ nettle_knuth_lfib_get
+ nettle_knuth_lfib_get_array
+ nettle_knuth_lfib_random
+ nettle_hmac_sm3
+ nettle_hmac_streebog256
+ nettle_hmac_streebog512
+ nettle_hmac_sha512
+ nettle_hmac_sha384
+ nettle_hmac_sha256
+ nettle_hmac_sha224
+ nettle_hmac_sha1
+ nettle_hmac_ripemd160
+ nettle_hmac_md5
+ nettle_hmac_sm3_set_key
+ nettle_hmac_sm3_update
+ nettle_hmac_sm3_digest
+ nettle_hmac_streebog512_set_key
+ nettle_hmac_streebog512_update
+ nettle_hmac_streebog512_digest
+ nettle_hmac_streebog256_set_key
+ nettle_hmac_streebog256_digest
+ nettle_hmac_sha512_set_key
+ nettle_hmac_sha512_update
+ nettle_hmac_sha512_digest
+ nettle_hmac_sha384_set_key
+ nettle_hmac_sha384_digest
+ nettle_hmac_sha256_set_key
+ nettle_hmac_sha256_update
+ nettle_hmac_sha256_digest
+ nettle_hmac_sha224_set_key
+ nettle_hmac_sha224_digest
+ nettle_hmac_sha1_set_key
+ nettle_hmac_sha1_update
+ nettle_hmac_sha1_digest
+ nettle_hmac_ripemd160_set_key
+ nettle_hmac_ripemd160_update
+ nettle_hmac_ripemd160_digest
+ nettle_hmac_md5_set_key
+ nettle_hmac_md5_update
+ nettle_hmac_md5_digest
+ nettle_hmac_gosthash94_set_key
+ nettle_hmac_gosthash94_update
+ nettle_hmac_gosthash94_digest
+ nettle_hmac_gosthash94cp_set_key
+ nettle_hmac_gosthash94cp_update
+ nettle_hmac_gosthash94cp_digest
+ nettle_hmac_set_key
+ nettle_hmac_update
+ nettle_hmac_digest
+ nettle_gosthash94
+ nettle_gosthash94cp
+ nettle_gosthash94_init
+ nettle_gosthash94_update
+ nettle_gosthash94_digest
+ nettle_gosthash94cp_update
+ nettle_gosthash94cp_digest
+ _nettle_gost28147_param_test_3411
+ _nettle_gost28147_param_CryptoPro_3411
+ _nettle_gost28147_encrypt_block
+ nettle_cmac_des3
+ nettle_cmac_aes256
+ nettle_cmac_aes128
+ nettle_cmac_des3_set_key
+ nettle_cmac_des3_update
+ nettle_cmac_des3_digest
+ nettle_cmac_aes256_set_key
+ nettle_cmac_aes256_update
+ nettle_cmac_aes256_digest
+ nettle_cmac_aes128_set_key
+ nettle_cmac_aes128_update
+ nettle_cmac_aes128_digest
+ nettle_cmac64_set_key
+ nettle_cmac64_init
+ nettle_cmac64_update
+ nettle_cmac64_digest
+ nettle_cmac128_set_key
+ nettle_cmac128_init
+ nettle_cmac128_update
+ nettle_cmac128_digest
+ nettle_gcm_sm4
+ nettle_gcm_sm4_set_key
+ nettle_gcm_sm4_set_iv
+ nettle_gcm_sm4_update
+ nettle_gcm_sm4_encrypt
+ nettle_gcm_sm4_decrypt
+ nettle_gcm_sm4_digest
+ nettle_gcm_camellia256
+ nettle_gcm_camellia256_set_key
+ nettle_gcm_camellia256_set_iv
+ nettle_gcm_camellia256_update
+ nettle_gcm_camellia256_encrypt
+ nettle_gcm_camellia256_decrypt
+ nettle_gcm_camellia256_digest
+ nettle_gcm_camellia128
+ nettle_gcm_camellia128_set_key
+ nettle_gcm_camellia128_set_iv
+ nettle_gcm_camellia128_update
+ nettle_gcm_camellia128_encrypt
+ nettle_gcm_camellia128_decrypt
+ nettle_gcm_camellia128_digest
+ nettle_gcm_aes256
+ nettle_gcm_aes256_set_key
+ nettle_gcm_aes256_update
+ nettle_gcm_aes256_set_iv
+ nettle_gcm_aes256_encrypt
+ nettle_gcm_aes256_decrypt
+ nettle_gcm_aes256_digest
+ nettle_gcm_aes192
+ nettle_gcm_aes192_set_key
+ nettle_gcm_aes192_update
+ nettle_gcm_aes192_set_iv
+ nettle_gcm_aes192_encrypt
+ nettle_gcm_aes192_decrypt
+ nettle_gcm_aes192_digest
+ nettle_gcm_aes128
+ nettle_gcm_aes128_set_key
+ nettle_gcm_aes128_update
+ nettle_gcm_aes128_set_iv
+ nettle_gcm_aes128_encrypt
+ nettle_gcm_aes128_decrypt
+ nettle_gcm_aes128_digest
+ nettle_gcm_aes_set_key
+ nettle_gcm_aes_set_iv
+ nettle_gcm_aes_update
+ nettle_gcm_aes_encrypt
+ nettle_gcm_aes_decrypt
+ nettle_gcm_aes_digest
+ nettle_gcm_set_key
+ nettle_gcm_set_iv
+ nettle_gcm_update
+ nettle_gcm_encrypt
+ nettle_gcm_decrypt
+ nettle_gcm_digest
+ _nettle_siv_ghash_update
+ _nettle_siv_ghash_set_key
+ _nettle_ghash_update
+ _nettle_ghash_set_key
+ nettle_eax_aes128
+ nettle_eax_aes128_set_key
+ nettle_eax_aes128_set_nonce
+ nettle_eax_aes128_update
+ nettle_eax_aes128_encrypt
+ nettle_eax_aes128_decrypt
+ nettle_eax_aes128_digest
+ nettle_eax_set_key
+ nettle_eax_set_nonce
+ nettle_eax_update
+ nettle_eax_encrypt
+ nettle_eax_decrypt
+ nettle_eax_digest
+ nettle_des3_set_key
+ nettle_des3_encrypt
+ nettle_des3_decrypt
+ nettle_des_set_key
+ nettle_des_encrypt
+ nettle_des_decrypt
+ nettle_des_check_parity
+ nettle_des_fix_parity
+ _nettle_ctr_crypt16
+ nettle_ctr_crypt
+ nettle_chacha_set_nonce
+ nettle_chacha_set_nonce96
+ nettle_chacha_set_counter
+ nettle_chacha_set_counter32
+ nettle_chacha_set_key
+ nettle_chacha_poly1305
+ nettle_chacha_poly1305_set_key
+ nettle_chacha_poly1305_set_nonce
+ nettle_chacha_poly1305_update
+ nettle_chacha_poly1305_encrypt
+ nettle_chacha_poly1305_decrypt
+ nettle_chacha_poly1305_digest
+ _nettle_chacha_core
+ nettle_chacha_crypt
+ nettle_chacha_crypt32
+ nettle_cnd_memcpy
+ nettle_siv_gcm_aes256_encrypt_message
+ nettle_siv_gcm_aes256_decrypt_message
+ nettle_siv_gcm_aes128_encrypt_message
+ nettle_siv_gcm_aes128_decrypt_message
+ nettle_siv_gcm_encrypt_message
+ nettle_siv_gcm_decrypt_message
+ nettle_siv_cmac_aes256_set_key
+ nettle_siv_cmac_aes256_encrypt_message
+ nettle_siv_cmac_aes256_decrypt_message
+ nettle_siv_cmac_aes128_set_key
+ nettle_siv_cmac_aes128_encrypt_message
+ nettle_siv_cmac_aes128_decrypt_message
+ nettle_siv_cmac_set_key
+ nettle_siv_cmac_encrypt_message
+ nettle_siv_cmac_decrypt_message
+ nettle_cfb_encrypt
+ nettle_cfb_decrypt
+ nettle_cfb8_encrypt
+ nettle_cfb8_decrypt
+ nettle_ccm_aes256_set_key
+ nettle_ccm_aes256_set_nonce
+ nettle_ccm_aes256_update
+ nettle_ccm_aes256_encrypt
+ nettle_ccm_aes256_decrypt
+ nettle_ccm_aes256_digest
+ nettle_ccm_aes256_encrypt_message
+ nettle_ccm_aes256_decrypt_message
+ nettle_ccm_aes192_set_key
+ nettle_ccm_aes192_set_nonce
+ nettle_ccm_aes192_update
+ nettle_ccm_aes192_encrypt
+ nettle_ccm_aes192_decrypt
+ nettle_ccm_aes192_digest
+ nettle_ccm_aes192_encrypt_message
+ nettle_ccm_aes192_decrypt_message
+ nettle_ccm_aes128_set_key
+ nettle_ccm_aes128_set_nonce
+ nettle_ccm_aes128_update
+ nettle_ccm_aes128_encrypt
+ nettle_ccm_aes128_decrypt
+ nettle_ccm_aes128_digest
+ nettle_ccm_aes128_encrypt_message
+ nettle_ccm_aes128_decrypt_message
+ nettle_ccm_set_nonce
+ nettle_ccm_update
+ nettle_ccm_encrypt
+ nettle_ccm_decrypt
+ nettle_ccm_digest
+ nettle_ccm_encrypt_message
+ nettle_ccm_decrypt_message
+ nettle_cbc_aes256_encrypt
+ nettle_cbc_aes192_encrypt
+ nettle_cbc_aes128_encrypt
+ nettle_cbc_encrypt
+ nettle_cbc_decrypt
+ nettle_cast128
+ nettle_cast5_set_key
+ nettle_cast128_set_key
+ nettle_cast128_encrypt
+ nettle_cast128_decrypt
+ nettle_camellia256
+ nettle_camellia256_set_decrypt_key
+ nettle_camellia256_invert_key
+ nettle_camellia192_set_decrypt_key
+ nettle_camellia256_crypt
+ nettle_camellia256_set_encrypt_key
+ nettle_camellia192_set_encrypt_key
+ nettle_camellia192
+ nettle_camellia128
+ nettle_camellia_set_decrypt_key
+ nettle_camellia128_invert_key
+ nettle_camellia128_crypt
+ nettle_camellia128_set_encrypt_key
+ _nettle_camellia_invert_key
+ _nettle_camellia_absorb
+ _nettle_camellia_table
+ _nettle_camellia_crypt
+ nettle_buffer_init
+ nettle_buffer_init_realloc
+ nettle_buffer_init_size
+ nettle_buffer_clear
+ nettle_buffer_reset
+ nettle_buffer_grow
+ nettle_buffer_write
+ nettle_buffer_space
+ nettle_buffer_copy
+ nettle_base64url
+ nettle_base64url_decode_init
+ nettle_base64url_encode_init
+ nettle_base64
+ nettle_base64_decode_init
+ nettle_base64_decode_single
+ nettle_base64_decode_update
+ nettle_base64_decode_final
+ nettle_base64_encode_init
+ nettle_base64_encode_single
+ nettle_base64_encode_update
+ nettle_base64_encode_final
+ nettle_base64_encode_raw
+ nettle_base64_encode_group
+ nettle_base16
+ nettle_base16_decode_init
+ nettle_base16_decode_single
+ nettle_base16_decode_update
+ nettle_base16_decode_final
+ nettle_base16_encode_single
+ nettle_base16_encode_update
+ nettle_balloon_sha512
+ nettle_balloon_sha384
+ nettle_balloon_sha256
+ nettle_balloon_sha1
+ nettle_balloon
+ nettle_balloon_itch
+ nettle_blowfish_bcrypt_hash
+ nettle_blowfish_bcrypt_verify
+ _nettle_blowfish_initial_ctx
+ nettle_blowfish_set_key
+ nettle_blowfish128_set_key
+ nettle_blowfish_encrypt
+ nettle_blowfish_decrypt
+ _nettle_blowfish_encround
+ nettle_arctwo40
+ nettle_arctwo64
+ nettle_arctwo128
+ nettle_arctwo_gutmann128
+ nettle_arctwo_set_key_ekb
+ nettle_arctwo_set_key
+ nettle_arctwo40_set_key
+ nettle_arctwo64_set_key
+ nettle_arctwo128_set_key
+ nettle_arctwo_set_key_gutmann
+ nettle_arctwo128_set_key_gutmann
+ nettle_arctwo_encrypt
+ nettle_arctwo_decrypt
+ nettle_arcfour_set_key
+ nettle_arcfour128_set_key
+ nettle_arcfour_crypt
+ nettle_nist_keywrap16
+ nettle_nist_keyunwrap16
+ nettle_aes128_keywrap
+ nettle_aes192_keywrap
+ nettle_aes256_keywrap
+ nettle_aes128_keyunwrap
+ nettle_aes192_keyunwrap
+ nettle_aes256_keyunwrap
+ nettle_aes256
+ nettle_aes256_set_decrypt_key
+ nettle_aes256_invert_key
+ nettle_aes256_set_encrypt_key
+ nettle_aes192
+ nettle_aes192_set_decrypt_key
+ nettle_aes192_invert_key
+ nettle_aes192_set_encrypt_key
+ nettle_aes128
+ nettle_aes128_set_decrypt_key
+ nettle_aes128_invert_key
+ nettle_aes128_set_encrypt_key
+ nettle_aes_set_decrypt_key
+ nettle_aes_invert_key
+ nettle_aes_set_encrypt_key
+ _nettle_aes_set_key
+ _nettle_aes_invert
+ nettle_aes256_encrypt
+ nettle_aes192_encrypt
+ nettle_aes128_encrypt
+ _nettle_aes_encrypt_table
+ nettle_aes_encrypt
+ _nettle_aes_encrypt
+ nettle_aes256_decrypt
+ nettle_aes192_decrypt
+ nettle_aes128_decrypt
+ _nettle_aes_decrypt_table
+ nettle_aes_decrypt
+ _nettle_aes_decrypt
+ nettle_sha3_256_shake_output
+ nettle_sha3_128_init
+ nettle_sha3_128_update
+ nettle_sha3_128_shake_output
diff --git a/vcpkg/ports/nettle/nettle-arm64.def b/vcpkg/ports/nettle/nettle-arm64.def
new file mode 100644
index 0000000..448d040
--- /dev/null
+++ b/vcpkg/ports/nettle/nettle-arm64.def
@@ -0,0 +1,591 @@
+EXPORTS
+ _nettle_sha256_compress_n_arm64
+ _nettle_sha1_compress_arm64
+ _nettle_ghash_update_arm64
+ _nettle_ghash_set_key_arm64
+ _nettle_chacha_4core
+ _nettle_chacha_4core32
+ _nettle_chacha_2core
+ _nettle_chacha_2core32
+ _nettle_aes256_decrypt_arm64
+ _nettle_aes256_encrypt_arm64
+ _nettle_aes192_decrypt_arm64
+ _nettle_aes192_encrypt_arm64
+ _nettle_aes128_decrypt_arm64
+ _nettle_aes128_encrypt_arm64
+ nettle_aes128_encrypt
+ nettle_aes128_decrypt
+ nettle_aes192_encrypt
+ nettle_aes192_decrypt
+ nettle_aes256_encrypt
+ nettle_aes256_decrypt
+ _nettle_ghash_set_key
+ _nettle_ghash_update
+ nettle_sha1_compress
+ _nettle_sha256_compress_n
+ nettle_xts_aes256_set_encrypt_key
+ nettle_xts_aes256_set_decrypt_key
+ nettle_xts_aes256_encrypt_message
+ nettle_xts_aes256_decrypt_message
+ nettle_xts_aes128_set_encrypt_key
+ nettle_xts_aes128_set_decrypt_key
+ nettle_xts_aes128_encrypt_message
+ nettle_xts_aes128_decrypt_message
+ nettle_xts_encrypt_message
+ nettle_xts_decrypt_message
+ nettle_yarrow_key_event_init
+ nettle_yarrow_key_event_estimate
+ nettle_yarrow256_init
+ nettle_yarrow256_seed
+ nettle_yarrow256_update
+ nettle_yarrow256_random
+ nettle_yarrow256_is_seeded
+ nettle_yarrow256_needed_sources
+ nettle_yarrow256_fast_reseed
+ nettle_yarrow256_slow_reseed
+ _nettle_write_le64
+ _nettle_write_le32
+ _nettle_write_be32
+ nettle_version_major
+ nettle_version_minor
+ nettle_umac128_set_key
+ nettle_umac128_set_nonce
+ nettle_umac128_update
+ nettle_umac128_digest
+ nettle_umac96_set_key
+ nettle_umac96_set_nonce
+ nettle_umac96_update
+ nettle_umac96_digest
+ nettle_umac64_set_key
+ nettle_umac64_set_nonce
+ nettle_umac64_update
+ nettle_umac64_digest
+ nettle_umac32_set_key
+ nettle_umac32_set_nonce
+ nettle_umac32_update
+ nettle_umac32_digest
+ _nettle_umac_set_key
+ _nettle_umac_poly128
+ _nettle_umac_poly64
+ _nettle_umac_l3_init
+ _nettle_umac_l3
+ _nettle_umac_l2_init
+ _nettle_umac_l2
+ _nettle_umac_l2_final
+ _nettle_umac_nh_n
+ _nettle_umac_nh
+ nettle_sm4
+ nettle_sm4_set_encrypt_key
+ nettle_sm4_set_decrypt_key
+ nettle_sm4_crypt
+ nettle_twofish128
+ nettle_twofish192
+ nettle_twofish256
+ nettle_twofish_set_key
+ nettle_twofish128_set_key
+ nettle_twofish192_set_key
+ nettle_twofish256_set_key
+ nettle_twofish_encrypt
+ nettle_twofish_decrypt
+ nettle_streebog256
+ nettle_streebog512
+ nettle_streebog512_init
+ nettle_streebog512_update
+ nettle_streebog512_digest
+ nettle_streebog256_init
+ nettle_streebog256_digest
+ nettle_serpent128
+ nettle_serpent192
+ nettle_serpent256
+ nettle_serpent_decrypt
+ nettle_serpent_encrypt
+ nettle_serpent_set_key
+ nettle_serpent128_set_key
+ nettle_serpent192_set_key
+ nettle_serpent256_set_key
+ nettle_sm3
+ nettle_sm3_init
+ nettle_sm3_update
+ nettle_sm3_digest
+ nettle_sha3_256_shake
+ nettle_sha3_512
+ nettle_sha3_512_init
+ nettle_sha3_512_update
+ nettle_sha3_512_digest
+ nettle_sha3_384
+ nettle_sha3_384_init
+ nettle_sha3_384_update
+ nettle_sha3_384_digest
+ nettle_sha3_256
+ nettle_sha3_256_init
+ nettle_sha3_256_update
+ nettle_sha3_256_digest
+ nettle_sha3_224
+ nettle_sha3_224_init
+ nettle_sha3_224_update
+ nettle_sha3_224_digest
+ nettle_sha3_permute
+ _nettle_sha3_update
+ _nettle_sha3_pad
+ nettle_sha512_256
+ nettle_sha512_224
+ nettle_sha512
+ nettle_sha384
+ _nettle_sha512_compress
+ nettle_sha512_init
+ nettle_sha512_update
+ nettle_sha512_digest
+ nettle_sha512_compress
+ nettle_sha384_init
+ nettle_sha384_digest
+ nettle_sha512_224_init
+ nettle_sha512_224_digest
+ nettle_sha512_256_init
+ nettle_sha512_256_digest
+ nettle_sha256
+ nettle_sha224
+ _nettle_sha256_compress_n_c
+ nettle_sha256_init
+ nettle_sha256_update
+ nettle_sha256_digest
+ nettle_sha256_compress
+ nettle_sha224_init
+ nettle_sha224_digest
+ nettle_sha1
+ _nettle_sha1_compress_c
+ nettle_sha1_init
+ nettle_sha1_update
+ nettle_sha1_digest
+ nettle_salsa20_256_set_key
+ nettle_salsa20_128_set_key
+ nettle_salsa20_set_nonce
+ nettle_salsa20_set_key
+ nettle_salsa20r12_crypt
+ nettle_salsa20_crypt
+ _nettle_salsa20_crypt
+ _nettle_salsa20_core
+ nettle_ripemd160
+ _nettle_ripemd160_compress
+ nettle_ripemd160_init
+ nettle_ripemd160_update
+ nettle_ripemd160_digest
+ nettle_realloc
+ nettle_xrealloc
+ _nettle_poly1305_update
+ _nettle_poly1305_set_key
+ _nettle_poly1305_digest
+ _nettle_poly1305_block
+ nettle_poly1305_aes_set_key
+ nettle_poly1305_aes_set_nonce
+ nettle_poly1305_aes_update
+ nettle_poly1305_aes_digest
+ nettle_pbkdf2_hmac_sha512
+ nettle_pbkdf2_hmac_sha384
+ nettle_pbkdf2_hmac_sha256
+ nettle_pbkdf2_hmac_sha1
+ nettle_pbkdf2_hmac_gosthash94cp
+ nettle_pbkdf2
+ nettle_ocb_aes128_set_encrypt_key
+ nettle_ocb_aes128_set_decrypt_key
+ nettle_ocb_aes128_set_nonce
+ nettle_ocb_aes128_update
+ nettle_ocb_aes128_encrypt
+ nettle_ocb_aes128_decrypt
+ nettle_ocb_aes128_digest
+ nettle_ocb_aes128_encrypt_message
+ nettle_ocb_aes128_decrypt_message
+ nettle_ocb_set_key
+ nettle_ocb_set_nonce
+ nettle_ocb_update
+ nettle_ocb_encrypt
+ nettle_ocb_decrypt
+ nettle_ocb_digest
+ nettle_ocb_encrypt_message
+ nettle_ocb_decrypt_message
+ _nettle_macs
+ nettle_get_macs
+ _nettle_hashes
+ nettle_get_hashes
+ _nettle_ciphers
+ nettle_get_ciphers
+ _nettle_armors
+ nettle_get_armors
+ _nettle_aeads
+ nettle_get_aeads
+ nettle_lookup_hash
+ nettle_memxor3
+ nettle_memxor
+ nettle_memeql_sec
+ nettle_md5
+ nettle_MD5Init
+ nettle_MD5Update
+ nettle_MD5Final
+ nettle_md5_compress
+ nettle_md5_init
+ nettle_md5_update
+ nettle_md5_digest
+ nettle_md4
+ nettle_md4_init
+ nettle_md4_update
+ nettle_md4_digest
+ nettle_md2
+ nettle_md2_init
+ nettle_md2_update
+ nettle_md2_digest
+ nettle_hkdf_extract
+ nettle_hkdf_expand
+ nettle_knuth_lfib_init
+ nettle_knuth_lfib_get
+ nettle_knuth_lfib_get_array
+ nettle_knuth_lfib_random
+ nettle_hmac_sm3
+ nettle_hmac_streebog256
+ nettle_hmac_streebog512
+ nettle_hmac_sha512
+ nettle_hmac_sha384
+ nettle_hmac_sha256
+ nettle_hmac_sha224
+ nettle_hmac_sha1
+ nettle_hmac_ripemd160
+ nettle_hmac_md5
+ nettle_hmac_sm3_set_key
+ nettle_hmac_sm3_update
+ nettle_hmac_sm3_digest
+ nettle_hmac_streebog512_set_key
+ nettle_hmac_streebog512_update
+ nettle_hmac_streebog512_digest
+ nettle_hmac_streebog256_set_key
+ nettle_hmac_streebog256_digest
+ nettle_hmac_sha512_set_key
+ nettle_hmac_sha512_update
+ nettle_hmac_sha512_digest
+ nettle_hmac_sha384_set_key
+ nettle_hmac_sha384_digest
+ nettle_hmac_sha256_set_key
+ nettle_hmac_sha256_update
+ nettle_hmac_sha256_digest
+ nettle_hmac_sha224_set_key
+ nettle_hmac_sha224_digest
+ nettle_hmac_sha1_set_key
+ nettle_hmac_sha1_update
+ nettle_hmac_sha1_digest
+ nettle_hmac_ripemd160_set_key
+ nettle_hmac_ripemd160_update
+ nettle_hmac_ripemd160_digest
+ nettle_hmac_md5_set_key
+ nettle_hmac_md5_update
+ nettle_hmac_md5_digest
+ nettle_hmac_gosthash94_set_key
+ nettle_hmac_gosthash94_update
+ nettle_hmac_gosthash94_digest
+ nettle_hmac_gosthash94cp_set_key
+ nettle_hmac_gosthash94cp_update
+ nettle_hmac_gosthash94cp_digest
+ nettle_hmac_set_key
+ nettle_hmac_update
+ nettle_hmac_digest
+ nettle_gosthash94
+ nettle_gosthash94cp
+ nettle_gosthash94_init
+ nettle_gosthash94_update
+ nettle_gosthash94_digest
+ nettle_gosthash94cp_update
+ nettle_gosthash94cp_digest
+ _nettle_gost28147_param_test_3411
+ _nettle_gost28147_param_CryptoPro_3411
+ _nettle_gost28147_encrypt_block
+ nettle_cmac_des3
+ nettle_cmac_aes256
+ nettle_cmac_aes128
+ nettle_cmac_des3_set_key
+ nettle_cmac_des3_update
+ nettle_cmac_des3_digest
+ nettle_cmac_aes256_set_key
+ nettle_cmac_aes256_update
+ nettle_cmac_aes256_digest
+ nettle_cmac_aes128_set_key
+ nettle_cmac_aes128_update
+ nettle_cmac_aes128_digest
+ nettle_cmac64_set_key
+ nettle_cmac64_init
+ nettle_cmac64_update
+ nettle_cmac64_digest
+ nettle_cmac128_set_key
+ nettle_cmac128_init
+ nettle_cmac128_update
+ nettle_cmac128_digest
+ nettle_gcm_sm4
+ nettle_gcm_sm4_set_key
+ nettle_gcm_sm4_set_iv
+ nettle_gcm_sm4_update
+ nettle_gcm_sm4_encrypt
+ nettle_gcm_sm4_decrypt
+ nettle_gcm_sm4_digest
+ nettle_gcm_camellia256
+ nettle_gcm_camellia256_set_key
+ nettle_gcm_camellia256_set_iv
+ nettle_gcm_camellia256_update
+ nettle_gcm_camellia256_encrypt
+ nettle_gcm_camellia256_decrypt
+ nettle_gcm_camellia256_digest
+ nettle_gcm_camellia128
+ nettle_gcm_camellia128_set_key
+ nettle_gcm_camellia128_set_iv
+ nettle_gcm_camellia128_update
+ nettle_gcm_camellia128_encrypt
+ nettle_gcm_camellia128_decrypt
+ nettle_gcm_camellia128_digest
+ nettle_gcm_aes256
+ nettle_gcm_aes256_set_key
+ nettle_gcm_aes256_update
+ nettle_gcm_aes256_set_iv
+ nettle_gcm_aes256_encrypt
+ nettle_gcm_aes256_decrypt
+ nettle_gcm_aes256_digest
+ nettle_gcm_aes192
+ nettle_gcm_aes192_set_key
+ nettle_gcm_aes192_update
+ nettle_gcm_aes192_set_iv
+ nettle_gcm_aes192_encrypt
+ nettle_gcm_aes192_decrypt
+ nettle_gcm_aes192_digest
+ nettle_gcm_aes128
+ nettle_gcm_aes128_set_key
+ nettle_gcm_aes128_update
+ nettle_gcm_aes128_set_iv
+ nettle_gcm_aes128_encrypt
+ nettle_gcm_aes128_decrypt
+ nettle_gcm_aes128_digest
+ nettle_gcm_aes_set_key
+ nettle_gcm_aes_set_iv
+ nettle_gcm_aes_update
+ nettle_gcm_aes_encrypt
+ nettle_gcm_aes_decrypt
+ nettle_gcm_aes_digest
+ nettle_gcm_set_key
+ nettle_gcm_set_iv
+ nettle_gcm_update
+ nettle_gcm_encrypt
+ nettle_gcm_decrypt
+ nettle_gcm_digest
+ _nettle_siv_ghash_update
+ _nettle_siv_ghash_set_key
+ _nettle_ghash_update_c
+ _nettle_ghash_set_key_c
+ nettle_eax_aes128
+ nettle_eax_aes128_set_key
+ nettle_eax_aes128_set_nonce
+ nettle_eax_aes128_update
+ nettle_eax_aes128_encrypt
+ nettle_eax_aes128_decrypt
+ nettle_eax_aes128_digest
+ nettle_eax_set_key
+ nettle_eax_set_nonce
+ nettle_eax_update
+ nettle_eax_encrypt
+ nettle_eax_decrypt
+ nettle_eax_digest
+ nettle_des3_set_key
+ nettle_des3_encrypt
+ nettle_des3_decrypt
+ nettle_des_set_key
+ nettle_des_encrypt
+ nettle_des_decrypt
+ nettle_des_check_parity
+ nettle_des_fix_parity
+ _nettle_ctr_crypt16
+ nettle_ctr_crypt
+ nettle_chacha_set_nonce
+ nettle_chacha_set_nonce96
+ nettle_chacha_set_counter
+ nettle_chacha_set_counter32
+ nettle_chacha_set_key
+ nettle_chacha_poly1305
+ nettle_chacha_poly1305_set_key
+ nettle_chacha_poly1305_set_nonce
+ nettle_chacha_poly1305_update
+ nettle_chacha_poly1305_encrypt
+ nettle_chacha_poly1305_decrypt
+ nettle_chacha_poly1305_digest
+ _nettle_chacha_core
+ nettle_chacha_crypt
+ nettle_chacha_crypt32
+ nettle_cnd_memcpy
+ nettle_siv_gcm_aes256_encrypt_message
+ nettle_siv_gcm_aes256_decrypt_message
+ nettle_siv_gcm_aes128_encrypt_message
+ nettle_siv_gcm_aes128_decrypt_message
+ nettle_siv_gcm_encrypt_message
+ nettle_siv_gcm_decrypt_message
+ nettle_siv_cmac_aes256_set_key
+ nettle_siv_cmac_aes256_encrypt_message
+ nettle_siv_cmac_aes256_decrypt_message
+ nettle_siv_cmac_aes128_set_key
+ nettle_siv_cmac_aes128_encrypt_message
+ nettle_siv_cmac_aes128_decrypt_message
+ nettle_siv_cmac_set_key
+ nettle_siv_cmac_encrypt_message
+ nettle_siv_cmac_decrypt_message
+ nettle_cfb_encrypt
+ nettle_cfb_decrypt
+ nettle_cfb8_encrypt
+ nettle_cfb8_decrypt
+ nettle_ccm_aes256_set_key
+ nettle_ccm_aes256_set_nonce
+ nettle_ccm_aes256_update
+ nettle_ccm_aes256_encrypt
+ nettle_ccm_aes256_decrypt
+ nettle_ccm_aes256_digest
+ nettle_ccm_aes256_encrypt_message
+ nettle_ccm_aes256_decrypt_message
+ nettle_ccm_aes192_set_key
+ nettle_ccm_aes192_set_nonce
+ nettle_ccm_aes192_update
+ nettle_ccm_aes192_encrypt
+ nettle_ccm_aes192_decrypt
+ nettle_ccm_aes192_digest
+ nettle_ccm_aes192_encrypt_message
+ nettle_ccm_aes192_decrypt_message
+ nettle_ccm_aes128_set_key
+ nettle_ccm_aes128_set_nonce
+ nettle_ccm_aes128_update
+ nettle_ccm_aes128_encrypt
+ nettle_ccm_aes128_decrypt
+ nettle_ccm_aes128_digest
+ nettle_ccm_aes128_encrypt_message
+ nettle_ccm_aes128_decrypt_message
+ nettle_ccm_set_nonce
+ nettle_ccm_update
+ nettle_ccm_encrypt
+ nettle_ccm_decrypt
+ nettle_ccm_digest
+ nettle_ccm_encrypt_message
+ nettle_ccm_decrypt_message
+ nettle_cbc_aes256_encrypt
+ nettle_cbc_aes192_encrypt
+ nettle_cbc_aes128_encrypt
+ nettle_cbc_encrypt
+ nettle_cbc_decrypt
+ nettle_cast128
+ nettle_cast5_set_key
+ nettle_cast128_set_key
+ nettle_cast128_encrypt
+ nettle_cast128_decrypt
+ nettle_camellia256
+ nettle_camellia256_set_decrypt_key
+ nettle_camellia256_invert_key
+ nettle_camellia192_set_decrypt_key
+ nettle_camellia256_crypt
+ nettle_camellia256_set_encrypt_key
+ nettle_camellia192_set_encrypt_key
+ nettle_camellia192
+ nettle_camellia128
+ nettle_camellia_set_decrypt_key
+ nettle_camellia128_invert_key
+ nettle_camellia128_crypt
+ nettle_camellia128_set_encrypt_key
+ _nettle_camellia_invert_key
+ _nettle_camellia_absorb
+ _nettle_camellia_table
+ _nettle_camellia_crypt
+ nettle_buffer_init
+ nettle_buffer_init_realloc
+ nettle_buffer_init_size
+ nettle_buffer_clear
+ nettle_buffer_reset
+ nettle_buffer_grow
+ nettle_buffer_write
+ nettle_buffer_space
+ nettle_buffer_copy
+ nettle_base64url
+ nettle_base64url_decode_init
+ nettle_base64url_encode_init
+ nettle_base64
+ nettle_base64_decode_init
+ nettle_base64_decode_single
+ nettle_base64_decode_update
+ nettle_base64_decode_final
+ nettle_base64_encode_init
+ nettle_base64_encode_single
+ nettle_base64_encode_update
+ nettle_base64_encode_final
+ nettle_base64_encode_raw
+ nettle_base64_encode_group
+ nettle_base16
+ nettle_base16_decode_init
+ nettle_base16_decode_single
+ nettle_base16_decode_update
+ nettle_base16_decode_final
+ nettle_base16_encode_single
+ nettle_base16_encode_update
+ nettle_balloon_sha512
+ nettle_balloon_sha384
+ nettle_balloon_sha256
+ nettle_balloon_sha1
+ nettle_balloon
+ nettle_balloon_itch
+ nettle_blowfish_bcrypt_hash
+ nettle_blowfish_bcrypt_verify
+ _nettle_blowfish_initial_ctx
+ nettle_blowfish_set_key
+ nettle_blowfish128_set_key
+ nettle_blowfish_encrypt
+ nettle_blowfish_decrypt
+ _nettle_blowfish_encround
+ nettle_arctwo40
+ nettle_arctwo64
+ nettle_arctwo128
+ nettle_arctwo_gutmann128
+ nettle_arctwo_set_key_ekb
+ nettle_arctwo_set_key
+ nettle_arctwo40_set_key
+ nettle_arctwo64_set_key
+ nettle_arctwo128_set_key
+ nettle_arctwo_set_key_gutmann
+ nettle_arctwo128_set_key_gutmann
+ nettle_arctwo_encrypt
+ nettle_arctwo_decrypt
+ nettle_arcfour_set_key
+ nettle_arcfour128_set_key
+ nettle_arcfour_crypt
+ nettle_nist_keywrap16
+ nettle_nist_keyunwrap16
+ nettle_aes128_keywrap
+ nettle_aes192_keywrap
+ nettle_aes256_keywrap
+ nettle_aes128_keyunwrap
+ nettle_aes192_keyunwrap
+ nettle_aes256_keyunwrap
+ nettle_aes256
+ nettle_aes256_set_decrypt_key
+ nettle_aes256_invert_key
+ nettle_aes256_set_encrypt_key
+ nettle_aes192
+ nettle_aes192_set_decrypt_key
+ nettle_aes192_invert_key
+ nettle_aes192_set_encrypt_key
+ nettle_aes128
+ nettle_aes128_set_decrypt_key
+ nettle_aes128_invert_key
+ nettle_aes128_set_encrypt_key
+ nettle_aes_set_decrypt_key
+ nettle_aes_invert_key
+ nettle_aes_set_encrypt_key
+ _nettle_aes_set_key
+ _nettle_aes_invert
+ _nettle_aes256_encrypt_c
+ _nettle_aes192_encrypt_c
+ _nettle_aes128_encrypt_c
+ _nettle_aes_encrypt_table
+ nettle_aes_encrypt
+ _nettle_aes_encrypt
+ _nettle_aes256_decrypt_c
+ _nettle_aes192_decrypt_c
+ _nettle_aes128_decrypt_c
+ _nettle_aes_decrypt_table
+ nettle_aes_decrypt
+ _nettle_aes_decrypt
+ nettle_sha3_256_shake_output
+ nettle_sha3_128_init
+ nettle_sha3_128_update
+ nettle_sha3_128_shake_output
diff --git a/vcpkg/ports/nettle/nettle-x64.def b/vcpkg/ports/nettle/nettle-x64.def
new file mode 100644
index 0000000..4155da9
--- /dev/null
+++ b/vcpkg/ports/nettle/nettle-x64.def
@@ -0,0 +1,598 @@
+EXPORTS
+ _nettle_sha256_compress_n_sha_ni
+ _nettle_sha1_compress_sha_ni
+ _nettle_salsa20_2core
+ _nettle_ghash_update_pclmul
+ _nettle_ghash_set_key_pclmul
+ _nettle_poly1305_blocks
+ _nettle_cbc_aes256_encrypt_aesni
+ _nettle_cbc_aes192_encrypt_aesni
+ _nettle_cbc_aes128_encrypt_aesni
+ _nettle_aes256_decrypt_aesni
+ _nettle_aes256_encrypt_aesni
+ _nettle_aes192_decrypt_aesni
+ _nettle_aes192_encrypt_aesni
+ _nettle_aes128_decrypt_aesni
+ _nettle_aes128_encrypt_aesni
+ _nettle_memxor_sse2
+ _nettle_cpuid
+ nettle_aes128_encrypt
+ nettle_aes128_decrypt
+ nettle_aes192_encrypt
+ nettle_aes192_decrypt
+ nettle_aes256_encrypt
+ nettle_aes256_decrypt
+ _nettle_ghash_set_key
+ _nettle_ghash_update
+ nettle_memxor
+ nettle_cbc_aes128_encrypt
+ nettle_cbc_aes192_encrypt
+ nettle_cbc_aes256_encrypt
+ nettle_sha1_compress
+ _nettle_sha256_compress_n
+ nettle_xts_aes256_set_encrypt_key
+ nettle_xts_aes256_set_decrypt_key
+ nettle_xts_aes256_encrypt_message
+ nettle_xts_aes256_decrypt_message
+ nettle_xts_aes128_set_encrypt_key
+ nettle_xts_aes128_set_decrypt_key
+ nettle_xts_aes128_encrypt_message
+ nettle_xts_aes128_decrypt_message
+ nettle_xts_encrypt_message
+ nettle_xts_decrypt_message
+ nettle_yarrow_key_event_init
+ nettle_yarrow_key_event_estimate
+ nettle_yarrow256_init
+ nettle_yarrow256_seed
+ nettle_yarrow256_update
+ nettle_yarrow256_random
+ nettle_yarrow256_is_seeded
+ nettle_yarrow256_needed_sources
+ nettle_yarrow256_fast_reseed
+ nettle_yarrow256_slow_reseed
+ _nettle_write_le64
+ _nettle_write_le32
+ _nettle_write_be32
+ nettle_version_major
+ nettle_version_minor
+ nettle_umac128_set_key
+ nettle_umac128_set_nonce
+ nettle_umac128_update
+ nettle_umac128_digest
+ nettle_umac96_set_key
+ nettle_umac96_set_nonce
+ nettle_umac96_update
+ nettle_umac96_digest
+ nettle_umac64_set_key
+ nettle_umac64_set_nonce
+ nettle_umac64_update
+ nettle_umac64_digest
+ nettle_umac32_set_key
+ nettle_umac32_set_nonce
+ nettle_umac32_update
+ nettle_umac32_digest
+ _nettle_umac_set_key
+ _nettle_umac_poly128
+ _nettle_umac_poly64
+ _nettle_umac_l3_init
+ _nettle_umac_l3
+ _nettle_umac_l2_init
+ _nettle_umac_l2
+ _nettle_umac_l2_final
+ _nettle_umac_nh_n
+ _nettle_umac_nh
+ nettle_sm4
+ nettle_sm4_set_encrypt_key
+ nettle_sm4_set_decrypt_key
+ nettle_sm4_crypt
+ nettle_twofish128
+ nettle_twofish192
+ nettle_twofish256
+ nettle_twofish_set_key
+ nettle_twofish128_set_key
+ nettle_twofish192_set_key
+ nettle_twofish256_set_key
+ nettle_twofish_encrypt
+ nettle_twofish_decrypt
+ nettle_streebog256
+ nettle_streebog512
+ nettle_streebog512_init
+ nettle_streebog512_update
+ nettle_streebog512_digest
+ nettle_streebog256_init
+ nettle_streebog256_digest
+ nettle_serpent128
+ nettle_serpent192
+ nettle_serpent256
+ nettle_serpent_decrypt
+ nettle_serpent_encrypt
+ nettle_serpent_set_key
+ nettle_serpent128_set_key
+ nettle_serpent192_set_key
+ nettle_serpent256_set_key
+ nettle_sm3
+ nettle_sm3_init
+ nettle_sm3_update
+ nettle_sm3_digest
+ nettle_sha3_256_shake
+ nettle_sha3_512
+ nettle_sha3_512_init
+ nettle_sha3_512_update
+ nettle_sha3_512_digest
+ nettle_sha3_384
+ nettle_sha3_384_init
+ nettle_sha3_384_update
+ nettle_sha3_384_digest
+ nettle_sha3_256
+ nettle_sha3_256_init
+ nettle_sha3_256_update
+ nettle_sha3_256_digest
+ nettle_sha3_224
+ nettle_sha3_224_init
+ nettle_sha3_224_update
+ nettle_sha3_224_digest
+ nettle_sha3_permute
+ _nettle_sha3_update
+ _nettle_sha3_pad
+ nettle_sha512_256
+ nettle_sha512_224
+ nettle_sha512
+ nettle_sha384
+ _nettle_sha512_compress
+ nettle_sha512_init
+ nettle_sha512_update
+ nettle_sha512_digest
+ nettle_sha512_compress
+ nettle_sha384_init
+ nettle_sha384_digest
+ nettle_sha512_224_init
+ nettle_sha512_224_digest
+ nettle_sha512_256_init
+ nettle_sha512_256_digest
+ nettle_sha256
+ nettle_sha224
+ _nettle_sha256_compress_n_x86_64
+ nettle_sha256_init
+ nettle_sha256_update
+ nettle_sha256_digest
+ nettle_sha256_compress
+ nettle_sha224_init
+ nettle_sha224_digest
+ nettle_sha1
+ _nettle_sha1_compress_x86_64
+ nettle_sha1_init
+ nettle_sha1_update
+ nettle_sha1_digest
+ nettle_salsa20_256_set_key
+ nettle_salsa20_128_set_key
+ nettle_salsa20_set_nonce
+ nettle_salsa20_set_key
+ nettle_salsa20r12_crypt
+ nettle_salsa20_crypt
+ _nettle_salsa20_crypt
+ _nettle_salsa20_core
+ nettle_ripemd160
+ _nettle_ripemd160_compress
+ nettle_ripemd160_init
+ nettle_ripemd160_update
+ nettle_ripemd160_digest
+ nettle_realloc
+ nettle_xrealloc
+ _nettle_poly1305_update
+ _nettle_poly1305_set_key
+ _nettle_poly1305_block
+ _nettle_poly1305_digest
+ nettle_poly1305_aes_set_key
+ nettle_poly1305_aes_set_nonce
+ nettle_poly1305_aes_update
+ nettle_poly1305_aes_digest
+ nettle_pbkdf2_hmac_sha512
+ nettle_pbkdf2_hmac_sha384
+ nettle_pbkdf2_hmac_sha256
+ nettle_pbkdf2_hmac_sha1
+ nettle_pbkdf2_hmac_gosthash94cp
+ nettle_pbkdf2
+ nettle_ocb_aes128_set_encrypt_key
+ nettle_ocb_aes128_set_decrypt_key
+ nettle_ocb_aes128_set_nonce
+ nettle_ocb_aes128_update
+ nettle_ocb_aes128_encrypt
+ nettle_ocb_aes128_decrypt
+ nettle_ocb_aes128_digest
+ nettle_ocb_aes128_encrypt_message
+ nettle_ocb_aes128_decrypt_message
+ nettle_ocb_set_key
+ nettle_ocb_set_nonce
+ nettle_ocb_update
+ nettle_ocb_encrypt
+ nettle_ocb_decrypt
+ nettle_ocb_digest
+ nettle_ocb_encrypt_message
+ nettle_ocb_decrypt_message
+ _nettle_macs
+ nettle_get_macs
+ _nettle_hashes
+ nettle_get_hashes
+ _nettle_ciphers
+ nettle_get_ciphers
+ _nettle_armors
+ nettle_get_armors
+ _nettle_aeads
+ nettle_get_aeads
+ nettle_lookup_hash
+ nettle_memxor3
+ _nettle_memxor_x86_64
+ nettle_memeql_sec
+ nettle_md5
+ nettle_MD5Init
+ nettle_MD5Update
+ nettle_MD5Final
+ nettle_md5_compress
+ nettle_md5_init
+ nettle_md5_update
+ nettle_md5_digest
+ nettle_md4
+ nettle_md4_init
+ nettle_md4_update
+ nettle_md4_digest
+ nettle_md2
+ nettle_md2_init
+ nettle_md2_update
+ nettle_md2_digest
+ nettle_hkdf_extract
+ nettle_hkdf_expand
+ nettle_knuth_lfib_init
+ nettle_knuth_lfib_get
+ nettle_knuth_lfib_get_array
+ nettle_knuth_lfib_random
+ nettle_hmac_sm3
+ nettle_hmac_streebog256
+ nettle_hmac_streebog512
+ nettle_hmac_sha512
+ nettle_hmac_sha384
+ nettle_hmac_sha256
+ nettle_hmac_sha224
+ nettle_hmac_sha1
+ nettle_hmac_ripemd160
+ nettle_hmac_md5
+ nettle_hmac_sm3_set_key
+ nettle_hmac_sm3_update
+ nettle_hmac_sm3_digest
+ nettle_hmac_streebog512_set_key
+ nettle_hmac_streebog512_update
+ nettle_hmac_streebog512_digest
+ nettle_hmac_streebog256_set_key
+ nettle_hmac_streebog256_digest
+ nettle_hmac_sha512_set_key
+ nettle_hmac_sha512_update
+ nettle_hmac_sha512_digest
+ nettle_hmac_sha384_set_key
+ nettle_hmac_sha384_digest
+ nettle_hmac_sha256_set_key
+ nettle_hmac_sha256_update
+ nettle_hmac_sha256_digest
+ nettle_hmac_sha224_set_key
+ nettle_hmac_sha224_digest
+ nettle_hmac_sha1_set_key
+ nettle_hmac_sha1_update
+ nettle_hmac_sha1_digest
+ nettle_hmac_ripemd160_set_key
+ nettle_hmac_ripemd160_update
+ nettle_hmac_ripemd160_digest
+ nettle_hmac_md5_set_key
+ nettle_hmac_md5_update
+ nettle_hmac_md5_digest
+ nettle_hmac_gosthash94_set_key
+ nettle_hmac_gosthash94_update
+ nettle_hmac_gosthash94_digest
+ nettle_hmac_gosthash94cp_set_key
+ nettle_hmac_gosthash94cp_update
+ nettle_hmac_gosthash94cp_digest
+ nettle_hmac_set_key
+ nettle_hmac_update
+ nettle_hmac_digest
+ nettle_gosthash94
+ nettle_gosthash94cp
+ nettle_gosthash94_init
+ nettle_gosthash94_update
+ nettle_gosthash94_digest
+ nettle_gosthash94cp_update
+ nettle_gosthash94cp_digest
+ _nettle_gost28147_param_test_3411
+ _nettle_gost28147_param_CryptoPro_3411
+ _nettle_gost28147_encrypt_block
+ nettle_cmac_des3
+ nettle_cmac_aes256
+ nettle_cmac_aes128
+ nettle_cmac_des3_set_key
+ nettle_cmac_des3_update
+ nettle_cmac_des3_digest
+ nettle_cmac_aes256_set_key
+ nettle_cmac_aes256_update
+ nettle_cmac_aes256_digest
+ nettle_cmac_aes128_set_key
+ nettle_cmac_aes128_update
+ nettle_cmac_aes128_digest
+ nettle_cmac64_set_key
+ nettle_cmac64_init
+ nettle_cmac64_update
+ nettle_cmac64_digest
+ nettle_cmac128_set_key
+ nettle_cmac128_init
+ nettle_cmac128_update
+ nettle_cmac128_digest
+ nettle_gcm_sm4
+ nettle_gcm_sm4_set_key
+ nettle_gcm_sm4_set_iv
+ nettle_gcm_sm4_update
+ nettle_gcm_sm4_encrypt
+ nettle_gcm_sm4_decrypt
+ nettle_gcm_sm4_digest
+ nettle_gcm_camellia256
+ nettle_gcm_camellia256_set_key
+ nettle_gcm_camellia256_set_iv
+ nettle_gcm_camellia256_update
+ nettle_gcm_camellia256_encrypt
+ nettle_gcm_camellia256_decrypt
+ nettle_gcm_camellia256_digest
+ nettle_gcm_camellia128
+ nettle_gcm_camellia128_set_key
+ nettle_gcm_camellia128_set_iv
+ nettle_gcm_camellia128_update
+ nettle_gcm_camellia128_encrypt
+ nettle_gcm_camellia128_decrypt
+ nettle_gcm_camellia128_digest
+ nettle_gcm_aes256
+ nettle_gcm_aes256_set_key
+ nettle_gcm_aes256_update
+ nettle_gcm_aes256_set_iv
+ nettle_gcm_aes256_encrypt
+ nettle_gcm_aes256_decrypt
+ nettle_gcm_aes256_digest
+ nettle_gcm_aes192
+ nettle_gcm_aes192_set_key
+ nettle_gcm_aes192_update
+ nettle_gcm_aes192_set_iv
+ nettle_gcm_aes192_encrypt
+ nettle_gcm_aes192_decrypt
+ nettle_gcm_aes192_digest
+ nettle_gcm_aes128
+ nettle_gcm_aes128_set_key
+ nettle_gcm_aes128_update
+ nettle_gcm_aes128_set_iv
+ nettle_gcm_aes128_encrypt
+ nettle_gcm_aes128_decrypt
+ nettle_gcm_aes128_digest
+ nettle_gcm_aes_set_key
+ nettle_gcm_aes_set_iv
+ nettle_gcm_aes_update
+ nettle_gcm_aes_encrypt
+ nettle_gcm_aes_decrypt
+ nettle_gcm_aes_digest
+ nettle_gcm_set_key
+ nettle_gcm_set_iv
+ nettle_gcm_update
+ nettle_gcm_encrypt
+ nettle_gcm_decrypt
+ nettle_gcm_digest
+ _nettle_siv_ghash_update
+ _nettle_siv_ghash_set_key
+ _nettle_ghash_update_table
+ _nettle_ghash_set_key_c
+ nettle_eax_aes128
+ nettle_eax_aes128_set_key
+ nettle_eax_aes128_set_nonce
+ nettle_eax_aes128_update
+ nettle_eax_aes128_encrypt
+ nettle_eax_aes128_decrypt
+ nettle_eax_aes128_digest
+ nettle_eax_set_key
+ nettle_eax_set_nonce
+ nettle_eax_update
+ nettle_eax_encrypt
+ nettle_eax_decrypt
+ nettle_eax_digest
+ nettle_des3_set_key
+ nettle_des3_encrypt
+ nettle_des3_decrypt
+ nettle_des_set_key
+ nettle_des_encrypt
+ nettle_des_decrypt
+ nettle_des_check_parity
+ nettle_des_fix_parity
+ _nettle_ctr_crypt16
+ nettle_ctr_crypt
+ nettle_chacha_set_nonce
+ nettle_chacha_set_nonce96
+ nettle_chacha_set_counter
+ nettle_chacha_set_counter32
+ nettle_chacha_set_key
+ nettle_chacha_poly1305
+ nettle_chacha_poly1305_set_key
+ nettle_chacha_poly1305_set_nonce
+ nettle_chacha_poly1305_update
+ nettle_chacha_poly1305_encrypt
+ nettle_chacha_poly1305_decrypt
+ nettle_chacha_poly1305_digest
+ _nettle_chacha_core
+ nettle_chacha_crypt
+ nettle_chacha_crypt32
+ nettle_cnd_memcpy
+ nettle_siv_gcm_aes256_encrypt_message
+ nettle_siv_gcm_aes256_decrypt_message
+ nettle_siv_gcm_aes128_encrypt_message
+ nettle_siv_gcm_aes128_decrypt_message
+ nettle_siv_gcm_encrypt_message
+ nettle_siv_gcm_decrypt_message
+ nettle_siv_cmac_aes256_set_key
+ nettle_siv_cmac_aes256_encrypt_message
+ nettle_siv_cmac_aes256_decrypt_message
+ nettle_siv_cmac_aes128_set_key
+ nettle_siv_cmac_aes128_encrypt_message
+ nettle_siv_cmac_aes128_decrypt_message
+ nettle_siv_cmac_set_key
+ nettle_siv_cmac_encrypt_message
+ nettle_siv_cmac_decrypt_message
+ nettle_cfb_encrypt
+ nettle_cfb_decrypt
+ nettle_cfb8_encrypt
+ nettle_cfb8_decrypt
+ nettle_ccm_aes256_set_key
+ nettle_ccm_aes256_set_nonce
+ nettle_ccm_aes256_update
+ nettle_ccm_aes256_encrypt
+ nettle_ccm_aes256_decrypt
+ nettle_ccm_aes256_digest
+ nettle_ccm_aes256_encrypt_message
+ nettle_ccm_aes256_decrypt_message
+ nettle_ccm_aes192_set_key
+ nettle_ccm_aes192_set_nonce
+ nettle_ccm_aes192_update
+ nettle_ccm_aes192_encrypt
+ nettle_ccm_aes192_decrypt
+ nettle_ccm_aes192_digest
+ nettle_ccm_aes192_encrypt_message
+ nettle_ccm_aes192_decrypt_message
+ nettle_ccm_aes128_set_key
+ nettle_ccm_aes128_set_nonce
+ nettle_ccm_aes128_update
+ nettle_ccm_aes128_encrypt
+ nettle_ccm_aes128_decrypt
+ nettle_ccm_aes128_digest
+ nettle_ccm_aes128_encrypt_message
+ nettle_ccm_aes128_decrypt_message
+ nettle_ccm_set_nonce
+ nettle_ccm_update
+ nettle_ccm_encrypt
+ nettle_ccm_decrypt
+ nettle_ccm_digest
+ nettle_ccm_encrypt_message
+ nettle_ccm_decrypt_message
+ _nettle_cbc_aes256_encrypt_c
+ _nettle_cbc_aes192_encrypt_c
+ _nettle_cbc_aes128_encrypt_c
+ nettle_cbc_encrypt
+ nettle_cbc_decrypt
+ nettle_cast128
+ nettle_cast5_set_key
+ nettle_cast128_set_key
+ nettle_cast128_encrypt
+ nettle_cast128_decrypt
+ nettle_camellia256
+ nettle_camellia256_set_decrypt_key
+ nettle_camellia256_invert_key
+ nettle_camellia192_set_decrypt_key
+ nettle_camellia256_crypt
+ nettle_camellia256_set_encrypt_key
+ nettle_camellia192_set_encrypt_key
+ nettle_camellia192
+ nettle_camellia128
+ nettle_camellia_set_decrypt_key
+ nettle_camellia128_invert_key
+ nettle_camellia128_crypt
+ nettle_camellia128_set_encrypt_key
+ _nettle_camellia_invert_key
+ _nettle_camellia_absorb
+ _nettle_camellia_table
+ _nettle_camellia_crypt
+ nettle_buffer_init
+ nettle_buffer_init_realloc
+ nettle_buffer_init_size
+ nettle_buffer_clear
+ nettle_buffer_reset
+ nettle_buffer_grow
+ nettle_buffer_write
+ nettle_buffer_space
+ nettle_buffer_copy
+ nettle_base64url
+ nettle_base64url_decode_init
+ nettle_base64url_encode_init
+ nettle_base64
+ nettle_base64_decode_init
+ nettle_base64_decode_single
+ nettle_base64_decode_update
+ nettle_base64_decode_final
+ nettle_base64_encode_init
+ nettle_base64_encode_single
+ nettle_base64_encode_update
+ nettle_base64_encode_final
+ nettle_base64_encode_raw
+ nettle_base64_encode_group
+ nettle_base16
+ nettle_base16_decode_init
+ nettle_base16_decode_single
+ nettle_base16_decode_update
+ nettle_base16_decode_final
+ nettle_base16_encode_single
+ nettle_base16_encode_update
+ nettle_balloon_sha512
+ nettle_balloon_sha384
+ nettle_balloon_sha256
+ nettle_balloon_sha1
+ nettle_balloon
+ nettle_balloon_itch
+ nettle_blowfish_bcrypt_hash
+ nettle_blowfish_bcrypt_verify
+ _nettle_blowfish_initial_ctx
+ nettle_blowfish_set_key
+ nettle_blowfish128_set_key
+ nettle_blowfish_encrypt
+ nettle_blowfish_decrypt
+ _nettle_blowfish_encround
+ nettle_arctwo40
+ nettle_arctwo64
+ nettle_arctwo128
+ nettle_arctwo_gutmann128
+ nettle_arctwo_set_key_ekb
+ nettle_arctwo_set_key
+ nettle_arctwo40_set_key
+ nettle_arctwo64_set_key
+ nettle_arctwo128_set_key
+ nettle_arctwo_set_key_gutmann
+ nettle_arctwo128_set_key_gutmann
+ nettle_arctwo_encrypt
+ nettle_arctwo_decrypt
+ nettle_arcfour_set_key
+ nettle_arcfour128_set_key
+ nettle_arcfour_crypt
+ nettle_nist_keywrap16
+ nettle_nist_keyunwrap16
+ nettle_aes128_keywrap
+ nettle_aes192_keywrap
+ nettle_aes256_keywrap
+ nettle_aes128_keyunwrap
+ nettle_aes192_keyunwrap
+ nettle_aes256_keyunwrap
+ nettle_aes256
+ nettle_aes256_set_decrypt_key
+ nettle_aes256_invert_key
+ nettle_aes256_set_encrypt_key
+ nettle_aes192
+ nettle_aes192_set_decrypt_key
+ nettle_aes192_invert_key
+ nettle_aes192_set_encrypt_key
+ nettle_aes128
+ nettle_aes128_set_decrypt_key
+ nettle_aes128_invert_key
+ nettle_aes128_set_encrypt_key
+ nettle_aes_set_decrypt_key
+ nettle_aes_invert_key
+ nettle_aes_set_encrypt_key
+ _nettle_aes_set_key
+ _nettle_aes_invert
+ _nettle_aes256_encrypt_c
+ _nettle_aes192_encrypt_c
+ _nettle_aes128_encrypt_c
+ _nettle_aes_encrypt_table
+ nettle_aes_encrypt
+ _nettle_aes_encrypt
+ _nettle_aes256_decrypt_c
+ _nettle_aes192_decrypt_c
+ _nettle_aes128_decrypt_c
+ _nettle_aes_decrypt_table
+ nettle_aes_decrypt
+ _nettle_aes_decrypt
+ nettle_sha3_256_shake_output
+ nettle_sha3_128_init
+ nettle_sha3_128_update
+ nettle_sha3_128_shake_output
diff --git a/vcpkg/ports/nettle/nettle-x86.def b/vcpkg/ports/nettle/nettle-x86.def
new file mode 100644
index 0000000..edfd501
--- /dev/null
+++ b/vcpkg/ports/nettle/nettle-x86.def
@@ -0,0 +1,567 @@
+EXPORTS
+ nettle_xts_aes256_set_encrypt_key
+ nettle_xts_aes256_set_decrypt_key
+ nettle_xts_aes256_encrypt_message
+ nettle_xts_aes256_decrypt_message
+ nettle_xts_aes128_set_encrypt_key
+ nettle_xts_aes128_set_decrypt_key
+ nettle_xts_aes128_encrypt_message
+ nettle_xts_aes128_decrypt_message
+ nettle_xts_encrypt_message
+ nettle_xts_decrypt_message
+ nettle_yarrow_key_event_init
+ nettle_yarrow_key_event_estimate
+ nettle_yarrow256_init
+ nettle_yarrow256_seed
+ nettle_yarrow256_update
+ nettle_yarrow256_random
+ nettle_yarrow256_is_seeded
+ nettle_yarrow256_needed_sources
+ nettle_yarrow256_fast_reseed
+ nettle_yarrow256_slow_reseed
+ _nettle_write_le64
+ _nettle_write_le32
+ _nettle_write_be32
+ nettle_version_major
+ nettle_version_minor
+ nettle_umac128_set_key
+ nettle_umac128_set_nonce
+ nettle_umac128_update
+ nettle_umac128_digest
+ nettle_umac96_set_key
+ nettle_umac96_set_nonce
+ nettle_umac96_update
+ nettle_umac96_digest
+ nettle_umac64_set_key
+ nettle_umac64_set_nonce
+ nettle_umac64_update
+ nettle_umac64_digest
+ nettle_umac32_set_key
+ nettle_umac32_set_nonce
+ nettle_umac32_update
+ nettle_umac32_digest
+ _nettle_umac_set_key
+ _nettle_umac_poly128
+ _nettle_umac_poly64
+ _nettle_umac_l3_init
+ _nettle_umac_l3
+ _nettle_umac_l2_init
+ _nettle_umac_l2
+ _nettle_umac_l2_final
+ _nettle_umac_nh_n
+ _nettle_umac_nh
+ nettle_sm4
+ nettle_sm4_set_encrypt_key
+ nettle_sm4_set_decrypt_key
+ nettle_sm4_crypt
+ nettle_twofish128
+ nettle_twofish192
+ nettle_twofish256
+ nettle_twofish_set_key
+ nettle_twofish128_set_key
+ nettle_twofish192_set_key
+ nettle_twofish256_set_key
+ nettle_twofish_encrypt
+ nettle_twofish_decrypt
+ nettle_streebog256
+ nettle_streebog512
+ nettle_streebog512_init
+ nettle_streebog512_update
+ nettle_streebog512_digest
+ nettle_streebog256_init
+ nettle_streebog256_digest
+ nettle_serpent128
+ nettle_serpent192
+ nettle_serpent256
+ nettle_serpent_decrypt
+ nettle_serpent_encrypt
+ nettle_serpent_set_key
+ nettle_serpent128_set_key
+ nettle_serpent192_set_key
+ nettle_serpent256_set_key
+ nettle_sm3
+ nettle_sm3_init
+ nettle_sm3_update
+ nettle_sm3_digest
+ nettle_sha3_256_shake
+ nettle_sha3_512
+ nettle_sha3_512_init
+ nettle_sha3_512_update
+ nettle_sha3_512_digest
+ nettle_sha3_384
+ nettle_sha3_384_init
+ nettle_sha3_384_update
+ nettle_sha3_384_digest
+ nettle_sha3_256
+ nettle_sha3_256_init
+ nettle_sha3_256_update
+ nettle_sha3_256_digest
+ nettle_sha3_224
+ nettle_sha3_224_init
+ nettle_sha3_224_update
+ nettle_sha3_224_digest
+ nettle_sha3_permute
+ _nettle_sha3_update
+ _nettle_sha3_pad
+ nettle_sha512_256
+ nettle_sha512_224
+ nettle_sha512
+ nettle_sha384
+ _nettle_sha512_compress
+ nettle_sha512_init
+ nettle_sha512_update
+ nettle_sha512_digest
+ nettle_sha512_compress
+ nettle_sha384_init
+ nettle_sha384_digest
+ nettle_sha512_224_init
+ nettle_sha512_224_digest
+ nettle_sha512_256_init
+ nettle_sha512_256_digest
+ nettle_sha256
+ nettle_sha224
+ _nettle_sha256_compress_n
+ nettle_sha256_init
+ nettle_sha256_update
+ nettle_sha256_digest
+ nettle_sha256_compress
+ nettle_sha224_init
+ nettle_sha224_digest
+ nettle_sha1
+ nettle_sha1_compress
+ nettle_sha1_init
+ nettle_sha1_update
+ nettle_sha1_digest
+ nettle_salsa20_256_set_key
+ nettle_salsa20_128_set_key
+ nettle_salsa20_set_nonce
+ nettle_salsa20_set_key
+ nettle_salsa20r12_crypt
+ nettle_salsa20_crypt
+ _nettle_salsa20_crypt
+ _nettle_salsa20_core
+ nettle_ripemd160
+ _nettle_ripemd160_compress
+ nettle_ripemd160_init
+ nettle_ripemd160_update
+ nettle_ripemd160_digest
+ nettle_realloc
+ nettle_xrealloc
+ _nettle_poly1305_update
+ _nettle_poly1305_set_key
+ _nettle_poly1305_digest
+ _nettle_poly1305_block
+ nettle_poly1305_aes_set_key
+ nettle_poly1305_aes_set_nonce
+ nettle_poly1305_aes_update
+ nettle_poly1305_aes_digest
+ nettle_pbkdf2_hmac_sha512
+ nettle_pbkdf2_hmac_sha384
+ nettle_pbkdf2_hmac_sha256
+ nettle_pbkdf2_hmac_sha1
+ nettle_pbkdf2_hmac_gosthash94cp
+ nettle_pbkdf2
+ nettle_ocb_aes128_set_encrypt_key
+ nettle_ocb_aes128_set_decrypt_key
+ nettle_ocb_aes128_set_nonce
+ nettle_ocb_aes128_update
+ nettle_ocb_aes128_encrypt
+ nettle_ocb_aes128_decrypt
+ nettle_ocb_aes128_digest
+ nettle_ocb_aes128_encrypt_message
+ nettle_ocb_aes128_decrypt_message
+ nettle_ocb_set_key
+ nettle_ocb_set_nonce
+ nettle_ocb_update
+ nettle_ocb_encrypt
+ nettle_ocb_decrypt
+ nettle_ocb_digest
+ nettle_ocb_encrypt_message
+ nettle_ocb_decrypt_message
+ _nettle_macs
+ nettle_get_macs
+ _nettle_hashes
+ nettle_get_hashes
+ _nettle_ciphers
+ nettle_get_ciphers
+ _nettle_armors
+ nettle_get_armors
+ _nettle_aeads
+ nettle_get_aeads
+ nettle_lookup_hash
+ nettle_memxor3
+ nettle_memxor
+ nettle_memeql_sec
+ nettle_md5
+ nettle_MD5Init
+ nettle_MD5Update
+ nettle_MD5Final
+ nettle_md5_compress
+ nettle_md5_init
+ nettle_md5_update
+ nettle_md5_digest
+ nettle_md4
+ nettle_md4_init
+ nettle_md4_update
+ nettle_md4_digest
+ nettle_md2
+ nettle_md2_init
+ nettle_md2_update
+ nettle_md2_digest
+ nettle_hkdf_extract
+ nettle_hkdf_expand
+ nettle_knuth_lfib_init
+ nettle_knuth_lfib_get
+ nettle_knuth_lfib_get_array
+ nettle_knuth_lfib_random
+ nettle_hmac_sm3
+ nettle_hmac_streebog256
+ nettle_hmac_streebog512
+ nettle_hmac_sha512
+ nettle_hmac_sha384
+ nettle_hmac_sha256
+ nettle_hmac_sha224
+ nettle_hmac_sha1
+ nettle_hmac_ripemd160
+ nettle_hmac_md5
+ nettle_hmac_sm3_set_key
+ nettle_hmac_sm3_update
+ nettle_hmac_sm3_digest
+ nettle_hmac_streebog512_set_key
+ nettle_hmac_streebog512_update
+ nettle_hmac_streebog512_digest
+ nettle_hmac_streebog256_set_key
+ nettle_hmac_streebog256_digest
+ nettle_hmac_sha512_set_key
+ nettle_hmac_sha512_update
+ nettle_hmac_sha512_digest
+ nettle_hmac_sha384_set_key
+ nettle_hmac_sha384_digest
+ nettle_hmac_sha256_set_key
+ nettle_hmac_sha256_update
+ nettle_hmac_sha256_digest
+ nettle_hmac_sha224_set_key
+ nettle_hmac_sha224_digest
+ nettle_hmac_sha1_set_key
+ nettle_hmac_sha1_update
+ nettle_hmac_sha1_digest
+ nettle_hmac_ripemd160_set_key
+ nettle_hmac_ripemd160_update
+ nettle_hmac_ripemd160_digest
+ nettle_hmac_md5_set_key
+ nettle_hmac_md5_update
+ nettle_hmac_md5_digest
+ nettle_hmac_gosthash94_set_key
+ nettle_hmac_gosthash94_update
+ nettle_hmac_gosthash94_digest
+ nettle_hmac_gosthash94cp_set_key
+ nettle_hmac_gosthash94cp_update
+ nettle_hmac_gosthash94cp_digest
+ nettle_hmac_set_key
+ nettle_hmac_update
+ nettle_hmac_digest
+ nettle_gosthash94
+ nettle_gosthash94cp
+ nettle_gosthash94_init
+ nettle_gosthash94_update
+ nettle_gosthash94_digest
+ nettle_gosthash94cp_update
+ nettle_gosthash94cp_digest
+ _nettle_gost28147_param_test_3411
+ _nettle_gost28147_param_CryptoPro_3411
+ _nettle_gost28147_encrypt_block
+ nettle_cmac_des3
+ nettle_cmac_aes256
+ nettle_cmac_aes128
+ nettle_cmac_des3_set_key
+ nettle_cmac_des3_update
+ nettle_cmac_des3_digest
+ nettle_cmac_aes256_set_key
+ nettle_cmac_aes256_update
+ nettle_cmac_aes256_digest
+ nettle_cmac_aes128_set_key
+ nettle_cmac_aes128_update
+ nettle_cmac_aes128_digest
+ nettle_cmac64_set_key
+ nettle_cmac64_init
+ nettle_cmac64_update
+ nettle_cmac64_digest
+ nettle_cmac128_set_key
+ nettle_cmac128_init
+ nettle_cmac128_update
+ nettle_cmac128_digest
+ nettle_gcm_sm4
+ nettle_gcm_sm4_set_key
+ nettle_gcm_sm4_set_iv
+ nettle_gcm_sm4_update
+ nettle_gcm_sm4_encrypt
+ nettle_gcm_sm4_decrypt
+ nettle_gcm_sm4_digest
+ nettle_gcm_camellia256
+ nettle_gcm_camellia256_set_key
+ nettle_gcm_camellia256_set_iv
+ nettle_gcm_camellia256_update
+ nettle_gcm_camellia256_encrypt
+ nettle_gcm_camellia256_decrypt
+ nettle_gcm_camellia256_digest
+ nettle_gcm_camellia128
+ nettle_gcm_camellia128_set_key
+ nettle_gcm_camellia128_set_iv
+ nettle_gcm_camellia128_update
+ nettle_gcm_camellia128_encrypt
+ nettle_gcm_camellia128_decrypt
+ nettle_gcm_camellia128_digest
+ nettle_gcm_aes256
+ nettle_gcm_aes256_set_key
+ nettle_gcm_aes256_update
+ nettle_gcm_aes256_set_iv
+ nettle_gcm_aes256_encrypt
+ nettle_gcm_aes256_decrypt
+ nettle_gcm_aes256_digest
+ nettle_gcm_aes192
+ nettle_gcm_aes192_set_key
+ nettle_gcm_aes192_update
+ nettle_gcm_aes192_set_iv
+ nettle_gcm_aes192_encrypt
+ nettle_gcm_aes192_decrypt
+ nettle_gcm_aes192_digest
+ nettle_gcm_aes128
+ nettle_gcm_aes128_set_key
+ nettle_gcm_aes128_update
+ nettle_gcm_aes128_set_iv
+ nettle_gcm_aes128_encrypt
+ nettle_gcm_aes128_decrypt
+ nettle_gcm_aes128_digest
+ nettle_gcm_aes_set_key
+ nettle_gcm_aes_set_iv
+ nettle_gcm_aes_update
+ nettle_gcm_aes_encrypt
+ nettle_gcm_aes_decrypt
+ nettle_gcm_aes_digest
+ nettle_gcm_set_key
+ nettle_gcm_set_iv
+ nettle_gcm_update
+ nettle_gcm_encrypt
+ nettle_gcm_decrypt
+ nettle_gcm_digest
+ _nettle_siv_ghash_update
+ _nettle_siv_ghash_set_key
+ _nettle_ghash_update
+ _nettle_ghash_set_key
+ nettle_eax_aes128
+ nettle_eax_aes128_set_key
+ nettle_eax_aes128_set_nonce
+ nettle_eax_aes128_update
+ nettle_eax_aes128_encrypt
+ nettle_eax_aes128_decrypt
+ nettle_eax_aes128_digest
+ nettle_eax_set_key
+ nettle_eax_set_nonce
+ nettle_eax_update
+ nettle_eax_encrypt
+ nettle_eax_decrypt
+ nettle_eax_digest
+ nettle_des3_set_key
+ nettle_des3_encrypt
+ nettle_des3_decrypt
+ nettle_des_set_key
+ nettle_des_encrypt
+ nettle_des_decrypt
+ nettle_des_check_parity
+ nettle_des_fix_parity
+ _nettle_ctr_crypt16
+ nettle_ctr_crypt
+ nettle_chacha_set_nonce
+ nettle_chacha_set_nonce96
+ nettle_chacha_set_counter
+ nettle_chacha_set_counter32
+ nettle_chacha_set_key
+ nettle_chacha_poly1305
+ nettle_chacha_poly1305_set_key
+ nettle_chacha_poly1305_set_nonce
+ nettle_chacha_poly1305_update
+ nettle_chacha_poly1305_encrypt
+ nettle_chacha_poly1305_decrypt
+ nettle_chacha_poly1305_digest
+ _nettle_chacha_core
+ nettle_chacha_crypt
+ nettle_chacha_crypt32
+ nettle_cnd_memcpy
+ nettle_siv_gcm_aes256_encrypt_message
+ nettle_siv_gcm_aes256_decrypt_message
+ nettle_siv_gcm_aes128_encrypt_message
+ nettle_siv_gcm_aes128_decrypt_message
+ nettle_siv_gcm_encrypt_message
+ nettle_siv_gcm_decrypt_message
+ nettle_siv_cmac_aes256_set_key
+ nettle_siv_cmac_aes256_encrypt_message
+ nettle_siv_cmac_aes256_decrypt_message
+ nettle_siv_cmac_aes128_set_key
+ nettle_siv_cmac_aes128_encrypt_message
+ nettle_siv_cmac_aes128_decrypt_message
+ nettle_siv_cmac_set_key
+ nettle_siv_cmac_encrypt_message
+ nettle_siv_cmac_decrypt_message
+ nettle_cfb_encrypt
+ nettle_cfb_decrypt
+ nettle_cfb8_encrypt
+ nettle_cfb8_decrypt
+ nettle_ccm_aes256_set_key
+ nettle_ccm_aes256_set_nonce
+ nettle_ccm_aes256_update
+ nettle_ccm_aes256_encrypt
+ nettle_ccm_aes256_decrypt
+ nettle_ccm_aes256_digest
+ nettle_ccm_aes256_encrypt_message
+ nettle_ccm_aes256_decrypt_message
+ nettle_ccm_aes192_set_key
+ nettle_ccm_aes192_set_nonce
+ nettle_ccm_aes192_update
+ nettle_ccm_aes192_encrypt
+ nettle_ccm_aes192_decrypt
+ nettle_ccm_aes192_digest
+ nettle_ccm_aes192_encrypt_message
+ nettle_ccm_aes192_decrypt_message
+ nettle_ccm_aes128_set_key
+ nettle_ccm_aes128_set_nonce
+ nettle_ccm_aes128_update
+ nettle_ccm_aes128_encrypt
+ nettle_ccm_aes128_decrypt
+ nettle_ccm_aes128_digest
+ nettle_ccm_aes128_encrypt_message
+ nettle_ccm_aes128_decrypt_message
+ nettle_ccm_set_nonce
+ nettle_ccm_update
+ nettle_ccm_encrypt
+ nettle_ccm_decrypt
+ nettle_ccm_digest
+ nettle_ccm_encrypt_message
+ nettle_ccm_decrypt_message
+ nettle_cbc_aes256_encrypt
+ nettle_cbc_aes192_encrypt
+ nettle_cbc_aes128_encrypt
+ nettle_cbc_encrypt
+ nettle_cbc_decrypt
+ nettle_cast128
+ nettle_cast5_set_key
+ nettle_cast128_set_key
+ nettle_cast128_encrypt
+ nettle_cast128_decrypt
+ nettle_camellia256
+ nettle_camellia256_set_decrypt_key
+ nettle_camellia256_invert_key
+ nettle_camellia192_set_decrypt_key
+ nettle_camellia256_crypt
+ nettle_camellia256_set_encrypt_key
+ nettle_camellia192_set_encrypt_key
+ nettle_camellia192
+ nettle_camellia128
+ nettle_camellia_set_decrypt_key
+ nettle_camellia128_invert_key
+ nettle_camellia128_crypt
+ nettle_camellia128_set_encrypt_key
+ _nettle_camellia_invert_key
+ _nettle_camellia_absorb
+ _nettle_camellia_table
+ _nettle_camellia_crypt
+ nettle_buffer_init
+ nettle_buffer_init_realloc
+ nettle_buffer_init_size
+ nettle_buffer_clear
+ nettle_buffer_reset
+ nettle_buffer_grow
+ nettle_buffer_write
+ nettle_buffer_space
+ nettle_buffer_copy
+ nettle_base64url
+ nettle_base64url_decode_init
+ nettle_base64url_encode_init
+ nettle_base64
+ nettle_base64_decode_init
+ nettle_base64_decode_single
+ nettle_base64_decode_update
+ nettle_base64_decode_final
+ nettle_base64_encode_init
+ nettle_base64_encode_single
+ nettle_base64_encode_update
+ nettle_base64_encode_final
+ nettle_base64_encode_raw
+ nettle_base64_encode_group
+ nettle_base16
+ nettle_base16_decode_init
+ nettle_base16_decode_single
+ nettle_base16_decode_update
+ nettle_base16_decode_final
+ nettle_base16_encode_single
+ nettle_base16_encode_update
+ nettle_balloon_sha512
+ nettle_balloon_sha384
+ nettle_balloon_sha256
+ nettle_balloon_sha1
+ nettle_balloon
+ nettle_balloon_itch
+ nettle_blowfish_bcrypt_hash
+ nettle_blowfish_bcrypt_verify
+ _nettle_blowfish_initial_ctx
+ nettle_blowfish_set_key
+ nettle_blowfish128_set_key
+ nettle_blowfish_encrypt
+ nettle_blowfish_decrypt
+ _nettle_blowfish_encround
+ nettle_arctwo40
+ nettle_arctwo64
+ nettle_arctwo128
+ nettle_arctwo_gutmann128
+ nettle_arctwo_set_key_ekb
+ nettle_arctwo_set_key
+ nettle_arctwo40_set_key
+ nettle_arctwo64_set_key
+ nettle_arctwo128_set_key
+ nettle_arctwo_set_key_gutmann
+ nettle_arctwo128_set_key_gutmann
+ nettle_arctwo_encrypt
+ nettle_arctwo_decrypt
+ nettle_arcfour_set_key
+ nettle_arcfour128_set_key
+ nettle_arcfour_crypt
+ nettle_nist_keywrap16
+ nettle_nist_keyunwrap16
+ nettle_aes128_keywrap
+ nettle_aes192_keywrap
+ nettle_aes256_keywrap
+ nettle_aes128_keyunwrap
+ nettle_aes192_keyunwrap
+ nettle_aes256_keyunwrap
+ nettle_aes256
+ nettle_aes256_set_decrypt_key
+ nettle_aes256_invert_key
+ nettle_aes256_set_encrypt_key
+ nettle_aes192
+ nettle_aes192_set_decrypt_key
+ nettle_aes192_invert_key
+ nettle_aes192_set_encrypt_key
+ nettle_aes128
+ nettle_aes128_set_decrypt_key
+ nettle_aes128_invert_key
+ nettle_aes128_set_encrypt_key
+ nettle_aes_set_decrypt_key
+ nettle_aes_invert_key
+ nettle_aes_set_encrypt_key
+ _nettle_aes_set_key
+ _nettle_aes_invert
+ nettle_aes256_encrypt
+ nettle_aes192_encrypt
+ nettle_aes128_encrypt
+ _nettle_aes_encrypt_table
+ nettle_aes_encrypt
+ _nettle_aes_encrypt
+ nettle_aes256_decrypt
+ nettle_aes192_decrypt
+ nettle_aes128_decrypt
+ _nettle_aes_decrypt_table
+ nettle_aes_decrypt
+ _nettle_aes_decrypt
+ nettle_sha3_256_shake_output
+ nettle_sha3_128_init
+ nettle_sha3_128_update
+ nettle_sha3_128_shake_output
diff --git a/vcpkg/ports/nettle/portfile.cmake b/vcpkg/ports/nettle/portfile.cmake
new file mode 100644
index 0000000..26ff533
--- /dev/null
+++ b/vcpkg/ports/nettle/portfile.cmake
@@ -0,0 +1,117 @@
+vcpkg_from_gitlab(
+ GITLAB_URL https://git.lysator.liu.se/
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO nettle/nettle
+ REF nettle_3.10_release_20240616
+ SHA512 8767e4f0c34ce76ead5d66f06f97e6b184d439fa94f848ee440196fafde3da2ea7cfc54f9bd8f9ab6a99929b0d14b3d5a28857e05d954551e94b619598c17659
+ HEAD_REF master
+ PATCHES
+ subdirs.patch
+ fix-libdir.patch
+ compile.patch
+ host-tools.patch
+ ccas.patch
+ msvc-support.patch
+)
+
+vcpkg_cmake_get_vars(cmake_vars_file)
+include("${cmake_vars_file}")
+
+# Maintainer switch: Temporarily set this to 1 to re-generate the lists
+# of exported symbols. This is needed when the version is bumped.
+set(GENERATE_SYMBOLS 0)
+if(GENERATE_SYMBOLS)
+ if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+ else()
+ set(GENERATE_SYMBOLS 0)
+ endif()
+endif()
+
+vcpkg_list(SET OPTIONS)
+if("tools" IN_LIST FEATURES)
+ vcpkg_list(APPEND OPTIONS --enable-tools)
+endif()
+
+# As in gmp
+set(disable_assembly OFF)
+set(ccas "")
+set(asmflags "")
+if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC")
+ vcpkg_list(APPEND OPTIONS ac_cv_func_memset=yes)
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ string(APPEND asmflags " --target=i686-pc-windows-msvc -m32")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ string(APPEND asmflags " --target=x86_64-pc-windows-msvc")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ string(APPEND asmflags " --target=arm64-pc-windows-msvc")
+ else()
+ set(disable_assembly ON)
+ endif()
+ if(NOT disable_assembly)
+ vcpkg_find_acquire_program(CLANG)
+ set(ccas "${CLANG}")
+ endif()
+else()
+ set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}")
+endif()
+
+if(disable_assembly)
+ vcpkg_list(APPEND OPTIONS "--enable-assembler=no")
+elseif(ccas)
+ cmake_path(GET ccas PARENT_PATH ccas_dir)
+ vcpkg_add_to_path("${ccas_dir}")
+ cmake_path(GET ccas FILENAME ccas_command)
+ vcpkg_list(APPEND OPTIONS "CCAS=${ccas_command}" "ASM_FLAGS=${asmflags}")
+endif()
+
+if(VCPKG_CROSSCOMPILING)
+ set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}")
+endif()
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ file(GLOB def_files "${CMAKE_CURRENT_LIST_DIR}/*.def")
+ file(COPY ${def_files} DESTINATION "${SOURCE_PATH}")
+ vcpkg_list(APPEND OPTIONS "MSVC_TARGET=${VCPKG_TARGET_ARCHITECTURE}")
+else()
+ vcpkg_list(APPEND OPTIONS "MSVC_TARGET=no")
+endif()
+
+vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+ OPTIONS
+ ${OPTIONS}
+ --disable-documentation
+ --disable-openssl
+ "gmp_cv_prog_exeext_for_build=${VCPKG_HOST_EXECUTABLE_SUFFIX}"
+ OPTIONS_DEBUG
+ --disable-tools
+)
+vcpkg_install_make()
+vcpkg_fixup_pkgconfig()
+
+if(NOT VCPKG_CROSSCOMPILING)
+ set(tool_names desdata eccdata) # aes gcm sha twofish?
+ list(TRANSFORM tool_names PREPEND "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/")
+ list(TRANSFORM tool_names APPEND "${VCPKG_HOST_EXECUTABLE_SUFFIX}")
+ file(COPY ${tool_names} DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
+ vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}")
+endif()
+
+if("tools" IN_LIST FEATURES)
+ vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYINGv3")
+
+if(GENERATE_SYMBOLS)
+ include("${CMAKE_CURRENT_LIST_DIR}/lib-to-def.cmake")
+ lib_to_def(BASENAME nettle REGEX "_*nettle_")
+ lib_to_def(BASENAME hogweed REGEX "_*nettle_")
+endif()
diff --git a/vcpkg/ports/nettle/subdirs.patch b/vcpkg/ports/nettle/subdirs.patch
new file mode 100644
index 0000000..98dd395
--- /dev/null
+++ b/vcpkg/ports/nettle/subdirs.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile.in b/Makefile.in
+index 2bf7f1e8..3e0ba565 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -19,7 +19,7 @@ OPT_NETTLE_SOURCES = @OPT_NETTLE_SOURCES@
+
+ FAT_TEST_LIST = @FAT_TEST_LIST@
+
+-SUBDIRS = tools testsuite examples
++SUBDIRS = @IF_TOOLS@ tools
+
+ include config.make
+
+diff --git a/configure.ac b/configure.ac
+index 4f27e663..a72b732b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -24,6 +24,14 @@ AC_SUBST([MINOR_VERSION])
+
+ AC_CANONICAL_HOST
+
++AC_ARG_ENABLE(tools,[])
++if test "x$enable_tools" = xyes ; then
++ IF_TOOLS=''
++else
++ IF_TOOLS='#'
++fi
++AC_SUBST([IF_TOOLS])
++
+ # Command line options
+ AC_ARG_WITH(include-path,
+ AS_HELP_STRING([--with-include-path], [A colon-separated list of directories to search for include files]),,
diff --git a/vcpkg/ports/nettle/vcpkg.json b/vcpkg/ports/nettle/vcpkg.json
new file mode 100644
index 0000000..4ae4e73
--- /dev/null
+++ b/vcpkg/ports/nettle/vcpkg.json
@@ -0,0 +1,24 @@
+{
+ "name": "nettle",
+ "version": "3.10",
+ "port-version": 1,
+ "description": "Nettle is a low-level cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space.",
+ "homepage": "https://git.lysator.liu.se/nettle/nettle",
+ "license": null,
+ "dependencies": [
+ "gmp",
+ {
+ "name": "nettle",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-get-vars",
+ "host": true
+ }
+ ],
+ "features": {
+ "tools": {
+ "description": "Build tools"
+ }
+ }
+}
diff --git a/vcpkg/ports/nettle/yasm.patch b/vcpkg/ports/nettle/yasm.patch
new file mode 100644
index 0000000..5ea10ab
--- /dev/null
+++ b/vcpkg/ports/nettle/yasm.patch
@@ -0,0 +1,61 @@
+diff --git a/configure.ac b/configure.ac
+index e95f1c825..1d7ef36bb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -302,7 +302,7 @@ ABI=standard
+ case "$host_cpu" in
+ [x86_64 | amd64])
+ AC_TRY_COMPILE([
+-#if defined(__x86_64__) || defined(__arch64__)
++#if defined(__x86_64__) || defined(__arch64__) || defined(_M_AMD64)
+ #error 64-bit x86
+ #endif
+ ], [], [
+diff --git a/x86_64/aes.m4 b/x86_64/aes.m4
+index 3bec9eae2..85cafc046 100644
+--- a/x86_64/aes.m4
++++ b/x86_64/aes.m4
+@@ -77,9 +77,9 @@ define(`AES_STORE', `
+ dnl AES_ROUND(table,a,b,c,d,out,ptr)
+ dnl Computes one word of the AES round. Leaves result in $6.
+ define(`AES_ROUND', `
+- movzb LREG($2), $7
++ movzbq LREG($2), $7
+ movl AES_TABLE0 ($1, $7, 4),$6
+- movzb HREG($3), XREG($7)
++ movzbq HREG($3), XREG($7)
+ xorl AES_TABLE1 ($1, $7, 4),$6
+ movl $4,XREG($7)
+ shr `$'16,$7
+@@ -94,7 +94,7 @@ dnl Computes one word of the final round. Leaves result in $6. Also
+ dnl performs the first substitution step, on the least significant
+ dnl byte, and rotates 8 bits.
+ define(`AES_FINAL_ROUND', `
+- movzb LREG($1),$7
++ movzbq LREG($1),$7
+ movzbl ($5, $7), $6
+ movl $2,XREG($7)
+ andl `$'0x0000ff00,XREG($7)
+@@ -113,18 +113,18 @@ dnl each of eax, ebx, ecx and edx, and also rotates
+ dnl the words one byte to the left.
+ dnl Uses that AES_SBOX == 0
+ define(`AES_SUBST_BYTE', `
+- movzb LREG($1),$6
++ movzbq LREG($1),$6
+ movb ($5, $6),LREG($1)
+ roll `$'8,$1
+
+- movzb LREG($2),$6
++ movzbq LREG($2),$6
+ movb ($5, $6),LREG($2)
+ roll `$'8,$2
+
+- movzb LREG($3),$6
++ movzbq LREG($3),$6
+ movb ($5, $6),LREG($3)
+ roll `$'8,$3
+
+- movzb LREG($4),$6
++ movzbq LREG($4),$6
+ movb ($5, $6),LREG($4)
+ roll `$'8,$4')dnl