]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
tests: combined tables of sign-verify tests
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Wed, 31 May 2017 06:55:54 +0000 (08:55 +0200)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Wed, 31 May 2017 12:50:22 +0000 (14:50 +0200)
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
tests/Makefile.am
tests/cert-common.h
tests/common-key-tests.h [new file with mode: 0644]
tests/sign-verify-data.c
tests/sign-verify-ext.c
tests/sign-verify.c
tests/x509sign-verify.c

index 3ad0c84baee4c2799f6c9a4a8f0ec292ab8f4198..50830addd8553d4da927ec8bc732eeac684b990f 100644 (file)
@@ -43,7 +43,7 @@ EXTRA_DIST = suppressions.valgrind eagain-common.h cert-common.h test-chains.h \
        pkcs7-interesting/pkcs7-1.der.err pkcs7-interesting/pkcs7-2.der pkcs7-interesting/pkcs7-2.der.err \
        client-interesting/client1.raw client-interesting/client2.raw client-interesting/client3.disabled \
        server-interesting/server1.raw scripts/common.sh scripts/starttls-common.sh \
-       client-interesting/client3.raw rng-op.c x509sign-verify-common.h \
+       client-interesting/client3.raw rng-op.c x509sign-verify-common.h common-key-tests.h \
        ocsp-tests/certs/ca.key ocsp-tests/certs/ca.pem ocsp-tests/certs/ocsp-server.key ocsp-tests/certs/ocsp-server.pem ocsp-tests/response1.der \
        ocsp-tests/response2.der ocsp-tests/certs/ocsp_index.txt ocsp-tests/certs/ocsp_index.txt.attr \
        ocsp-tests/certs/server_good.key ocsp-tests/certs/server_bad.key ocsp-tests/certs/server_good.template \
index 313a173e82e18c7b873b5f04328e789b2f993ad6..4d3b6b25d31369cd68da846b2457b2d7e3595451 100644 (file)
@@ -22,7 +22,6 @@
 
 #include <gnutls/gnutls.h>
 
