Skip to content

Commit e104b59

Browse files
committed
[compat] make sure PKey::EC#generate_key! exists
1 parent 80e6df0 commit e104b59

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/main/java/org/jruby/ext/openssl/PKeyEC.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ public IRubyObject check_key(final ThreadContext context) {
409409
return context.runtime.getTrue(); // TODO not implemented stub
410410
}
411411

412-
@JRubyMethod(name = "generate_key")
412+
@JRubyMethod(name = "generate_key!", alias = "generate_key")
413413
public PKeyEC generate_key(final ThreadContext context) {
414414
try {
415415
ECGenParameterSpec genSpec = new ECGenParameterSpec(getCurveName());

src/test/ruby/ec/test_ec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,22 @@
33

44
class TestEC < TestCase
55

6+
def test_generate
7+
assert_raise(OpenSSL::PKey::ECError) { OpenSSL::PKey::EC.generate("non-existent") }
8+
g = OpenSSL::PKey::EC::Group.new("prime256v1")
9+
ec = OpenSSL::PKey::EC.generate(g)
10+
assert_equal(true, ec.private?)
11+
ec = OpenSSL::PKey::EC.generate("prime256v1")
12+
assert_equal(true, ec.private?)
13+
end
14+
15+
def test_generate_key
16+
ec = OpenSSL::PKey::EC.new("prime256v1")
17+
assert_equal false, ec.private?
18+
ec.generate_key!
19+
assert_equal true, ec.private?
20+
end #if !openssl?(3, 0, 0)
21+
622
def test_PUBKEY
723
p256 = Fixtures.pkey("p256")
824
p256pub = OpenSSL::PKey::EC.new(p256.public_to_der)

0 commit comments

Comments
 (0)