diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-04-13 13:39:38 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-04-13 13:39:38 +0200 |
commit | fa8b36e058edc5544ac269528dbb225d09de48c7 (patch) | |
tree | a78260479f52078209f94bd8e09a34d5200f80b4 | |
parent | b074cfb71eee992ea8c15f9127e6a181b9ba8713 (diff) | |
download | gnutls-fa8b36e058edc5544ac269528dbb225d09de48c7.tar.gz |
tests: verify that the output of gnutls_sign_algorithm_get() is the expected one
-rw-r--r-- | tests/mini-x509-kx.c | 39 |
1 files changed, 33 insertions, 6 deletions
diff --git a/tests/mini-x509-kx.c b/tests/mini-x509-kx.c index 228d12512b..f549d69f1a 100644 --- a/tests/mini-x509-kx.c +++ b/tests/mini-x509-kx.c @@ -142,7 +142,9 @@ const gnutls_datum_t server_key = { server_key_pem, #define MSG "hello there ppl" -static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx) +static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx, + gnutls_sign_algorithm_t server_sign_algo, + gnutls_sign_algorithm_t client_sign_algo) { int ret; char buffer[256]; @@ -226,6 +228,31 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx) exit(1); } + /* test signature algorithm match */ + ret = gnutls_sign_algorithm_get(server); + if (ret != (int)server_sign_algo) { + fail("%s: got unexpected server signature algorithm: %d/%s\n", client_prio, ret, gnutls_sign_get_name(ret)); + exit(1); + } + + ret = gnutls_sign_algorithm_get_client(server); + if (ret != (int)client_sign_algo) { + fail("%s: got unexpected server signature algorithm: %d/%s\n", client_prio, ret, gnutls_sign_get_name(ret)); + exit(1); + } + + ret = gnutls_sign_algorithm_get(client); + if (ret != (int)server_sign_algo) { + fail("%s: got unexpected server signature algorithm: %d/%s\n", client_prio, ret, gnutls_sign_get_name(ret)); + exit(1); + } + + ret = gnutls_sign_algorithm_get_client(client); + if (ret != (int)client_sign_algo) { + fail("%s: got unexpected server signature algorithm: %d/%s\n", client_prio, ret, gnutls_sign_get_name(ret)); + exit(1); + } + gnutls_record_send(server, MSG, strlen(MSG)); ret = gnutls_record_recv(client, buffer, sizeof(buffer)); @@ -259,14 +286,14 @@ void doit(void) { global_init(); - try("NORMAL:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH); + try("NORMAL:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN); reset_buffers(); - try("NORMAL:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH); + try("NORMAL:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN); reset_buffers(); - try("NORMAL:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA); + try("NORMAL:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN); reset_buffers(); - try("NORMAL:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA); + try("NORMAL:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN); reset_buffers(); - try("NORMAL:-KX-ALL:+RSA", GNUTLS_KX_RSA); + try("NORMAL:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN); gnutls_global_deinit(); } |