Skip to content

Commit bb0d1af

Browse files
committed
Merge branch 'topic/ssl-move-default-dh-params'
* topic/ssl-move-default-dh-params: ssl: move default DH parameters from OpenSSL::PKey::DH
2 parents 5c586ac + eaffc69 commit bb0d1af

File tree

3 files changed

+34
-58
lines changed

3 files changed

+34
-58
lines changed

lib/openssl/pkey.rb

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,3 @@
11
# frozen_string_literal: false
22
module OpenSSL
3-
module PKey
4-
if defined?(OpenSSL::PKey::DH)
5-
6-
class DH
7-
# :nodoc:
8-
DEFAULT_1024 = new <<-_end_of_pem_
9-
-----BEGIN DH PARAMETERS-----
10-
MIGHAoGBAJ0lOVy0VIr/JebWn0zDwY2h+rqITFOpdNr6ugsgvkDXuucdcChhYExJ
11-
AV/ZD2AWPbrTqV76mGRgJg4EddgT1zG0jq3rnFdMj2XzkBYx3BVvfR0Arnby0RHR
12-
T4h7KZ/2zmjvV+eF8kBUHBJAojUlzxKj4QeO2x20FP9X5xmNUXeDAgEC
13-
-----END DH PARAMETERS-----
14-
_end_of_pem_
15-
16-
# :nodoc:
17-
DEFAULT_2048 = new <<-_end_of_pem_
18-
-----BEGIN DH PARAMETERS-----
19-
MIIBCAKCAQEA7E6kBrYiyvmKAMzQ7i8WvwVk9Y/+f8S7sCTN712KkK3cqd1jhJDY
20-
JbrYeNV3kUIKhPxWHhObHKpD1R84UpL+s2b55+iMd6GmL7OYmNIT/FccKhTcveab
21-
VBmZT86BZKYyf45hUF9FOuUM9xPzuK3Vd8oJQvfYMCd7LPC0taAEljQLR4Edf8E6
22-
YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
23-
1bNveX5wInh5GDx1FGhKBZ+s1H+aedudCm7sCgRwv8lKWYGiHzObSma8A86KG+MD
24-
7Lo5JquQ3DlBodj3IDyPrxIv96lvRPFtAwIBAg==
25-
-----END DH PARAMETERS-----
26-
_end_of_pem_
27-
end
28-
29-
# :nodoc:
30-
DEFAULT_TMP_DH_CALLBACK = lambda { |ctx, is_export, keylen|
31-
warn "using default DH parameters." if $VERBOSE
32-
case keylen
33-
when 1024 then OpenSSL::PKey::DH::DEFAULT_1024
34-
when 2048 then OpenSSL::PKey::DH::DEFAULT_2048
35-
else
36-
nil
37-
end
38-
}
39-
40-
else
41-
DEFAULT_TMP_DH_CALLBACK = nil
42-
end
43-
end
443
end

lib/openssl/ssl.rb

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,39 @@ class SSLContext
2929
}.call
3030
}
3131

32+
if defined?(OpenSSL::PKey::DH)
33+
# :nodoc:
34+
DEFAULT_1024 = OpenSSL::PKey::DH.new <<-_end_of_pem_
35+
-----BEGIN DH PARAMETERS-----
36+
MIGHAoGBAJ0lOVy0VIr/JebWn0zDwY2h+rqITFOpdNr6ugsgvkDXuucdcChhYExJ
37+
AV/ZD2AWPbrTqV76mGRgJg4EddgT1zG0jq3rnFdMj2XzkBYx3BVvfR0Arnby0RHR
38+
T4h7KZ/2zmjvV+eF8kBUHBJAojUlzxKj4QeO2x20FP9X5xmNUXeDAgEC
39+
-----END DH PARAMETERS-----
40+
_end_of_pem_
41+
42+
# :nodoc:
43+
DEFAULT_2048 = OpenSSL::PKey::DH.new <<-_end_of_pem_
44+
-----BEGIN DH PARAMETERS-----
45+
MIIBCAKCAQEA7E6kBrYiyvmKAMzQ7i8WvwVk9Y/+f8S7sCTN712KkK3cqd1jhJDY
46+
JbrYeNV3kUIKhPxWHhObHKpD1R84UpL+s2b55+iMd6GmL7OYmNIT/FccKhTcveab
47+
VBmZT86BZKYyf45hUF9FOuUM9xPzuK3Vd8oJQvfYMCd7LPC0taAEljQLR4Edf8E6
48+
YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
49+
1bNveX5wInh5GDx1FGhKBZ+s1H+aedudCm7sCgRwv8lKWYGiHzObSma8A86KG+MD
50+
7Lo5JquQ3DlBodj3IDyPrxIv96lvRPFtAwIBAg==
51+
-----END DH PARAMETERS-----
52+
_end_of_pem_
53+
54+
# :nodoc:
55+
DEFAULT_TMP_DH_CALLBACK = lambda { |ctx, is_export, keylen|
56+
warn "using default DH parameters." if $VERBOSE
57+
case keylen
58+
when 1024 then DEFAULT_1024
59+
when 2048 then DEFAULT_2048
60+
else nil
61+
end
62+
}
63+
end
64+
3265
if !(OpenSSL::OPENSSL_VERSION.start_with?("OpenSSL") &&
3366
OpenSSL::OPENSSL_VERSION_NUMBER >= 0x10100000)
3467
DEFAULT_PARAMS.merge!(
@@ -315,7 +348,7 @@ def client_cert_cb
315348
end
316349

317350
def tmp_dh_callback
318-
@context.tmp_dh_callback || OpenSSL::PKey::DEFAULT_TMP_DH_CALLBACK
351+
@context.tmp_dh_callback || OpenSSL::SSL::SSLContext::DEFAULT_TMP_DH_CALLBACK
319352
end
320353

321354
def tmp_ecdh_callback

test/test_pkey_dh.rb

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,6 @@
44
class OpenSSL::TestPKeyDH < OpenSSL::PKeyTestCase
55
NEW_KEYLEN = 256
66

7-
def test_DEFAULT_parameters
8-
list = {
9-
1024 => OpenSSL::PKey::DH::DEFAULT_1024,
10-
2048 => OpenSSL::PKey::DH::DEFAULT_2048,
11-
}
12-
13-
list.each do |expected_size, dh|
14-
assert_equal expected_size, dh.p.num_bits
15-
assert_predicate dh.p, :prime?
16-
result, remainder = (dh.p - 1) / 2
17-
assert_predicate result, :prime?
18-
assert_equal 0, remainder
19-
assert_no_key dh
20-
end
21-
end
22-
237
def test_new
248
dh = OpenSSL::PKey::DH.new(NEW_KEYLEN)
259
assert_key(dh)

0 commit comments

Comments
 (0)