* No match if just one of the public keys is not available, otherwise both
* are unavailable, and for now such keys are considered equal.
*/
- return (ossl_ml_kem_have_pubkey(key1) ^ ossl_ml_kem_have_pubkey(key2));
+ return (!(ossl_ml_kem_have_pubkey(key1) ^ ossl_ml_kem_have_pubkey(key2)));
}
if (!TEST_int_gt(EVP_PKEY_copy_parameters(bkey, akey), 0))
goto err;
+ /* Bob's empty key is not equal to Alice's */
+ if (!TEST_false(EVP_PKEY_eq(akey, bkey))
+ || !TEST_false(EVP_PKEY_eq(bkey, akey)))
+ goto err;
+
if (!TEST_true(EVP_PKEY_set1_encoded_public_key(bkey, rawpub, publen)))
goto err;
+ /* Bob's copy of Alice's public key makes the two equal */
+ if (!TEST_true(EVP_PKEY_eq(akey, bkey))
+ || !TEST_true(EVP_PKEY_eq(bkey, akey)))
+ goto err;
+
/* Encapsulate Bob's key */
ctx = EVP_PKEY_CTX_new_from_pkey(testctx, bkey, NULL);
if (!TEST_ptr(ctx))