@@ -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
0 commit comments