-
 /* This file contains a lot of common parameters used by legacy and new
  * tests. The recommended to use for new tests are:
  *
diff --git a/tests/common-key-tests.h b/tests/common-key-tests.h
new file mode 100644 (file)
index 0000000..464d733
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2017 Red Hat Inc.
+ *
+ * Author: Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GnuTLS; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "cert-common.h"
+
+#include <gnutls/abstract.h>
+
+struct _key_tests_st {
+       const char *name;
+       gnutls_datum_t key;
+       gnutls_datum_t cert;
+       gnutls_pk_algorithm_t pk;
+       unsigned digest;
+       unsigned sigalgo;
+       unsigned sign_flags;
+};
+
+static const
+struct _key_tests_st common_key_tests[] = {
+       {
+               .name = "rsa key",
+               .cert = {(void *) cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem)-1},
+               .key = {(void *) cli_ca3_key_pem, sizeof(cli_ca3_key_pem)-1},
+               .pk = GNUTLS_PK_RSA,
+               .digest = GNUTLS_DIG_SHA256,
+               .sigalgo = GNUTLS_SIGN_RSA_SHA256
+       },
+       {
+               .name = "dsa key",
+               .key = {(void *) clidsa_ca3_key_pem, sizeof(clidsa_ca3_key_pem)-1},
+               .cert = {(void *) clidsa_ca3_cert_pem, sizeof(clidsa_ca3_cert_pem)-1},
+               .pk = GNUTLS_PK_DSA,
+               .digest = GNUTLS_DIG_SHA1,
+               .sigalgo = GNUTLS_SIGN_DSA_SHA1
+       },
+       {
+               .name = "ecdsa key",
+               .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
+               .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
+               .pk = GNUTLS_PK_ECDSA,
+               .digest = GNUTLS_DIG_SHA256,
+               .sigalgo = GNUTLS_SIGN_ECDSA_SHA256
+       },
+       {
+               .name = "rsa pss key",
+               .key = {(void *) server_ca3_rsa_pss_key_pem, sizeof(server_ca3_rsa_pss_key_pem)-1},
+               .cert = {(void *) server_ca3_rsa_pss_cert_pem, sizeof(server_ca3_rsa_pss_cert_pem)-1},
+               .pk = GNUTLS_PK_RSA_PSS,
+               .digest = GNUTLS_DIG_SHA256,
+               .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
+               .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256
+       }
+};
index b638146cc387e8d967e92f36ac6a2567e33e87df..cbcee12333700708748bb0e237d80759da7b4742 100644 (file)
@@ -37,7 +37,7 @@
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 #include <gnutls/abstract.h>
-#include "cert-common.h"
+#include "common-key-tests.h"
 #include "utils.h"
 
 /* verifies whether the sign-data and verify-data APIs
@@ -63,44 +63,7 @@ const gnutls_datum_t invalid_raw_data = {
        20
 };
 
-struct tests_st {
-       const char *name;
-       gnutls_datum_t key;
-       gnutls_datum_t cert;
-       gnutls_pk_algorithm_t pk;
-       unsigned digest;
-       unsigned sigalgo;
-       unsigned sign_flags;
-};
-
-struct tests_st tests[] = {
-       {
-               .name = "rsa key",
-               .cert = {(void *) cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem)-1},
-               .key = {(void *) cli_ca3_key_pem, sizeof(cli_ca3_key_pem)-1},
-               .pk = GNUTLS_PK_RSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_RSA_SHA256
-       },
-       {
-               .name = "ecdsa key",
-               .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
-               .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
-               .pk = GNUTLS_PK_ECDSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_ECDSA_SHA256
-       },
-       {
-               .name = "rsa pss key",
-               .key = {(void *) server_ca3_rsa_pss_key_pem, sizeof(server_ca3_rsa_pss_key_pem)-1},
-               .cert = {(void *) server_ca3_rsa_pss_cert_pem, sizeof(server_ca3_rsa_pss_cert_pem)-1},
-               .pk = GNUTLS_PK_RSA_PSS,
-               .digest = GNUTLS_DIG_SHA256,
-               .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
-               .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256
-       }
-};
-
+#define tests common_key_tests
 #define testfail(fmt, ...) \
        fail("%s: "fmt, tests[i].name, ##__VA_ARGS__)
 
@@ -124,6 +87,8 @@ void doit(void)
                if (debug)
                        success("loop %d\n", (int) i);
 
+               if (tests[i].pk == GNUTLS_PK_DSA)
+                       continue;
                ret = gnutls_pubkey_init(&pubkey);
                if (ret < 0)
                        testfail("gnutls_privkey_init\n");
index 08990be6d3b942d891b356f7ae3cf84265516e72..11812b77ebc8d4ecb81855dce56db74e410d72ab 100644 (file)
@@ -39,7 +39,7 @@
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 #include <gnutls/abstract.h>
-#include "cert-common.h"
+#include "common-key-tests.h"
 #include "utils.h"
 
 static void tls_log_func(int level, const char *str)
@@ -67,53 +67,6 @@ const gnutls_datum_t raw_data = {
        5
 };
 
-struct tests_st {
-       const char *name;
-       gnutls_datum_t key;
-       gnutls_datum_t cert;
-       gnutls_pk_algorithm_t pk;
-       unsigned digest;
-       unsigned sigalgo;
-       unsigned sign_flags;
-};
-
-struct tests_st tests[] = {
-       {
-               .name = "rsa key",
-               .cert = {(void *) cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem)-1},
-               .key = {(void *) cli_ca3_key_pem, sizeof(cli_ca3_key_pem)-1},
-               .pk = GNUTLS_PK_RSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_RSA_SHA256
-       },
-       {
-               .name = "dsa key",
-               .key = {(void *) clidsa_ca3_key_pem, sizeof(clidsa_ca3_key_pem)-1},
-               .cert = {(void *) clidsa_ca3_cert_pem, sizeof(clidsa_ca3_cert_pem)-1},
-               .pk = GNUTLS_PK_DSA,
-               .digest = GNUTLS_DIG_SHA1,
-               .sigalgo = GNUTLS_SIGN_DSA_SHA1
-       },
-       {
-               .name = "ecdsa key",
-               .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
-               .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
-               .pk = GNUTLS_PK_ECDSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_ECDSA_SHA256
-       },
-#if 0
-       {
-               .name = "rsa pss key",
-               .key = {(void *) server_ca3_rsa_pss_key_pem, sizeof(server_ca3_rsa_pss_key_pem)-1},
-               .cert = {(void *) server_ca3_rsa_pss_cert_pem, sizeof(server_ca3_rsa_pss_cert_pem)-1},
-               .pk = GNUTLS_PK_RSA_PSS,
-               .digest = GNUTLS_DIG_SHA256,
-               .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
-               .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256
-       }
-#endif
-};
 
 struct key_cb_data {
        gnutls_privkey_t rkey; /* the real thing */
@@ -166,6 +119,7 @@ static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t *txtkey, gnutls_p
        return privkey;
 }
 
