Skip to content

Commit b05603b

Browse files
committed
Review changes
1 parent c4e1946 commit b05603b

File tree

5 files changed

+17
-34
lines changed

5 files changed

+17
-34
lines changed

ext/openssl/ossl_pkey.c

+11-10
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,8 @@ struct pkey_from_data_arg {
478478
};
479479

480480
static int
481-
add_data_to_builder(VALUE key, VALUE value, VALUE arg) {
481+
add_data_to_builder(VALUE key, VALUE value, VALUE arg)
482+
{
482483
if(NIL_P(value))
483484
return ST_CONTINUE;
484485

@@ -521,6 +522,9 @@ add_data_to_builder(VALUE key, VALUE value, VALUE arg) {
521522
case OSSL_PARAM_OCTET_PTR:
522523
ossl_raise(ePKeyError, "Unsupported parameter \"%s\", handling of OSSL_PARAM_UTF8_PTR and OSSL_PARAM_OCTET_PTR not implemented", key_ptr);
523524
break;
525+
default:
526+
ossl_raise(ePKeyError, "Unsupported parameter \"%s\"", key_ptr);
527+
break;
524528
}
525529

526530
return ST_CONTINUE;
@@ -612,7 +616,6 @@ pkey_from_data(int argc, VALUE *argv, VALUE self)
612616

613617
if (EVP_PKEY_fromdata(ctx, &pkey, EVP_PKEY_KEYPAIR, params) <= 0) {
614618
EVP_PKEY_CTX_free(ctx);
615-
EVP_PKEY_free(pkey);
616619
ossl_raise(ePKeyError, "EVP_PKEY_fromdata");
617620
}
618621

@@ -690,18 +693,15 @@ ossl_pkey_s_generate_key(int argc, VALUE *argv, VALUE self)
690693
* == Example
691694
* pkey = OpenSSL::PKey.from_data("RSA", n: 3161751493, e: 65537, d: 2064855961)
692695
* pkey.private? #=> true
693-
* pkey.public_key #=> #<OpenSSL::PKey::RSA...
696+
* pkey.n #=> #<OpenSSL::BN 3161751493>
694697
*/
698+
#if OSSL_OPENSSL_PREREQ(3, 0, 0)
695699
static VALUE
696700
ossl_pkey_s_from_data(int argc, VALUE *argv, VALUE self)
697701
{
698-
#if OSSL_OPENSSL_PREREQ(3, 0, 0)
699-
return pkey_from_data(argc, argv, self);
700-
#else
701-
rb_raise(ePKeyError, "OpenSSL::PKey.from_data requires OpenSSL 3.0 or later");
702-
#endif
702+
return pkey_from_data(argc, argv, self);
703703
}
704-
704+
#endif
705705
/*
706706
* TODO: There is no convenient way to check the presence of public key
707707
* components on OpenSSL 3.0. But since keys are immutable on 3.0, pkeys without
@@ -1955,8 +1955,9 @@ Init_ossl_pkey(void)
19551955
rb_define_module_function(mPKey, "read", ossl_pkey_new_from_data, -1);
19561956
rb_define_module_function(mPKey, "generate_parameters", ossl_pkey_s_generate_parameters, -1);
19571957
rb_define_module_function(mPKey, "generate_key", ossl_pkey_s_generate_key, -1);
1958+
#if OSSL_OPENSSL_PREREQ(3, 0, 0)
19581959
rb_define_module_function(mPKey, "from_data", ossl_pkey_s_from_data, -1);
1959-
1960+
#endif
19601961
#ifdef HAVE_EVP_PKEY_NEW_RAW_PRIVATE_KEY
19611962
rb_define_module_function(mPKey, "new_raw_private_key", ossl_pkey_new_raw_private_key, 2);
19621963
rb_define_module_function(mPKey, "new_raw_public_key", ossl_pkey_new_raw_public_key, 2);

test/openssl/fixtures/pkey/ec-prime256v1.pem

-5
This file was deleted.

test/openssl/fixtures/pkey/ec-secp384r1.pem

-6
This file was deleted.

test/openssl/fixtures/pkey/ec-secp521r1.pem

-7
This file was deleted.

test/openssl/test_pkey.rb

+6-6
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def test_s_from_data_rsa_with_invalid_parameter
318318
end
319319

320320
def test_s_from_data_ec_pub_given_as_string
321-
source = Fixtures.pkey("ec-prime256v1")
321+
source = OpenSSL::PKey::EC.generate("prime256v1")
322322
new_key = OpenSSL::PKey.from_data("EC", "group" => source.group.curve_name,
323323
"pub" => source.public_key.to_bn.to_s(2))
324324
assert_instance_of OpenSSL::PKey::EC, new_key
@@ -328,7 +328,7 @@ def test_s_from_data_ec_pub_given_as_string
328328
end
329329

330330
def test_s_from_data_ec_priv_given_as_bn
331-
source = Fixtures.pkey("ec-prime256v1")
331+
source = OpenSSL::PKey::EC.generate("prime256v1")
332332
new_key = OpenSSL::PKey.from_data("EC", "group" => source.group.curve_name,
333333
"priv" => source.private_key.to_bn)
334334
assert_instance_of OpenSSL::PKey::EC, new_key
@@ -338,7 +338,7 @@ def test_s_from_data_ec_priv_given_as_bn
338338
end
339339

340340
def test_s_from_data_ec_priv_given_as_integer
341-
source = Fixtures.pkey("ec-prime256v1")
341+
source = OpenSSL::PKey::EC.generate("prime256v1")
342342
new_key = OpenSSL::PKey.from_data("EC", "group" => source.group.curve_name,
343343
"priv" => source.private_key.to_i)
344344
assert_instance_of OpenSSL::PKey::EC, new_key
@@ -348,9 +348,9 @@ def test_s_from_data_ec_priv_given_as_integer
348348
end
349349

350350
def test_s_from_data_ec_priv_and_pub_given_for_different_curves
351-
[Fixtures.pkey("ec-prime256v1"),
352-
Fixtures.pkey("ec-secp384r1"),
353-
Fixtures.pkey("ec-secp521r1")].each do |source|
351+
[OpenSSL::PKey::EC.generate("prime256v1"),
352+
OpenSSL::PKey::EC.generate("secp384r1"),
353+
OpenSSL::PKey::EC.generate("secp521r1")].each do |source|
354354
new_key = OpenSSL::PKey.from_data("EC", "group" => source.group.curve_name,
355355
"pub" => source.public_key.to_bn.to_s(2),
356356
"priv" => source.private_key.to_i)

0 commit comments

Comments
 (0)