]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
nettle: use the nettle_get_secp API when available
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Wed, 7 Feb 2018 10:34:36 +0000 (11:34 +0100)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Wed, 7 Feb 2018 11:23:07 +0000 (12:23 +0100)
Resolves #380

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
lib/nettle/pk.c

index 507d65ef1b29270011048f57c8fdfb60f2edbdd9..0ecd14f5c3f0c383b705a21cdffa9288291f6fe0 100644 (file)
@@ -1053,21 +1053,31 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
        return ret;
 }
 
+#if NETTLE_MAJOR_VERSION < 3 || (NETTLE_MAJOR_VERSION == 3 && NETTLE_MINOR_VERSION < 4)
+# ifdef ENABLE_NON_SUITEB_CURVES
+#  define nettle_get_secp_192r1() &nettle_secp_192r1
+#  define nettle_get_secp_224r1() &nettle_secp_224r1
+# endif
+# define nettle_get_secp_256r1() &nettle_secp_256r1
+# define nettle_get_secp_384r1() &nettle_secp_384r1
+# define nettle_get_secp_521r1() &nettle_secp_521r1
+#endif
+
 static inline const struct ecc_curve *get_supported_nist_curve(int curve)
 {
        switch (curve) {
 #ifdef ENABLE_NON_SUITEB_CURVES
        case GNUTLS_ECC_CURVE_SECP192R1:
-               return &nettle_secp_192r1;
+               return nettle_get_secp_192r1();
        case GNUTLS_ECC_CURVE_SECP224R1:
-               return &nettle_secp_224r1;
+               return nettle_get_secp_224r1();
 #endif
        case GNUTLS_ECC_CURVE_SECP256R1:
-               return &nettle_secp_256r1;
+               return nettle_get_secp_256r1();
        case GNUTLS_ECC_CURVE_SECP384R1:
-               return &nettle_secp_384r1;
+               return nettle_get_secp_384r1();
        case GNUTLS_ECC_CURVE_SECP521R1:
-               return &nettle_secp_521r1;
+               return nettle_get_secp_521r1();
        default:
                return NULL;
        }