+#define tests common_key_tests
 #define testfail(fmt, ...) \
        fail("%s: "fmt, tests[i].name, ##__VA_ARGS__)
 
@@ -190,6 +144,9 @@ void doit(void)
                if (debug)
                        success("loop %d: %s\n", (int) i, tests[i].name);
 
+               if (tests[i].pk == GNUTLS_PK_RSA_PSS)
+                       continue;
+
                if (tests[i].digest == GNUTLS_DIG_SHA1) {
                        hash_data = &sha1_hash_data;
                } else {
index 69b004f427a1436c04912bba2084954cec1f5b0e..81a1152962de38795c12c8be01207ed12eaf577a 100644 (file)
@@ -39,7 +39,7 @@
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 #include <gnutls/abstract.h>
-#include "cert-common.h"
+#include "common-key-tests.h"
 #include "utils.h"
 
 static void tls_log_func(int level, const char *str)
@@ -81,52 +81,7 @@ const gnutls_datum_t raw_data = {
        5
 };
 
-struct tests_st {
-       const char *name;
-       gnutls_datum_t key;
-       gnutls_datum_t cert;
-       gnutls_pk_algorithm_t pk;
-       unsigned digest;
-       unsigned sigalgo;
-       unsigned sign_flags;
-};
-
-struct tests_st tests[] = {
-       {
-               .name = "rsa key",
-               .cert = {(void *) cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem)-1},
-               .key = {(void *) cli_ca3_key_pem, sizeof(cli_ca3_key_pem)-1},
-               .pk = GNUTLS_PK_RSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_RSA_SHA256
-       },
-       {
-               .name = "dsa key",
-               .key = {(void *) clidsa_ca3_key_pem, sizeof(clidsa_ca3_key_pem)-1},
-               .cert = {(void *) clidsa_ca3_cert_pem, sizeof(clidsa_ca3_cert_pem)-1},
-               .pk = GNUTLS_PK_DSA,
-               .digest = GNUTLS_DIG_SHA1,
-               .sigalgo = GNUTLS_SIGN_DSA_SHA1
-       },
-       {
-               .name = "ecdsa key",
-               .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
-               .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
-               .pk = GNUTLS_PK_ECDSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_ECDSA_SHA256
-       },
-       {
-               .name = "rsa pss key",
-               .key = {(void *) server_ca3_rsa_pss_key_pem, sizeof(server_ca3_rsa_pss_key_pem)-1},
-               .cert = {(void *) server_ca3_rsa_pss_cert_pem, sizeof(server_ca3_rsa_pss_cert_pem)-1},
-               .pk = GNUTLS_PK_RSA_PSS,
-               .digest = GNUTLS_DIG_SHA256,
-               .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
-               .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256
-       }
-};
-
+#define tests common_key_tests
 #define testfail(fmt, ...) \
        fail("%s: "fmt, tests[i].name, ##__VA_ARGS__)
 
index 55633c831996a955829295284b8d7ba0f5eb234f..63a4b90775a38acc2d28d9215cb329c1a02b7fd9 100644 (file)
@@ -37,7 +37,7 @@
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 #include <gnutls/abstract.h>
-#include "cert-common.h"
+#include "common-key-tests.h"
 #include "utils.h"
 
 /* verifies whether the sign-data and verify-data APIs
@@ -63,44 +63,7 @@ const gnutls_datum_t invalid_raw_data = {
        20
 };
 
-struct tests_st {
-       const char *name;
-       gnutls_datum_t key;
-       gnutls_datum_t cert;
-       gnutls_pk_algorithm_t pk;
-       unsigned digest;
-       unsigned sigalgo;
-       unsigned sign_flags;
-};
-
-struct tests_st tests[] = {
-       {
-               .name = "rsa key",
-               .cert = {(void *) cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem)-1},
-               .key = {(void *) cli_ca3_key_pem, sizeof(cli_ca3_key_pem)-1},
-               .pk = GNUTLS_PK_RSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_RSA_SHA256
-       },
-       {
-               .name = "ecdsa key",
-               .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
-               .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
-               .pk = GNUTLS_PK_ECDSA,
-               .digest = GNUTLS_DIG_SHA256,
-               .sigalgo = GNUTLS_SIGN_ECDSA_SHA256
-       },
-       {
-               .name = "rsa pss key",
-               .key = {(void *) server_ca3_rsa_pss_key_pem, sizeof(server_ca3_rsa_pss_key_pem)-1},
-               .cert = {(void *) server_ca3_rsa_pss_cert_pem, sizeof(server_ca3_rsa_pss_cert_pem)-1},
-               .pk = GNUTLS_PK_RSA_PSS,
-               .digest = GNUTLS_DIG_SHA256,
-               .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
-               .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256
-       }
-};
-
+#define tests common_key_tests
 #define testfail(fmt, ...) \
        fail("%s: "fmt, tests[i].name, ##__VA_ARGS__)
 
@@ -122,6 +85,9 @@ void doit(void)
                gnutls_global_set_log_level(6);
 
        for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
+               if (tests[i].pk == GNUTLS_PK_DSA)
+                       continue;
+
                if (debug)
                        success("loop %d\n", (int) i);