public-key: Add optional parameters argument to verify() method
This commit is contained in:
@@ -59,7 +59,7 @@ static void test_good_sig(private_key_t *privkey, public_key_t *pubkey)
|
||||
}
|
||||
fail_unless(privkey->sign(privkey, schemes[i].scheme, data, &sig),
|
||||
"sign %N", signature_scheme_names, schemes[i].scheme);
|
||||
fail_unless(pubkey->verify(pubkey, schemes[i].scheme, data, sig),
|
||||
fail_unless(pubkey->verify(pubkey, schemes[i].scheme, NULL, data, sig),
|
||||
"verify %N", signature_scheme_names, schemes[i].scheme);
|
||||
free(sig.ptr);
|
||||
}
|
||||
@@ -121,7 +121,8 @@ static void test_bad_sigs(public_key_t *pubkey)
|
||||
for (i = 0; i < countof(invalid_sigs); i++)
|
||||
{
|
||||
fail_if(
|
||||
pubkey->verify(pubkey, schemes[s].scheme, data, invalid_sigs[i]),
|
||||
pubkey->verify(pubkey, schemes[s].scheme, NULL, data,
|
||||
invalid_sigs[i]),
|
||||
"bad %N sig accepted %B",
|
||||
signature_scheme_names, schemes[s].scheme,
|
||||
&invalid_sigs[i]);
|
||||
|
||||
@@ -302,8 +302,8 @@ START_TEST(test_ed25519_sign)
|
||||
ck_assert(chunk_equals(sig, sig_tests[_i].sig));
|
||||
|
||||
/* verify */
|
||||
ck_assert(pubkey->verify(pubkey, SIGN_ED25519, sig_tests[_i].msg,
|
||||
sig_tests[_i].sig));
|
||||
ck_assert(pubkey->verify(pubkey, SIGN_ED25519, NULL, sig_tests[_i].msg,
|
||||
sig_tests[_i].sig));
|
||||
|
||||
/* cleanup */
|
||||
key->destroy(key);
|
||||
@@ -375,10 +375,10 @@ START_TEST(test_ed25519_gen)
|
||||
ck_assert(!pubkey->encrypt(pubkey, ENCRYPT_UNKNOWN, msg, NULL));
|
||||
|
||||
/* verify with wrong signature scheme */
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED448, msg, sig));
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED448, NULL, msg, sig));
|
||||
|
||||
/* verify with correct signature scheme */
|
||||
ck_assert(pubkey->verify(pubkey, SIGN_ED25519, msg, sig));
|
||||
ck_assert(pubkey->verify(pubkey, SIGN_ED25519, NULL, msg, sig));
|
||||
|
||||
/* cleanup */
|
||||
key->destroy(key);
|
||||
@@ -407,7 +407,7 @@ START_TEST(test_ed25519_speed)
|
||||
ck_assert(key->sign(key, SIGN_ED25519, msg, &sig));
|
||||
pubkey = key->get_public_key(key);
|
||||
ck_assert(pubkey != NULL);
|
||||
ck_assert(pubkey->verify(pubkey, SIGN_ED25519, msg, sig));
|
||||
ck_assert(pubkey->verify(pubkey, SIGN_ED25519, NULL, msg, sig));
|
||||
key->destroy(key);
|
||||
pubkey->destroy(pubkey);
|
||||
chunk_free(&sig);
|
||||
@@ -476,25 +476,29 @@ START_TEST(test_ed25519_fail)
|
||||
BUILD_BLOB_ASN1_DER, sig_tests[0].pubkey, BUILD_END);
|
||||
ck_assert(pubkey != NULL);
|
||||
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, chunk_empty, chunk_empty));
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, NULL, chunk_empty,
|
||||
chunk_empty));
|
||||
|
||||
/* malformed signature */
|
||||
sig = chunk_create(sig1, 64);
|
||||
memcpy(sig1, sig_tests[0].sig.ptr, 64);
|
||||
sig1[63] |= 0xe0;
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, sig_tests[0].msg, sig));
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, NULL, sig_tests[0].msg,
|
||||
sig));
|
||||
|
||||
/* wrong signature */
|
||||
memcpy(sig1, sig_tests[0].sig.ptr, 64);
|
||||
sig1[0] = 0xe4;
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, sig_tests[0].msg, sig));
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, NULL, sig_tests[0].msg,
|
||||
sig));
|
||||
|
||||
/* detect all-zeroes public key */
|
||||
pubkey->destroy(pubkey);
|
||||
pubkey = lib->creds->create(lib->creds, CRED_PUBLIC_KEY, KEY_ED25519,
|
||||
BUILD_BLOB_ASN1_DER, zero_pk, BUILD_END);
|
||||
ck_assert(pubkey != NULL);
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, sig_tests[0].msg, sig));
|
||||
ck_assert(!pubkey->verify(pubkey, SIGN_ED25519, NULL, sig_tests[0].msg,
|
||||
sig));
|
||||
pubkey->destroy(pubkey);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
@@ -49,7 +49,7 @@ static void test_good_sig(private_key_t *privkey, public_key_t *pubkey)
|
||||
}
|
||||
fail_unless(privkey->sign(privkey, schemes[i], data, &sig),
|
||||
"sign %N", signature_scheme_names, schemes[i]);
|
||||
fail_unless(pubkey->verify(pubkey, schemes[i], data, sig),
|
||||
fail_unless(pubkey->verify(pubkey, schemes[i], NULL, data, sig),
|
||||
"verify %N", signature_scheme_names, schemes[i]);
|
||||
free(sig.ptr);
|
||||
}
|
||||
@@ -106,7 +106,7 @@ static void test_bad_sigs(public_key_t *pubkey)
|
||||
for (i = 0; i < countof(invalid_sigs); i++)
|
||||
{
|
||||
fail_if(
|
||||
pubkey->verify(pubkey, schemes[s], data, invalid_sigs[i]),
|
||||
pubkey->verify(pubkey, schemes[s], NULL, data, invalid_sigs[i]),
|
||||
"bad %N sig accepted %B", signature_scheme_names, schemes[s],
|
||||
&invalid_sigs[i]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user