summaryrefslogtreecommitdiff
path: root/tests/x509sign-verify.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-03-28 09:03:59 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-03-28 09:04:36 +0100
commit222db2ede00e717886fe933362f06d2b01449418 (patch)
tree9d4f0cac7b92158536071ea9578dc00dff6109d2 /tests/x509sign-verify.c
parenta7429035d7bb6bb9b1fdcff681ad07750ac180a8 (diff)
downloadgnutls-222db2ede00e717886fe933362f06d2b01449418.tar.gz
Added sign and verification flags to operate in RSA raw mode (as used in TLS).
Diffstat (limited to 'tests/x509sign-verify.c')
-rw-r--r--tests/x509sign-verify.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/x509sign-verify.c b/tests/x509sign-verify.c
index 7e0727cf1f..69e0903462 100644
--- a/tests/x509sign-verify.c
+++ b/tests/x509sign-verify.c
@@ -249,7 +249,24 @@ doit (void)
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
fail ("gnutls_x509_pubkey_verify_hash2-2 (hashed data)\n");
-
+ /* test the raw interface */
+ gnutls_free(signature.data);
+ signature.data = NULL;
+
+ if (gnutls_pubkey_get_pk_algorithm(pubkey, NULL) == GNUTLS_PK_RSA)
+ {
+ ret = gnutls_privkey_sign_hash (privkey, GNUTLS_DIG_SHA1, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ &hash_data, &signature);
+ if (ret < 0)
+ fail ("gnutls_privkey_sign_hash: %s\n", gnutls_strerror(ret));
+
+ sign_algo = gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm(pubkey, NULL),
+ GNUTLS_DIG_SHA1);
+
+ ret = gnutls_pubkey_verify_hash2 (pubkey, sign_algo, GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA, &hash_data, &signature);
+ if (ret < 0)
+ fail ("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
+ }
gnutls_free(signature.data);
gnutls_free(signature2.data);
gnutls_x509_privkey_deinit (key);