| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
I got the warning while running "make test-all":
Leaked file descriptor: TestFiberIOBuffer#test_write_nonblock: 9 : #<UNIXSocket:fd 9>
Closed file descriptor: TestFiberIOBuffer#test_read_write_blocking: 9
Leaked file descriptor: TestFiberIOBuffer#test_timeout_after: 10 : #<UNIXSocket:fd 10>
Closed file descriptor: TestFiberIOBuffer#test_read_nonblock: 10
|
|
|
|
|
|
|
| |
Replace EVP_PKEY_CTX_new_id() with the new EVP_PKEY_CTX_new_from_name()
which takes the algorithm name in a string instead of in an NID.
https://github.com/ruby/openssl/commit/d6535d13d1
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenSSL 3.0
OpenSSL 3.0's EVP_PKEY_get0() returns NULL for provider-backed pkeys.
This causes segfault because it was supposed to never return NULL
before.
We can't check the existence of public key components in this way on
OpenSSL 3.0. Let's just skip it for now.
https://github.com/ruby/openssl/commit/ccdb6f7bfa
|
|
|
|
|
|
|
| |
Use the combination of TLS 1.2 and TLS 1.3 instead of TLS 1.1 and TLS
1.2 so that will the test case will be run on latest platforms.
https://github.com/ruby/openssl/commit/e168df0f35
|
|
|
|
|
|
|
| |
Use a different invalid data example to prevent SSLSocket#accept from
reaching EOF.
https://github.com/ruby/openssl/commit/2e089c1916
|
|
|
|
|
|
|
| |
Add all SSL_OP_* constants defined in OpenSSL 3.0.0 which are not
specific to DTLS.
https://github.com/ruby/openssl/commit/b1ee2f23b2
|
|
|
|
|
|
|
|
|
|
|
|
| |
The entire ENGINE API is deprecated in OpenSSL 3.0 in favor of the new
"Provider" concept.
OpenSSL::Engine will not be defined when compiled with OpenSSL 3.0.
We would need a way to interact with providers from Ruby programs, but
since the concept is completely different from the ENGINE API, it will
not be through the current OpenSSL::Engine interface.
https://github.com/ruby/openssl/commit/69a27d8de4
|
|
|
|
|
|
|
|
| |
EVP_MD_CTX_copy() doesn't seem to work as intended on HMAC EVP_MD_CTX
on OpenSSL 3.0.0 and causes a double free. I haven't found the root
problem yet, but let's skip the test case for now.
https://github.com/ruby/openssl/commit/4699581639
|
|
|
|
|
|
|
| |
According to the manpage, the "siglen" parameter must be initialized
beforehand.
https://github.com/ruby/openssl/commit/6a60c7b2e7
|
|
|
|
|
|
|
| |
Do not attempt to actually use all algorithms. Not all algorithms listed
in OpenSSL::Cipher.ciphers are always available.
https://github.com/ruby/openssl/commit/91d04f991f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenSSL 3.0 made EVP_PKEY immutable. This means we can only have a const
pointer of the low level struct and the following methods can no longer
be provided when linked against OpenSSL 3.0:
- OpenSSL::PKey::RSA#set_key
- OpenSSL::PKey::RSA#set_factors
- OpenSSL::PKey::RSA#set_crt_params
- OpenSSL::PKey::DSA#set_pqg
- OpenSSL::PKey::DSA#set_key
- OpenSSL::PKey::DH#set_pqg
- OpenSSL::PKey::DH#set_key
- OpenSSL::PKey::EC#group=
- OpenSSL::PKey::EC#private_key=
- OpenSSL::PKey::EC#public_key=
There is no direct replacement for this functionality at the moment.
I plan to introduce a wrapper around EVP_PKEY_fromdata(), which takes
all key components at once to construct an EVP_PKEY.
https://github.com/ruby/openssl/commit/6848d2d969
|
|
|
|
|
|
|
|
| |
OpenSSL::PKey::EC#generate_key! will not work on OpenSSL 3.0 because
keys are made immutable. Users should use OpenSSL::PKey.generate_key
instead.
https://github.com/ruby/openssl/commit/5e2e66cce8
|
|
|
|
|
|
|
|
| |
OpenSSL::PKey::DH#generate_key! will not work on OpenSSL 3.0 because
keys are made immutable. Users should use OpenSSL::PKey.generate_key
instead.
https://github.com/ruby/openssl/commit/8ee6a582c7
|
|
|
|
|
|
|
|
| |
Similarly to DH#compute_key, work around it by constructing a
SubjectPublicKeyInfo. This should be considered as a temporary
implementation.
https://github.com/ruby/openssl/commit/fc9aabc18d
|
|
|
|
|
|
|
|
|
|
|
|
| |
DH#set_key will not work on OpenSSL 3.0 because keys are immutable.
For now, let's reimplement DH#compute_key by manually constructing a
DER-encoded SubjectPublicKeyInfo structure and feeding it to
OpenSSL::PKey.read.
Eventually, we should implement a new method around EVP_PKEY_fromdata()
and use it instead.
https://github.com/ruby/openssl/commit/46ca47060c
|
|
|
|
|
|
|
| |
We can use it to implement OpenSSL::PKey::PKey#initialize_copy. This
should work on all key types, not just DH/DSA/EC/RSA types.
https://github.com/ruby/openssl/commit/66cd8cbaaf
|
|
|
|
|
|
|
|
|
| |
Allocate an EVP_PKEY when the content is ready: when #initialize
or #initialize_copy is called, rather than when a T_DATA is allocated.
This is more natural because the lower level API has been deprecated
and an EVP_PKEY is becoming the minimum unit of handling keys.
https://github.com/ruby/openssl/commit/74f6c61756
|
|
|
|
|
|
|
| |
Passing NULL to ossl_pkey_new() makes no sense in the first place, and
in fact it is ensured not to be NULL in all cases.
https://github.com/ruby/openssl/commit/316cb2a41f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OpenSSL 3.0 has rewritten routines to load pkeys (PEM_read_bio_* and
d2i_* functions) around the newly introduced OSSL_DECODER API.
This comes with a slight behavior change. They now decrypt and parse
each encountered PEM block, then check the kind of the block. This used
to be the reverse: they checked the PEM header to see the kind, and then
decrypted the content. This means that the password callback may now be
called repeatedly.
Let's use the OSSL_DECODER API directly on OpenSSL 3.0 so that the
return value from the password callback will be reused automatically.
https://github.com/ruby/openssl/commit/a84ea531bb
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PEM-encoded private keys are sometimes stored together with irrelevant
PEM blocks, such as the corresponding X.509 certificate.
PEM_read_bio_*() family automatically skips unknown PEM blocks, but on
OpenSSL 3.0 we will be using the new OSSL_DECODER API instead due to
some breaking changes around the password callback.
Let's add a test case so that we won't break the current behavior.
https://github.com/ruby/openssl/commit/8c185e0ae5
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
https://github.com/ruby/psych/commit/e7bbf26cb2
|
| |
|
|
|
|
| |
https://github.com/ruby/psych/commit/75ab76e788
|
| |
|
|
|
|
| |
https://github.com/ruby/logger/commit/cdeddb2f67
|
|
|
|
| |
https://github.com/ruby/irb/commit/c24a8e2483
|
|
|
|
| |
https://github.com/ruby/irb/commit/4cade4b7e5
|
| |
|
|
|
|
| |
https://github.com/ruby/reline/commit/ba97f3bd87
|
|
|
|
| |
https://github.com/ruby/reline/commit/2ce2696d6e
|
|
|
|
| |
https://github.com/ruby/reline/commit/96067bc13c
|
|
|
|
| |
https://github.com/ruby/reline/commit/9bf2ca692e
|
|
|
|
| |
https://github.com/ruby/reline/commit/16aa20c380
|
|
|
|
| |
https://github.com/ruby/reline/commit/7e5dbe4750
|
|
|
|
| |
https://github.com/ruby/reline/commit/c4bb1bfd79
|
|
|
|
| |
https://github.com/ruby/reline/commit/4b7fa6b213
|
|
|
|
|
|
| |
jruby needs terminal control with Windows API on classic console
https://github.com/ruby/reline/commit/b61bc43374
|
|
|
|
|
|
|
|
| |
Windows Terminal does smart screen clearing when \e 2 J (not clear entire screen but scrolls down just needed)
On consoles not support sequences, ruby still converts it to API call.
https://github.com/ruby/reline/commit/c00930dab9
|
|
|
|
|
|
|
|
|
|
|
|
| |
ScrollConsoleScreenBuffer can't scroll window of Windows Terminal.
Use LF to sctoll.
Microsoft says
```In the virtual terminal sequences world, the size of the window and the size of the screen buffer are fixed to the same value.
```
https://docs.microsoft.com/en-us/windows/console/window-and-screen-buffer-size
https://github.com/ruby/reline/commit/9ff3c70732
|
|
|
|
|
|
|
|
| |
This reverts commit https://github.com/ruby/reline/commit/6009b3ef7ab7.
To merge a Pull Request...
https://github.com/ruby/reline/commit/83021f4267
|
|
|
|
|
|
|
|
| |
This reverts commit https://github.com/ruby/reline/commit/1bb071bcf5a9.
To merge a Pull Request...
https://github.com/ruby/reline/commit/e9fe1b1305
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Treated:
::try_convert
#write
#<<
#flush
#tell
#seek
#pos=
#rewind
#eof
|
| |
|
|
|
|
| |
https://github.com/ruby/pp/commit/c66d1b9cdc
|
|
|
|
|
|
|
|
|
|
|
| |
If `bundler _<version>_` is given, I guess the most reasonable approach
is to completely skip version switching, because the user is technically
opting out of it. But since binstubs completely remove this argument
from `ARGV` after processing it, we have no way of detecting that it was
actually passed in the first place in order to skip the feature. So we
set `BUNDLER_VERSION` explicitly in this case.
https://github.com/rubygems/rubygems/commit/e0f360d6d7
|
|
|
|
| |
https://github.com/rubygems/rubygems/commit/23178f7d7b
|