summaryrefslogtreecommitdiff
path: root/tests/privkey-keygen.c
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2019-04-22 08:27:43 +0200
committerDaiki Ueno <dueno@redhat.com>2020-01-23 07:07:22 +0100
commit07596231f2e4b3c28d1587907ce51fe15c2d990a (patch)
treebc1b94b9ad3c1fe5548510580d05ca00b280b30d /tests/privkey-keygen.c
parentaf5e42aba4294ce09a263573febe840e804cf1ed (diff)
downloadgnutls-07596231f2e4b3c28d1587907ce51fe15c2d990a.tar.gz
algorithms: implement X448 key exchange and Ed448 signature scheme
Signed-off-by: Daiki Ueno <dueno@redhat.com>
Diffstat (limited to 'tests/privkey-keygen.c')
-rw-r--r--tests/privkey-keygen.c32
1 files changed, 13 insertions, 19 deletions
diff --git a/tests/privkey-keygen.c b/tests/privkey-keygen.c
index 7491e3cf33..31634bd095 100644
--- a/tests/privkey-keygen.c
+++ b/tests/privkey-keygen.c
@@ -65,36 +65,29 @@ static void sign_verify_data(gnutls_pk_algorithm_t algorithm, gnutls_x509_privke
gnutls_datum_t signature;
gnutls_digest_algorithm_t digest;
- if (algorithm == GNUTLS_PK_EDDSA_ED25519)
- digest = GNUTLS_DIG_SHA512;
- else if (algorithm == GNUTLS_PK_GOST_01)
- digest = GNUTLS_DIG_GOSTR_94;
- else if (algorithm == GNUTLS_PK_GOST_12_256)
- digest = GNUTLS_DIG_STREEBOG_256;
- else if (algorithm == GNUTLS_PK_GOST_12_512)
- digest = GNUTLS_DIG_STREEBOG_512;
- else
- digest = GNUTLS_DIG_SHA256;
-
- /* sign arbitrary data */
assert(gnutls_privkey_init(&privkey) >= 0);
ret = gnutls_privkey_import_x509(privkey, pkey, 0);
if (ret < 0)
fail("gnutls_privkey_import_x509\n");
- ret = gnutls_privkey_sign_data(privkey, digest, 0,
- &raw_data, &signature);
- if (ret < 0)
- fail("gnutls_x509_privkey_sign_data\n");
-
- /* verify data */
assert(gnutls_pubkey_init(&pubkey) >= 0);
ret = gnutls_pubkey_import_privkey(pubkey, privkey, 0, 0);
if (ret < 0)
fail("gnutls_pubkey_import_privkey\n");
+ ret = gnutls_pubkey_get_preferred_hash_algorithm (pubkey, &digest, NULL);
+ if (ret < 0)
+ fail("gnutls_pubkey_get_preferred_hash_algorithm\n");
+
+ /* sign arbitrary data */
+ ret = gnutls_privkey_sign_data(privkey, digest, 0,
+ &raw_data, &signature);
+ if (ret < 0)
+ fail("gnutls_privkey_sign_data\n");
+
+ /* verify data */
ret = gnutls_pubkey_verify_data2(pubkey, gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm(pubkey, NULL),digest),
0, &raw_data, &signature);
if (ret < 0)
@@ -122,7 +115,8 @@ void doit(void)
for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_MAX;
algorithm++) {
if (algorithm == GNUTLS_PK_DH ||
- algorithm == GNUTLS_PK_ECDH_X25519)
+ algorithm == GNUTLS_PK_ECDH_X25519 ||
+ algorithm == GNUTLS_PK_ECDH_X448)
continue;
if (algorithm == GNUTLS_PK_GOST_01 ||