The variable-sized alloca makes me nervous, even though it turned out to be safe: the Finished message is 36 bytes long in SSL 3.0 and is usually smaller in newer protocol versions. However, the alloca is not actually needed since we can...rhenium (Kazuki Yamaguchi)
Fix CI with OpenSSL master in the FIPS mode. With the fips provider in OpenSSL master, HMAC keys shorter than 112 bits are rejected and MD5 is disallowed. Update tests to use SHA-2 and longer keys. https://github.com/ruby/openssl/commit...rhenium (Kazuki Yamaguchi)
Digest::SHA1#update fails when a very large String is passed in a single call. Passing 2**29 bytes (512 MB) or more at once does not update the message length counter correctly, which results in producing an incorrect output. $ rub...rhenium (Kazuki Yamaguchi)
Embarrassingly, the previous commits introduced OPENSSL_cleanse() calls against the temporary struct instead of the buffer content. Thanks to nagachika for noticing. https://github.com/ruby/openssl/commit/8eca3efad4rhenium (Kazuki Yamaguchi)
Since PBKDF2 runs single-threaded and is typically configured to take several hundred milliseconds or longer, it is a perfect candidate to be run without the GVL. https://github.com/ruby/openssl/commit/2a24966414rhenium (Kazuki Yamaguchi)
scrypt is another password hashing algorithm, so releasing the GVL is useful. https://github.com/ruby/openssl/commit/dd2f6ba892rhenium (Kazuki Yamaguchi)
OpenSSL's master branch is changing functions to return const pointers where the returned objects are not meant to be modified by the caller. Update ossl_*_new() to take const pointers accordingly. Unfortunately, *_dup() in older versio...rhenium (Kazuki Yamaguchi)
ossl_ec_new() was removed in commit https://github.com/ruby/openssl/commit/94aeab2f265d (pkey: simplify ossl_pkey_new(), 2017-03-16), but it forgot to remove the declaration while doing so. https://github.com/ruby/openssl/commit/faad7a0811rhenium (Kazuki Yamaguchi)
ASN1_STRING has been made opaque in OpenSSL's master branch. Use the new accessor functions instead of accessing fields directly. Other uses of ASN1_STRING fields were already updated in <https://github.com/ruby/openssl/pull/978>. This ...rhenium (Kazuki Yamaguchi)
OpenSSL master added support for RFC 7919 groups in TLS 1.2. They are preferred over SSLContext#tmp_dh= or #tmp_dh_callback= values if the client advertises them in the supported_groups extension. https://github.com/ruby/openssl/commit/...rhenium (Kazuki Yamaguchi)