path: root/ext
AgeCommit message (Collapse)Author
2021-04-27Fix Monitor to lock per Fiber, like Mutex [Bug #17827]Benoit Daloze
2021-04-27[ruby/gdbm] Add dependency to gdbm package on mingwLars Kanis
RubyInstaller2 supports metadata tags for installation of dependent MSYS2/MINGW libraries. The openssl gem requires the mingw-openssl package to be installed on the system, which the gem installer takes care about, when this tag is set. The feature is documented here: Fixes
2021-04-27[ruby/pathname] gemspec: Explicitly list 0 executablesOlle Jonsson
This gem exposes no executables.
2021-04-26Fix compiler warnings in objspace_dump.c when assertions are turned onPeter Zhu
Example: ``` In file included from ../../../include/ruby/defines.h:72, from ../../../include/ruby/ruby.h:23, from ../../../gc.h:3, from ../../../ext/objspace/objspace_dump.c:15: ../../../ext/objspace/objspace_dump.c: In function ‘dump_append_ld’: ../../../ext/objspace/objspace_dump.c:95:26: warning: comparison of integer expressions of different signedness: ‘long unsigned int’ and ‘int’ [-Wsign-compare] 95 | RUBY_ASSERT(required <= width); | ^~ ``` Notes: Merged:
2021-04-26Fix some typos by spell checkerRyuta Kamizono
Notes: Merged:
2021-04-25[Doc] Fix a typo s/algorthm/algorithm/wonda-tea-coffee
Notes: Merged:
2021-04-25[ci skip] Fix a typo s/certificiate/certificate/wonda-tea-coffee
Notes: Merged:
2021-04-25[Doc] Fix a typo s/daguten/dakuten/wonda-tea-coffee
Notes: Merged:
2021-04-25[Doc] Fix a typo s/arround/around/wonda-tea-coffee
Notes: Merged:
2021-04-22[ruby/io-console] Move FFI console under libCharles Oliver Nutter
Having the separate dir makes testing difficult and doesn't reflect the structure the gem will eventually have. We can filter these files out if necessary when building the CRuby gem.
2021-04-22[ruby/io-console] Enable building the C extension on TruffleRuby.Duncan MacGregor
2021-04-21[ruby/io-wait] gemspec: Explicitly list 0 executablesOlle Jonsson
This gem exposes no executables, and this clarifies this.
2021-04-20[ruby/zlib] gemspec: Remove unused filesOlle Jonsson
Remove the list of executables.
2021-04-20[ruby/gdbm] gemspec: Set executables to the empty listOlle Jonsson
This gem exposes zero executables.
2021-04-20[ruby/dbm] gemspec: add README & LICENSEOlle Jonsson
2021-04-20[ruby/date] Bump version to 3.1.1Hiroshi SHIBATA
2021-04-13dependency updates卜部昌平
Notes: Merged:
2021-03-31[ruby/openssl] Use #ifdef consistently for HAVE_RB_EXT_RACTOR_SAFETom Stuart
We previously used a mix of both `#if` and `#ifdef`, but the latter is more reliable because it will still work if the macro is undefined.
2021-03-31[ruby/openssl] Fix OpenSSL::Engine build on DebianTom Stuart
On Debian 9 (“stretch”) the `OPENSSL_NO_STATIC_ENGINE` macro is not defined, which causes all the `#if HAVE_ENGINE_LOAD_…` directives to fail with `error: 'HAVE_ENGINE_LOAD_…' is not defined, evaluates to 0 [-Werror,-Wundef]` while building TruffleRuby. We can accomplish the same thing with `#ifdef`, which (of course) works fine when the `HAVE_ENGINE_LOAD…` macros are also undefined. Upstreamed from oracle/truffleruby#2255, which fixed oracle/truffleruby#2254.
2021-03-31[ruby/openssl] pkcs7: keep private key when duplicating PKCS7_SIGNER_INFOKazuki Yamaguchi
ASN1_dup() will not copy the 'pkey' field of a PKCS7_SIGNER_INFO object by design; it is a temporary field kept until the PKCS7 structure is finalized. Let's bump reference counter of the pkey in the original object and use it in the new object, too. This commit also removes PKCS7#add_signer's routine to add the content-type attribute as a signed attribute automatically. This behavior was not documented or tested. This change should not break any working user code since the method was completely useless without the change above.
2021-03-31Enclose the code that was accidentally a link in "tt"aycabta
2021-03-30Text files should end with a newlineNobuyoshi Nakada
2021-03-28[ruby/io-console] bump up to 0.5.9Nobuyoshi Nakada
2021-03-28[ruby/pathname] Fix segfault of Pathname#splitKenichi Kamiya
Fix segmentation fault of Pathname#split when File.split returns non array value [Bug #17755]
2021-03-22rb_enc_interned_str: handle autoloaded encodingsJean Boussier
If called with an autoloaded encoding that was not yet initialized, `rb_enc_interned_str` would crash with a NULL pointer exception. See: Notes: Merged:
2021-03-17Adjusted indents [ci skip]Nobuyoshi Nakada
2021-03-17zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE fileSorah Fukumori
2021-03-16[ruby/openssl] bn: check -1 return from BIGNUM functionsKazuki Yamaguchi
Although the manpage says that BIGNUM functions return 0 on error, OpenSSL versions before 1.0.2n and current LibreSSL versions may return -1 instead. Note that the implementation of OpenSSL::BN#mod_inverse is extracted from BIGNUM_2c() macro as it didn't really share the same function signature with others. Notes: Merged:
2021-03-16[ruby/openssl] Fixed the results of OpenSSL::Timestamp::Response#failure_infoNobuyoshi Nakada
Made stored values `Symbol`s instead of `ID`s. Fixes Co-Authored-By: xtkoba (Tee KOBAYASHI) <> Notes: Merged:
2021-03-16[ruby/openssl] Enhance TLS 1.3 support on LibreSSL 3.2/3.3Jeremy Evans
This defines TLS1_3_VERSION when using LibreSSL 3.2+. LibreSSL 3.2/3.3 doesn't advertise this by default, even though it will use TLS 1.3 in both client and server modes. Changes between LibreSSL 3.1 and 3.2/3.3 broke a few tests, Defining TLS1_3_VERSION by itself fixes 1 test failure. A few tests now fail on LibreSSL 3.2/3.3 unless TLS 1.2 is set as the maximum version, and this adjusts those tests. The client CA test doesn't work in LibreSSL 3.2+, so I've marked that as pending. For the hostname verification, LibreSSL 3.2.2+ has a new stricter hostname verifier that doesn't like subjectAltName such as c* and d.*, so adjust the related tests. With these changes, the tests pass on LibreSSL 3.2/3.3. Notes: Merged:
2021-03-16[ruby/openssl] pkey/ec: remove formKazuki Yamaguchi
The form created an empty EC_GROUP object with the specified EC_METHOD. However, the feature was unfinished and not useful in any way because OpenSSL::PKey::EC::Group did not implement wrappers for necessary functions to set actual parameters for the group, namely EC_GROUP_set_curve() family. EC_GROUP object creation with EC_METHOD explicitly specified is deprecated in OpenSSL 3.0, as it was apparently not intended for use outside OpenSSL. It is still possible to create EC_GROUP, but without EC_METHOD explicitly specified - OpenSSL chooses the appropriate EC_METHOD for the curve type. The<:GFp|:GF2m>, p, a, b) form will continue to work. Notes: Merged:
2021-03-16[ruby/openssl] ssl: remove SSL::SSLContext#tmp_ecdh_callbackKazuki Yamaguchi
The underlying API SSL_CTX_set_tmp_ecdh_callback() was removed by LibreSSL >= 2.6.1 and OpenSSL >= 1.1.0, in other words, it is not supported by any non-EOL versions of OpenSSL. The wrapper was initially implemented in Ruby 2.3 and has been deprecated since Ruby/OpenSSL 2.0 (bundled with Ruby 2.4) with explicit warning with rb_warn(). Notes: Merged:
2021-03-16[ruby/openssl] ssl: retry write on EPROTOTYPE on macOSKazuki Yamaguchi
Errno::EPROTOTYPE is not supposed to be raised by SSLSocket#write. However, on macOS, send(2) which is called via SSL_write() can occasionally return EPROTOTYPE. Retry SSL_write() so that we get a proper error, just as ext/socket does. Reference: Reference: Notes: Merged:
2021-03-16[ruby/openssl] x509store: update rdoc for X509::Store and X509::StoreContextKazuki Yamaguchi
Add more details about each method, and add reference to OpenSSL man pages. Notes: Merged:
2021-03-16[ruby/openssl] x509store: fix memory leak in X509::StoreContext.newKazuki Yamaguchi
The certificate passed as the second argument was not properly free'd in the error paths. Notes: Merged:
2021-03-16[ruby/openssl] x509store: avoid ossl_raise() calls with NULL messageKazuki Yamaguchi
Use the OpenSSL function name that caused the error to generate a better error message. Notes: Merged:
2021-03-16[ruby/openssl] x509store: refactor X509::StoreContext#chainKazuki Yamaguchi
Use ossl_x509_sk2ary() to create an array of OpenSSL::X509::Certificate from STACK_OF(X509). Notes: Merged:
2021-03-16[ruby/openssl] x509store: emit warning if arguments are given to X509::Store.newKazuki Yamaguchi
Anything passed to was always ignored. Let's emit an explicit warning to not confuse users. Notes: Merged:
2021-03-16[ruby/openssl] x509store: let X509::Store#add_file raise TypeError if nil is ↵Kazuki Yamaguchi
given Undo special treatment of nil and simply pass the value to StringValueCStr(). nil was never a valid argument for the method; OpenSSL::X509::StoreError with an unhelpful error message "system lib" was raised in that case. Notes: Merged:
2021-03-16[ruby/openssl] [DOC] Fix RDoc markupNobuhiro IMAI Notes: Merged:
2021-03-16[ruby/openssl] Fix typo in documentationClaus Lensbøl
The socket is called ssl_connection, not connection Notes: Merged:
2021-03-16[ruby/openssl] ssl: initialize verify_mode and verify_hostname with default ↵Kazuki Yamaguchi
values SSLContext's verify_mode expects an SSL_VERIFY_* constant (an integer) and verify_hostname expects either true or false. However, they are set to nil after calling, which is surprising. Set a proper value to them by default: verify_mode is set to OpenSSL::SSL::VERIFY_NONE and verify_hostname is set to false by default. Note that this does not change the default behavior. The certificate verification was never performed unless verify_mode is set to OpenSSL::SSL::VERIFY_PEER by a user. The same applies to verify_hostname. Notes: Merged:
2021-03-16[ruby/openssl] Add compare? method to OpenSSL::PKey that wraps EVP_PKEY_cmp.Colton Jenkins
Explicitly check for type given some conflicting statements within openssl's documentation around EVP_PKEY_cmp and EVP_PKEY_ASN1_METHOD(3). Add documentation with an example for compare? Notes: Merged:
2021-03-16[ruby/openssl] User lower case cipher names for maximum compatibilityBart de Water
We ran into some Linux-based systems not accepting the upper case variant Notes: Merged:
2021-03-16[ruby/openssl] hmac: implement base64digest methodsKazuki Yamaguchi
OpenSSL::HMAC implements the similar interface as ::Digest. Let's add base64digest methods to OpenSSL::HMAC, too, for feature parity. Notes: Merged:
2021-03-16[ruby/openssl] hmac: migrate from the low-level HMAC API to the EVP APIKazuki Yamaguchi
Use the EVP API instead of the low-level HMAC API. Use of the HMAC API has been discouraged and is being marked as deprecated starting from OpenSSL 3.0.0. The two singleton methods OpenSSL::HMAC, HMAC.digest and HMAC.hexdigest are now in lib/openssl/hmac.rb. Notes: Merged:
2021-03-16[ruby/openssl] pkey/ec: deprecate OpenSSL::PKey::EC::Point#mul(ary, ary [, bn])Kazuki Yamaguchi
Deprecate it for future removal. However, I do not expect any application is affected by this. The other form of calling it, PKey::EC::Point#mul(bn [, bn]) remains untouched. PKey::EC::Point#mul calls EC_POINTs_mul(3) when multiple BNs are given as an array. LibreSSL 2.8.0 released on 2018-08 removed the feature and OpenSSL 3.0 which is planned to be released in 2020 will also deprecate the function as there is no real use-case. Notes: Merged:
2021-03-16[ruby/openssl] digest, hmac, ts, x509: use IO.binread in examples where ↵Kazuki Yamaguchi
appropriate may mangle line separator, which will corrupt binary data including DER-encoded X.509 certificates and such. Fixes: Notes: Merged:
2021-03-16[ruby/openssl] pkey: reimplement PKey::DH#compute_key and ↵Kazuki Yamaguchi
PKey::EC#dh_compute_key Use the new OpenSSL::PKey::PKey#derive instead of the raw {EC,}DH_compute_key(), mainly to reduce amount of the C code. Notes: Merged:
2021-03-16[ruby/openssl] pkey: add PKey::PKey#deriveKazuki Yamaguchi
Add OpenSSL::PKey::PKey#derive as the wrapper for EVP_PKEY_CTX_derive(). This is useful for pkey types that we don't have dedicated classes, such as X25519. Notes: Merged: