Skip to content

Commit 55c9ea1

Browse files
committed
Refactor ed25519 key generation and checks in tests
1 parent 7a27ea9 commit 55c9ea1

File tree

4 files changed

+23
-54
lines changed

4 files changed

+23
-54
lines changed

test/openssl/test_x509cert.rb

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -223,24 +223,7 @@ def test_sign_and_verify_dsa_md5
223223
end
224224

225225
def test_sign_and_verify_ed25519
226-
# See test_ed25519 in test_pkey.rb
227-
228-
# Ed25519 is not FIPS-approved.
229-
omit_on_fips
230-
231-
begin
232-
ed25519 = OpenSSL::PKey::generate_key("ED25519")
233-
rescue OpenSSL::PKey::PKeyError => e
234-
# OpenSSL < 1.1.1
235-
#
236-
pend "Ed25519 is not implemented" unless openssl?(1, 1, 1)
237-
238-
raise e
239-
end
240-
241-
# See ASN1_item_sign_ctx in ChangeLog for 3.8.1: https://github.com/libressl/portable/blob/master/ChangeLog
242-
pend 'ASN1 signing with Ed25519 not yet working' unless openssl? or libressl?(3, 8, 1)
243-
226+
ed25519 = generate_ed25519
244227
cert = issue_cert(@ca, ed25519, 1, [], nil, nil, digest: nil)
245228
assert_equal(true, cert.verify(ed25519))
246229
end

test/openssl/test_x509crl.rb

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -205,24 +205,7 @@ def test_sign_and_verify
205205
end
206206

207207
def test_sign_and_verify_ed25519
208-
# See test_ed25519 in test_pkey.rb
209-
210-
# Ed25519 is not FIPS-approved.
211-
omit_on_fips
212-
213-
begin
214-
ed25519 = OpenSSL::PKey::generate_key("ED25519")
215-
rescue OpenSSL::PKey::PKeyError => e
216-
# OpenSSL < 1.1.1
217-
#
218-
pend "Ed25519 is not implemented" unless openssl?(1, 1, 1)
219-
220-
raise e
221-
end
222-
223-
# See ASN1_item_sign_ctx in ChangeLog for 3.8.1: https://github.com/libressl/portable/blob/master/ChangeLog
224-
pend 'ASN1 signing with Ed25519 not yet working' unless openssl? or libressl?(3, 8, 1)
225-
208+
ed25519 = generate_ed25519
226209
cert = issue_cert(@ca, ed25519, 1, [], nil, nil, digest: nil)
227210
crl = issue_crl([], 1, Time.now, Time.now+1600, [],
228211
cert, ed25519, nil)

test/openssl/test_x509req.rb

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -137,24 +137,7 @@ def test_sign_and_verify_dsa_md5
137137
end
138138

139139
def test_sign_and_verify_ed25519
140-
# See test_ed25519 in test_pkey.rb
141-
142-
# Ed25519 is not FIPS-approved.
143-
omit_on_fips
144-
145-
begin
146-
ed25519 = OpenSSL::PKey::generate_key("ED25519")
147-
rescue OpenSSL::PKey::PKeyError => e
148-
# OpenSSL < 1.1.1
149-
#
150-
pend "Ed25519 is not implemented" unless openssl?(1, 1, 1)
151-
152-
raise e
153-
end
154-
155-
# See ASN1_item_sign_ctx in ChangeLog for 3.8.1: https://github.com/libressl/portable/blob/master/ChangeLog
156-
pend 'ASN1 signing with Ed25519 not yet working' unless openssl? or libressl?(3, 8, 1)
157-
140+
ed25519 = generate_ed25519
158141
req = issue_csr(0, @dn, ed25519, nil)
159142
assert_equal(true, req.verify(ed25519))
160143
end

test/openssl/utils.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,26 @@ def get_subject_key_id(cert, hex: true)
106106
end
107107
end
108108

109+
def generate_ed25519
110+
# Ed25519 is not FIPS-approved.
111+
omit_on_fips
112+
113+
begin
114+
ed25519 = OpenSSL::PKey::generate_key("ED25519")
115+
rescue OpenSSL::PKey::PKeyError => e
116+
# OpenSSL < 1.1.1
117+
#
118+
pend "Ed25519 is not implemented" unless openssl?(1, 1, 1)
119+
120+
raise e
121+
end
122+
123+
# See ASN1_item_sign_ctx in ChangeLog for 3.8.1: https://github.com/libressl/portable/blob/master/ChangeLog
124+
pend 'ASN1 signing with Ed25519 not yet working' unless openssl? or libressl?(3, 8, 1)
125+
126+
ed25519
127+
end
128+
109129
def openssl?(major = nil, minor = nil, fix = nil, patch = 0, status = 0)
110130
return false if OpenSSL::OPENSSL_VERSION.include?("LibreSSL")
111131
return true unless major

0 commit comments

Comments
 (0)