@@ -1737,6 +1737,8 @@ TEST(EVPExtraTest, ECKeygen) {
1737
1737
ASSERT_TRUE (maybe_copy (&ctx));
1738
1738
EVP_PKEY *raw = nullptr ;
1739
1739
ASSERT_TRUE (EVP_PKEY_paramgen (ctx.get (), &raw));
1740
+ // |EVP_PKEY_param_check| does not support EC keys yet.
1741
+ ASSERT_FALSE (EVP_PKEY_param_check (ctx.get ()));
1740
1742
bssl::UniquePtr<EVP_PKEY> pkey (raw);
1741
1743
raw = nullptr ;
1742
1744
ExpectECGroupOnly (pkey.get (), NID_X9_62_prime256v1);
@@ -1801,6 +1803,7 @@ TEST(EVPExtraTest, DHKeygen) {
1801
1803
ASSERT_TRUE (ctx);
1802
1804
ASSERT_TRUE (maybe_copy (&ctx));
1803
1805
ASSERT_TRUE (EVP_PKEY_keygen_init (ctx.get ()));
1806
+ ASSERT_TRUE (EVP_PKEY_param_check (ctx.get ()));
1804
1807
ASSERT_TRUE (maybe_copy (&ctx));
1805
1808
EVP_PKEY *raw = nullptr ;
1806
1809
ASSERT_TRUE (EVP_PKEY_keygen (ctx.get (), &raw));
@@ -1853,6 +1856,8 @@ TEST(EVPExtraTest, DHParamgen) {
1853
1856
EVP_PKEY *raw_pkey = NULL ;
1854
1857
// Generate the parameters
1855
1858
ASSERT_TRUE (EVP_PKEY_paramgen (ctx.get (), &raw_pkey));
1859
+ // Only parameters have been generated, but no key has actually been set.
1860
+ EXPECT_FALSE (EVP_PKEY_param_check (ctx.get ()));
1856
1861
bssl::UniquePtr<EVP_PKEY> pkey (raw_pkey);
1857
1862
ASSERT_TRUE (raw_pkey);
1858
1863
@@ -1876,6 +1881,7 @@ TEST(EVPExtraTest, DHParamgen) {
1876
1881
ASSERT_NE (EVP_PKEY_CTX_set_dh_paramgen_prime_len (ctx.get (), prime_len), 1 );
1877
1882
// Set the generator
1878
1883
ASSERT_NE (EVP_PKEY_CTX_set_dh_paramgen_generator (ctx.get (), generator), 1 );
1884
+ ASSERT_FALSE (EVP_PKEY_param_check (ctx.get ()));
1879
1885
}
1880
1886
1881
1887
// Test that |EVP_PKEY_keygen| works for Ed25519.
@@ -2578,6 +2584,16 @@ TEST_P(PerKEMTest, RawKeyOperations) {
2578
2584
ASSERT_TRUE (pkey_new);
2579
2585
ASSERT_TRUE (EVP_PKEY_kem_check_key (pkey_new.get ()));
2580
2586
2587
+ // Not supported for anything but EC and RSA keys
2588
+ bssl::UniquePtr<EVP_PKEY_CTX> kem_key_ctx (
2589
+ EVP_PKEY_CTX_new (pkey_new.get (), NULL ));
2590
+ ASSERT_TRUE (kem_key_ctx);
2591
+ EXPECT_FALSE (EVP_PKEY_check (kem_key_ctx.get ()));
2592
+ EXPECT_FALSE (EVP_PKEY_public_check ((kem_key_ctx.get ())));
2593
+ ASSERT_EQ ((uint16_t )ERR_get_error (),
2594
+ (uint16_t )EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
2595
+ ERR_clear_error ();
2596
+
2581
2597
// ---- 5. Test encaps/decaps with new keys ----
2582
2598
// Create Alice's context with the new key that has both
2583
2599
// the public and the secret part of the key.
0 commit comments