diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-03-28 09:03:59 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-03-28 09:04:36 +0100 |
commit | 222db2ede00e717886fe933362f06d2b01449418 (patch) | |
tree | 9d4f0cac7b92158536071ea9578dc00dff6109d2 /tests/x509sign-verify.c | |
parent | a7429035d7bb6bb9b1fdcff681ad07750ac180a8 (diff) | |
download | gnutls-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.c | 19 |
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); |