Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle empty signed data in PKCS7 #690

Closed
wants to merge 227 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
227 commits
Select commit Hold shift + click to select a range
12250c7
Add 'ciphersuites=' method to allow setting of TLSv1.3 cipher suites …
kmdz1 Feb 1, 2022
ac1eccc
Rakefile: remove outdated sync tasks
rhenium Feb 1, 2022
b28df90
Install openssl with vcpkg on mswin
nobu Mar 20, 2022
d9111c2
Merge pull request #504 from nobu/vcpkg-openssl
nobu Mar 20, 2022
699e274
Added 3.1
hsbt Mar 24, 2022
f2d072c
Use actions/checkout@v3
hsbt Mar 24, 2022
e25fb0d
Fix build with LibreSSL 3.5
jeremyevans Mar 25, 2022
9f901dc
Test on LibreSSL 3.4 and 3.5
jeremyevans Mar 25, 2022
b028152
Fix operator precedence in OSSL_OPENSSL_PREREQ and OSSL_LIBRESSL_PREREQ
jeremyevans Mar 25, 2022
bf19827
Fix test of cipher name to pass in LibreSSL 3.4
jeremyevans Mar 25, 2022
a1f6cbc
Let OpenSSL choose the digest if digest for Openssl::OCSP::Request#si…
jackorp Apr 12, 2022
27efcd7
Let OpenSSL choose the digest if digest for Openssl::OCSP::BasicRespo…
jackorp Apr 12, 2022
cf2f019
Fix formatting in docs
peterzhu2118 Apr 13, 2022
cbfb9e3
Merge pull request #508 from ruby/pz-fix-docs
hsbt Apr 15, 2022
1588686
Merge pull request #505 from ruby/update-actions
hsbt Apr 15, 2022
553b328
Merge pull request #507 from jackorp/ocsp-use-sha256
rhenium Apr 16, 2022
0fb8d1b
[CI] add Ubuntu-22.04 and update mswin, all are OpenSSL 3
MSP-Greg May 18, 2022
417c1ab
Merge pull request #514 from MSP-Greg/00-ci-openssl-3
rhenium May 27, 2022
e9798b1
Merge pull request #486 from skaes/fix-with-openssldir-option
rhenium May 27, 2022
34ae7d9
Check for OpenSSL functions in headers
XrXr Jun 27, 2022
862d92d
Strip trailing spaces [ci skip]
nobu Jul 8, 2022
8c96a69
Skip a new test when old OpenSSL
nobu Jul 9, 2022
b314464
Merge pull request #524 from nobu/old-openssl
nobu Jul 9, 2022
8d264d3
Pass arguments to check macro presence
XrXr Jul 11, 2022
8752d9e
Merge pull request #520 from XrXr/check-in-header
rhenium Jul 25, 2022
626b043
[CI] TestHMAC#test_dup - remove 'pend' for OpenSSL 3
MSP-Greg Jul 26, 2022
cc876f5
[CI] test.yml - test-openssls - use 1.1.1q, 3.0.5
MSP-Greg Jul 26, 2022
1955728
Merge pull request #528 from MSP-Greg/00-test-current-versions
rhenium Jul 28, 2022
d36e6e5
Merge pull request #529 from MSP-Greg/00-test-hmac
rhenium Jul 28, 2022
65530b8
ssl: enable generating keying material from SSL sessions
Aug 3, 2022
ed83759
Merge pull request #530 from madblobfish/openssl-add-rfc5705
rhenium Aug 31, 2022
7f5b5ad
Merge branch 'maint-3.0'
rhenium Sep 8, 2022
fceb978
bump version number to 3.1.0.pre
rhenium Sep 8, 2022
f5b82e8
ssl: fix "warning: ‘ctx’ may be used uninitialized"
rhenium Sep 9, 2022
3b63232
Add support to SSL_CTX_set_keylog_callback
cdelafuente-r7 Aug 29, 2022
173be66
Merge pull request #536 from cdelafuente-r7/add_keylog_cb
rhenium Sep 20, 2022
65876bd
Use default `IO#timeout` if possible. (#547)
ioquatix Oct 7, 2022
471340f
Use default `IO#timeout` if possible.
ioquatix Oct 7, 2022
2115cf3
Merge pull request #548 from ruby/io-timeout-redux
rhenium Oct 7, 2022
fd5eaa6
Call out insecure PKCS #1 v1.5 default padding for RSA
bdewater Oct 8, 2022
ff9af07
Merge pull request #549 from bdewater/rsa-pkcs1v15-doc
rhenium Oct 17, 2022
e25de6b
proper function prototypes for openssl
shyouhei Sep 21, 2022
4d0971c
define BIGNUM_2cr macro for BN function that takes context and
btoews Oct 17, 2022
4619ab3
add BN#mod_sqrt
btoews Oct 17, 2022
5befde7
add document-method for BN#mod_inverse
btoews Oct 17, 2022
1ddbf28
Merge pull request #553 from btoews/ossl_bn_mod_sqrt
rhenium Oct 17, 2022
32648da
Use SHA256 instead of SHA1 where needed in tests.
jackorp Oct 18, 2022
17fb6f1
Merge pull request #554 from jackorp/sha256v2
rhenium Nov 23, 2022
475b2bf
Use EVP_Digest{Sign,Verify} when available
botovq Nov 10, 2022
953592a
Allow empty string to OpenSSL::Cipher#update
unasuke Nov 23, 2022
9bdd39a
Enable HKDF support for LibreSSL 3.6 and later
botovq Nov 23, 2022
1b419b9
Merge pull request #569 from botovq/libressl-evp-hkdf
rhenium Nov 23, 2022
c1639f1
Merge pull request #568 from unasuke/empty_string_to_cipher_update
rhenium Nov 23, 2022
728dc91
Fixes OPENSSL_LIBRARY_VERSION description on documentation (#559)
hbontempo-br Nov 23, 2022
f2311d5
Merge pull request #560 from botovq/libressl-digest-sign-verify
rhenium Nov 23, 2022
81fefce
Added dependebot for github actions
hsbt Nov 29, 2022
b67aaf9
Check for functions with arguments
nobu Jul 9, 2022
c002382
Constify when building with OpenSSL 3
nobu Jul 8, 2022
91657a7
Suppress deprecation warnings by OpenSSL 3
nobu Jul 9, 2022
a11acb5
Merge pull request #574 from ruby/dependabot
hsbt Nov 29, 2022
9c24dcc
Actions - Use Ubuntu 20.04 for 1.1.1 CI, misc fixes
MSP-Greg Nov 28, 2022
ea0a112
[DOC] Remove duplicate doc
nobu Dec 13, 2022
b957145
Rake and test-unit are only for development
nobu Dec 13, 2022
c282090
Merge pull request #578 from nobu/depend
nobu Dec 13, 2022
87e3215
Merge pull request #573 from MSP-Greg/master-actions-update
rhenium Dec 18, 2022
ff2fe4b
Strip trailing spaces [ci skip]
nobu Dec 18, 2022
fd40742
.github/workflows/test.yml: update LibreSSL versions
rhenium Oct 18, 2022
bbc540f
test/openssl/test_asn1.rb: skip failing tests on LibreSSL 3.6.0
rhenium Oct 17, 2022
6a188f1
test/openssl/test_asn1.rb: remove pend for unsupported LibreSSL versions
rhenium Oct 17, 2022
935698e
ssl: update TLS1_3_VERSION workaround for older LibreSSL versions
rhenium Oct 17, 2022
289f6e0
ssl: disable NPN support on LibreSSL
rhenium Oct 17, 2022
3a926e1
Merge pull request #579 from rhenium/ky/libressl-3.7.0
rhenium Dec 22, 2022
1ccb98c
Merge pull request #575 from nobu/check-in-header
rhenium Dec 22, 2022
1b60365
Merge pull request #576 from nobu/openssl3-warnings
rhenium Dec 22, 2022
a3d230d
test/openssl/test_ssl.rb: do not run SSL tests if not available
rhenium Dec 22, 2022
eed3894
ssl: remove OpenSSL::ExtConfig
rhenium Dec 22, 2022
b0cfac6
Undefine `OpenSSL::SSL` for no socket platforms
kateinoigakukun Oct 31, 2022
75bbc8a
Merge pull request #558 from kateinoigakukun/katei/fix-no-sock-support
rhenium Dec 22, 2022
5cb3bfb
Merge branch 'maint-3.0'
rhenium Dec 23, 2022
be3dc24
Ruby/OpenSSL 3.1.0
rhenium Dec 22, 2022
6fb3499
pkey/ec: constify
nobu Dec 23, 2022
804356a
Merge pull request #584 from nobu/constify
nobu Dec 23, 2022
c263cd4
Merge branch 'maint-3.0'
rhenium Dec 23, 2022
5f6abff
Refactor Buffering consume_rbuff and getbyte methods
Maumagnaguagno Dec 26, 2022
5a36cc3
[DOC] Remove repeated example from Digest
Maumagnaguagno Dec 27, 2022
4f1267d
Merge pull request #587 from Maumagnaguagno/doc-digest
hsbt Dec 28, 2022
685b72e
Import the latest version of envutil.rb
hsbt Jan 4, 2023
520601e
Added CoreAssertions
hsbt Jan 4, 2023
0d4cd8b
Stop AutoRunner with test-unit
hsbt Jan 4, 2023
ae78467
Do not require test file in a forked process in tests
andrykonchin Jan 3, 2023
08ae86d
Merge pull request #591 from andrykonchin/fix-tests-timeout-on-truffl…
rhenium Jan 4, 2023
79aa330
Merge pull request #593 from ruby/update-envutil
rhenium Jan 4, 2023
9493d4a
Skip OpenSSL::TestHMAC#test_dup when running with RHEL9
hsbt Jan 30, 2023
74ccaa5
Stub gemspec for JRuby
headius Feb 8, 2023
aeee125
Use ruby/actions/.github/workflows/ruby_versions.yml@master
hsbt Feb 16, 2023
0640664
Try to run with TruffleRuby
hsbt Feb 16, 2023
d7f90c7
Fix missing needs call
hsbt Feb 16, 2023
25352f4
Exclude truffleruby with macos-latest
hsbt Feb 16, 2023
1ef5e76
Merge pull request #599 from ruby/improve-actions
hsbt Feb 16, 2023
d0f07df
Merge pull request #596 from ruby/backport-bug-19386
hsbt Feb 16, 2023
d277123
skip failing test with truffleruby and ubuntu-22.04
hsbt Feb 16, 2023
9ea934a
Merge pull request #600 from ruby/skip-failing-test
hsbt Feb 16, 2023
b5ef6d1
Merge pull request #598 from headius/jruby_openssl
hsbt Feb 21, 2023
af27f50
.github/workflows/test.yml: Update OpenSSL versions
junaruga Feb 21, 2023
fbb24fd
Merge pull request #602 from junaruga/wip/ci-openssl
hsbt Mar 9, 2023
fc4629d
Relax error message check for OpenSSL 3.1
nobu Mar 15, 2023
94fb921
Merge pull request #607 from nobu/certificate-verify-failure
nobu Mar 16, 2023
a14055a
Update test libraries from https://github.com/ruby/ruby/commit/b4e438…
hsbt Mar 24, 2023
98099d3
Register global variables before assignment
nobu Apr 7, 2023
6182ac0
Merge pull request #613 from nobu/global_variable
nobu Apr 7, 2023
4312b07
Add rdoc as a development dependency.
junaruga Apr 21, 2023
037c181
Merge pull request #616 from junaruga/wip/rdoc-dev-dep
hsbt Apr 24, 2023
18b0172
CI: Add OpenSSL FIPS mode case.
junaruga Mar 16, 2023
c5b2bc1
Implement FIPS functions on OpenSSL 3.
junaruga Mar 16, 2023
b4228cb
Fix warnings about the OPENSSL_FIPS macro in OpenSSL 1.1.
junaruga May 16, 2023
82da58e
Merge pull request #621 from junaruga/wip/fips-defined
junaruga May 16, 2023
b880a02
Revert "Skip OpenSSL::TestHMAC#test_dup when running with RHEL9"
hsbt May 19, 2023
08b0ed7
Merge pull request #622 from ruby/revert-skip-test-rhel9
hsbt May 19, 2023
a832f5c
CI: Enable the verbose mode in the mkmf.rb.
junaruga May 22, 2023
78e9197
Merge pull request #623 from junaruga/wip/enable-mkmf-verbose
junaruga May 23, 2023
121b3b2
Revert "CI: Enable the verbose mode in the mkmf.rb."
junaruga May 23, 2023
08e1981
CI: Enable the verbose mode in the mkmf.rb by env MAKEFLAGS.
junaruga May 23, 2023
cb8f4ee
Merge pull request #624 from junaruga/wip/enable-mkmf-verbose-env
junaruga May 24, 2023
22e601a
Remove usage of IO internals. (#627)
ioquatix May 29, 2023
b551eb8
Append flags from environment variables.
junaruga May 30, 2023
bd7b593
Merge pull request #629 from junaruga/wip/env-appended-flags
junaruga May 31, 2023
8aee873
Print the Ruby and compiler info or the command itself before compiling.
junaruga May 31, 2023
2c7c6de
Implement Write Barrier for all OpenSSL types
byroot Mar 13, 2023
01f06fd
Merge pull request #630 from junaruga/wip/print-compiler-version
junaruga Jun 1, 2023
5ff4a31
Workaround: Fix OpenSSL::PKey.read that cannot parse PKey in the FIPS…
junaruga Apr 12, 2023
ab92baf
Drop a common logic disabling the FIPS mode in the tests.
junaruga Apr 13, 2023
8149cdf
CI: Add the test/openssl/test_pkey.rb on the FIPS mode case.
junaruga Apr 17, 2023
f781d17
Rakefile: Print the message with `Rake.rake_output_message`.
junaruga Jun 1, 2023
5f505c5
Merge pull request #632 from junaruga/wip/rake-debug-compiler-message
junaruga Jun 1, 2023
7e411b4
Merge pull request #615 from junaruga/wip/fips-read
junaruga Jun 1, 2023
79786ca
CI: Rename the key name "foo_bar" (underscore) to "foo-bar" (hyphen).
junaruga Jun 1, 2023
2a95b97
extconf.rb: apply RUBY_OPENSSL_EXT{C,LD}FLAGS after checking features
rhenium Jun 1, 2023
7d6d732
Merge pull request #604 from casperisfine/ssl-write-barrier
rhenium Jun 2, 2023
35456a3
Merge pull request #634 from junaruga/wip/ci-rafactor-key-names
junaruga Jun 2, 2023
3456770
CI: Upgrade OpenSSL and LibreSSL versions.
junaruga Jun 2, 2023
93548ae
Fix modular square root test with LibreSSL >= 3.8
botovq Apr 11, 2023
c8aedba
Merge pull request #636 from junaruga/wip/upgrade-openssl-versions
rhenium Jun 6, 2023
cdec3c7
Merge pull request #633 from rhenium/ky/extconf-append-flags-last
rhenium Jun 6, 2023
f6ba75e
Drop support for Ruby 2.6
rhenium Jun 6, 2023
4b2ba7b
pkey: use unsigned type for bit fields
rhenium Jun 6, 2023
7757447
Merge pull request #638 from rhenium/ky/pkey-fix-warning-single-bit-b…
rhenium Jun 7, 2023
6f1c061
Merge pull request #639 from rhenium/ky/require-ruby-2.7
rhenium Jun 7, 2023
10833aa
ssl: adjust styles of ossl_start_ssl()
rhenium Jun 7, 2023
5113777
ssl: adjust "certificate verify failed" error on SSL_ERROR_SYSCALL
rhenium Jun 7, 2023
c309745
Revert "Relax error message check for OpenSSL 3.1"
rhenium Jun 7, 2023
52402f6
CI: Check compiler warnings.
junaruga May 29, 2023
7089468
Merge pull request #631 from junaruga/wip/check-compiler-warnings
rhenium Jun 8, 2023
f6e57e1
CI: Fix a typo in the comment. [ci skip]
junaruga Jun 12, 2023
24966c6
Merge pull request #641 from junaruga/wip/ci-fix-typo
junaruga Jun 12, 2023
58ce7fa
.github/workflows/test.yml: add provider load path for Windows
QWYNG Jun 11, 2023
189c167
add OpenSSL Provider support
QWYNG Jun 2, 2023
97fb410
Merge pull request #635 from QWYNG/add_provider_support
rhenium Jun 18, 2023
06d6764
[DOC] prefer "password" to "passphrase"
rhenium Jun 29, 2023
5631203
[DOC] prefer PKey#private_to_pem and #public_to_pem in RDoc
rhenium Jun 28, 2023
d22769a
[DOC] enhance RDoc for exporting pkeys
rhenium Jun 28, 2023
3f29525
Add support for raw private/public keys (#646)
sylph01 Jul 12, 2023
e379cc0
[DOC] remove top-level example for OpenSSL::Cipher#pkcs5_keyivgen (#647)
rhenium Jul 12, 2023
ca738e7
Always respect the openssl prefix chosen by truffle/openssl-prefix on…
eregon Jul 21, 2023
ee03210
Merge pull request #653 from eregon/respect-truffle-openssl-prefix
rhenium Jul 21, 2023
ca54087
Raise an error when the specified OpenSSL library directory doesn't e…
junaruga May 3, 2023
fddfc55
CI: Add OpenSSL 3.1 FIPS case.
junaruga Jul 25, 2023
b050141
Merge pull request #655 from junaruga/wip/ci-openssl-3.1-fips
junaruga Jul 25, 2023
24d8add
CI: Upgrade OpenSSL versions.
junaruga Aug 2, 2023
c5543a6
Merge pull request #657 from junaruga/wip/ci-upgrade-openssl
junaruga Aug 3, 2023
9391b56
Merge pull request #618 from junaruga/wip/check-ssl-lib-dir
rhenium Aug 8, 2023
7ec8024
CI: Add OpenSSL master branch head non-FIPS and FIPS cases.
junaruga Aug 7, 2023
db633c5
Merge pull request #658 from junaruga/wip/ci-openssl-head
rhenium Aug 9, 2023
7eb10f7
ssl: raise SSLError if loading ca_file or ca_path fails
rhenium Aug 9, 2023
fd6f76c
config: relax test assertions against error messages
rhenium Jul 1, 2023
1c5bbdd
Include "additional data" message in OpenSSL errors
rhenium Jul 1, 2023
db8deaa
Use openssl? instead of OpenSSL::OPENSSL_VERSION_NUMBER.
junaruga Aug 14, 2023
f9980d8
test/openssl/test_pkey.rb: Fix pending tests in FIPS case.
junaruga Aug 9, 2023
d19e636
Enhance printing OpenSSL versions.
junaruga Aug 14, 2023
1c0d28e
Merge pull request #662 from junaruga/wip/enhance-printing-versions
rhenium Aug 16, 2023
6424402
Merge pull request #663 from junaruga/wip/test-use-openssl-version-me…
rhenium Aug 16, 2023
283958a
Merge pull request #664 from junaruga/wip/fips-test-pkey-fix-pending-…
rhenium Aug 16, 2023
3f45150
Merge pull request #648 from rhenium/ky/error-additional-data
rhenium Aug 16, 2023
8ac40ba
Merge pull request #659 from rhenium/ky/ssl-ca-file-ca-path-raise
rhenium Aug 16, 2023
6588fad
Merge pull request #645 from rhenium/ky/pkey-document-traditional-pem
rhenium Aug 16, 2023
bff0606
Merge pull request #640 from rhenium/ky/ssl-connect-verify-error-ssl-…
rhenium Aug 16, 2023
61434f6
Rakefile: Print FIPS information in the `rake debug`.
junaruga Aug 22, 2023
296c859
Fix LIBRESSL_VERSION_NUMBER document mistake.
junaruga Aug 22, 2023
fe7612f
Merge pull request #667 from junaruga/wip/doc-LIBRESSL_VERSION_NUMBER
rhenium Aug 24, 2023
8273416
Merge pull request #666 from junaruga/wip/rake-print-fips
rhenium Aug 24, 2023
e35f190
CI: Replace "mode" in "FIPS mode" with "module".
junaruga Aug 24, 2023
74a4198
Merge pull request #670 from junaruga/wip/ci-yml-mode-in-fips-mode
rhenium Aug 25, 2023
d157ba1
Remove the pending logics by the pend_on_openssl_issue_21493.
junaruga Aug 22, 2023
db688fa
ossl_pkey.c: Workaround: Decode with non-zero selections.
junaruga Aug 24, 2023
f4b8dac
Merge pull request #669 from junaruga/wip/decode-with-non-zero-select…
rhenium Aug 25, 2023
f59ec58
Use the test-unit-ruby-core gem for Test::Unit::CoreAssertions
rhenium Aug 29, 2023
7c34a43
Merge pull request #673 from rhenium/ky/test-use-test-unit-ruby-core
rhenium Aug 29, 2023
a5527cb
ssl: use ffdhe2048 from RFC 7919 as the default DH group parameters
rhenium Aug 29, 2023
c53cbab
test/openssl/test_pkey_ec.rb: refactor tests for EC.builtin_curves
rhenium Aug 29, 2023
5ccd76c
Merge pull request #675 from rhenium/ky/test-pkey-ec-builtin-curves
rhenium Aug 31, 2023
2dc1253
Merge pull request #585 from Maumagnaguagno/refactor-buffering-methods
rhenium Aug 31, 2023
9cdfa3a
test/openssl/test_ossl.rb: relax assertion for error messages
rhenium Aug 31, 2023
91ae46c
x509ext: test OpenSSL::X509::ExtensionFactory#create_ext with ln
rhenium Aug 31, 2023
9f15741
x509ext: let X509::ExtensionFactory#create_ext take a dotted OID string
mcr Aug 27, 2017
8eb0715
Prefer String#unpack1 (#586)
Maumagnaguagno Aug 31, 2023
fcda6cf
Merge pull request #674 from rhenium/ky/ssl-update-default-dh-params
rhenium Aug 31, 2023
89a1c82
Fix OCSP documentation
p8 Aug 31, 2023
a685991
Merge pull request #141 from mcr/master
rhenium Aug 31, 2023
3784b27
Merge pull request #676 from p8/fix/ocsp-documentation
rhenium Aug 31, 2023
8c7a6a1
Remove OSSL_DEBUG compile-time option
rhenium Aug 31, 2023
bdf060f
Merge pull request #677 from rhenium/ky/remove-mdebug
rhenium Aug 31, 2023
b94314f
Bump actions/checkout from 3 to 4
dependabot[bot] Sep 11, 2023
0b83eed
Rakefile: Add test_fips task for convenience.
junaruga Sep 19, 2023
2fe3438
test_fips.rb: Fix the `OpenSSL.fips_mode` affecting other tests.
junaruga Sep 19, 2023
4d64c38
test_pkey.rb: Refactor the test_ed25519 on FIPS.
junaruga Sep 19, 2023
d07183f
Fix test_pkey_ec.rb on FIPS.
junaruga Sep 19, 2023
250b74b
Merge pull request #681 from junaruga/wip/fix-test-pkey-ec
rhenium Sep 21, 2023
0dda88d
Merge pull request #682 from ruby/dependabot/github_actions/actions/c…
rhenium Sep 21, 2023
7691034
Update README and gemspec description
rhenium Aug 31, 2023
6b3dd6a
Ruby/OpenSSL 3.2.0
rhenium Aug 31, 2023
9a6e24d
Exact checks with `assert_include`
nobu Oct 6, 2023
35c090e
Merge pull request #683 from nobu/fix-test
nobu Oct 6, 2023
81007e0
Exact checks with `assert_include`
nobu Oct 6, 2023
f948e6b
Merge pull request #684 from nobu/assert_include
nobu Oct 6, 2023
f07e6f5
CI: Upgrade OpenSSL and LibreSSL versions.
junaruga Oct 25, 2023
c9b48f9
Merge pull request #689 from junaruga/wip/ci-upgrade-openssls
rhenium Oct 25, 2023
5325c06
Raise ArgumentError if no signed data in PKCS7 that should have signe…
jeremyevans Oct 27, 2023
78de883
Raise ArgumentError for PKCS7 without signed data in PKCS7.read_smime
jeremyevans Nov 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
149 changes: 103 additions & 46 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,36 @@ name: CI
on: [push, pull_request]

jobs:
ruby-versions:
uses: ruby/actions/.github/workflows/ruby_versions.yml@master
with:
engine: cruby-truffleruby
min_version: 2.7
test:
needs: ruby-versions
name: >-
${{ matrix.os }} ${{ matrix.ruby }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# ubuntu-latest is 22.04, uses OpenSSL 3
os: [ ubuntu-20.04, macos-latest ]
ruby: [ head, "3.0", "2.7", "2.6" ]
# ubuntu-22.04 uses OpenSSL 3.0, ubuntu-20.04 uses OpenSSL 1.1.1
os: [ ubuntu-22.04, ubuntu-20.04, macos-latest, windows-latest ]
ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
exclude:
# uses non-standard MSYS2 OpenSSL 3 package
- { os: windows-latest, ruby: head }
- { os: windows-latest, ruby: truffleruby }
- { os: windows-latest, ruby: truffleruby-head }
- { os: macos-latest, ruby: truffleruby }
- { os: ubuntu-20.04, ruby: truffleruby }
include:
- { os: windows-latest, ruby: ucrt }
- { os: windows-latest, ruby: mswin }

steps:
- name: repo checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: load ruby
uses: ruby/setup-ruby@v1
Expand All @@ -25,75 +42,82 @@ jobs:
- name: depends
run: bundle install

- name: compile
run: rake compile -- --enable-debug
# Enable the verbose option in mkmf.rb to print the compiling commands.
- name: enable mkmf verbose
run: echo "MAKEFLAGS=V=1" >> $GITHUB_ENV
if: runner.os == 'Linux' || runner.os == 'macOS'

- name: test
run: rake test TESTOPTS="-v --no-show-detail-immediately" OSSL_MDEBUG=1
- name: set flags to check compiler warnings.
run: echo "RUBY_OPENSSL_EXTCFLAGS=-Werror" >> $GITHUB_ENV
if: ${{ !matrix.skip-warnings }}

test-windows:
name: >-
${{ matrix.os }} ${{ matrix.ruby }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
# current mswin build uses OpenSSL 3
ruby: [ mingw, "3.0", "2.7", "2.6" ]
steps:
- name: repo checkout
uses: actions/checkout@v3
# Enable provider search path for OpenSSL 3.0 in MSYS2.
# Remove when Ruby 3.2 build is updated
- name: enable windows provider search path
run: echo "OPENSSL_MODULES=$($env:RI_DEVKIT)\$($env:MSYSTEM_PREFIX)\lib\ossl-modules" >> $env:GITHUB_ENV
if: runner.os == 'Windows' && matrix.ruby == '3.2'

- name: load ruby, install/update gcc, install openssl
uses: MSP-Greg/setup-ruby-pkgs@v1
with:
ruby-version: ${{ matrix.ruby }}
mingw: _upgrade_ openssl

- name: depends
run: bundle install

# pkg-config is disabled because it can pick up the different OpenSSL installation
# SSL_DIR is set as needed by MSP-Greg/setup-ruby-pkgs
# only used with mswin
- name: compile
run: rake compile -- --enable-debug --without-pkg-config $env:SSL_DIR
run: rake compile

- name: test
run: rake test TESTOPTS="-v --no-show-detail-immediately" OSSL_MDEBUG=1
run: rake test TESTOPTS="-v --no-show-detail-immediately"
timeout-minutes: 5

test-openssls:
name: >-
${{ matrix.openssl }}
${{ matrix.openssl }} ${{ matrix.name-extra || '' }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
ruby: [ "3.0" ]
openssl:
# https://www.openssl.org/source/
- openssl-1.0.2u # EOL
- openssl-1.1.0l # EOL
- openssl-1.1.1l
- openssl-3.0.1
- openssl-1.1.1w # EOL
- openssl-3.0.12
- openssl-3.1.4
# http://www.libressl.org/releases.html
- libressl-3.1.5 # EOL
- libressl-3.2.6
- libressl-3.3.4
- libressl-3.2.7 # EOL
- libressl-3.3.6 # EOL
- libressl-3.4.3 # EOL
- libressl-3.5.3 # EOL
- libressl-3.6.3
- libressl-3.7.3
- libressl-3.8.1 # Development release
fips-enabled: [ false ]
include:
- { os: ubuntu-latest, ruby: "3.0", openssl: openssl-3.0.12, fips-enabled: true, append-configure: 'enable-fips', name-extra: 'fips' }
- { os: ubuntu-latest, ruby: "3.0", openssl: openssl-3.1.4, fips-enabled: true, append-configure: 'enable-fips', name-extra: 'fips' }
- { os: ubuntu-latest, ruby: "3.0", openssl: openssl-head, git: 'git://git.openssl.org/openssl.git', branch: 'master' }
- { os: ubuntu-latest, ruby: "3.0", openssl: openssl-head, git: 'git://git.openssl.org/openssl.git', branch: 'master', fips-enabled: true, append-configure: 'enable-fips', name-extra: 'fips' }
steps:
- name: repo checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: prepare openssl
run: |
# Enable Bash debugging option temporarily for debugging use.
set -x
mkdir -p tmp/build-openssl && cd tmp/build-openssl
case ${{ matrix.openssl }} in
openssl-*)
curl -OL https://ftp.openssl.org/source/${{ matrix.openssl }}.tar.gz
tar xf ${{ matrix.openssl }}.tar.gz && cd ${{ matrix.openssl }}
if [ -z "${{ matrix.git }}" ]; then
curl -OL https://ftp.openssl.org/source/${{ matrix.openssl }}.tar.gz
tar xf ${{ matrix.openssl }}.tar.gz && cd ${{ matrix.openssl }}
else
git clone -b ${{ matrix.branch }} --depth 1 ${{ matrix.git }} ${{ matrix.openssl }}
cd ${{ matrix.openssl }}
# Log the commit hash.
echo "Git commit: $(git rev-parse HEAD)"
fi
# shared is required for 1.0.x.
./Configure --prefix=$HOME/.openssl/${{ matrix.openssl }} --libdir=lib \
shared linux-x86_64
shared linux-x86_64 ${{ matrix.append-configure }}
make depend
;;
libressl-*)
Expand All @@ -108,6 +132,22 @@ jobs:
make -j4
make install_sw

- name: prepare openssl fips
run: make install_fips
working-directory: tmp/build-openssl/${{ matrix.openssl }}
if: matrix.fips-enabled

- name: set the open installed directory
run: >
sed -e "s|OPENSSL_DIR|$HOME/.openssl/${{ matrix.openssl }}|"
test/openssl/fixtures/ssl/openssl_fips.cnf.tmpl >
test/openssl/fixtures/ssl/openssl_fips.cnf
if: matrix.fips-enabled

- name: set openssl config file path for fips.
run: echo "OPENSSL_CONF=$(pwd)/test/openssl/fixtures/ssl/openssl_fips.cnf" >> $GITHUB_ENV
if: matrix.fips-enabled

- name: load ruby
uses: ruby/setup-ruby@v1
with:
Expand All @@ -116,8 +156,25 @@ jobs:
- name: depends
run: bundle install

- name: enable mkmf verbose
run: echo "MAKEFLAGS=V=1" >> $GITHUB_ENV
if: runner.os == 'Linux' || runner.os == 'macOS'

- name: set flags to check compiler warnings.
run: echo "RUBY_OPENSSL_EXTCFLAGS=-Werror" >> $GITHUB_ENV
if: ${{ !matrix.skip-warnings }}

- name: compile
run: rake compile -- --enable-debug --with-openssl-dir=$HOME/.openssl/${{ matrix.openssl }}
run: rake compile -- --with-openssl-dir=$HOME/.openssl/${{ matrix.openssl }}

- name: test
run: rake test TESTOPTS="-v --no-show-detail-immediately" OSSL_MDEBUG=1
run: rake test TESTOPTS="-v --no-show-detail-immediately"
timeout-minutes: 5
if: ${{ !matrix.fips-enabled }}

# Run only the passing tests on the FIPS module as a temporary workaround.
# TODO Fix other tests, and run all the tests on FIPS module.
- name: test on fips module
run: |
rake test_fips TESTOPTS="-v --no-show-detail-immediately"
if: matrix.fips-enabled
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ When reporting a bug, please make sure you include:
* Ruby version (`ruby -v`)
* `openssl` gem version (`gem list openssl` and `OpenSSL::VERSION`)
* OpenSSL library version (`OpenSSL::OPENSSL_VERSION`)
* A sample file that illustrates the problem or link to the repository or
* A sample file that illustrates the problem or link to the repository or
gem that is associated with the bug.

There are a number of unresolved issues and feature requests for openssl that
Expand Down
12 changes: 8 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ source "https://rubygems.org"

gemspec

gem "rake"
gem "rake-compiler"
gem "test-unit", "~> 3.0", ">= 3.4.6"
gem "rdoc"
group :development do
gem "rake"
gem "rake-compiler"
gem "test-unit", "~> 3.0", ">= 3.4.6"
gem "test-unit-ruby-core"
# In the case of Ruby whose rdoc is not a default gem.
gem "rdoc"
end
76 changes: 76 additions & 0 deletions History.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,79 @@
Version 3.2.0
=============

Compatibility
-------------

* Ruby >= 2.7
- Support for Ruby 2.6 has been removed. Note that Ruby 2.6 reached the
end-of-life in 2022-04.
[[GitHub #639]](https://github.com/ruby/openssl/pull/639)
* OpenSSL >= 1.0.2 or LibreSSL >= 3.1

Notable changes
---------------

* Add a stub gemspec for JRuby, which depends on the `jruby-openssl` gem.
[[GitHub #598]](https://github.com/ruby/openssl/pull/598)
* Add support for the FIPS module in OpenSSL 3.0/3.1.
[[GitHub #608]](https://github.com/ruby/openssl/pull/608)
* Rework `OpenSSL::PKey` routines for loading DER or PEM encoded keys for better
compatibility with OpenSSL 3.0/3.1 with the FIPS module.
[[GitHub #615]](https://github.com/ruby/openssl/pull/615)
[[GitHub #669]](https://github.com/ruby/openssl/pull/669)
* Add `OpenSSL::Provider` module for loading and unloading OpenSSL 3 providers.
[[GitHub #635]](https://github.com/ruby/openssl/pull/635)
* Add `OpenSSL::PKey.new_raw_private_key`, `.new_raw_public_key`,
`OpenSSL::PKey::PKey#raw_private_key`, and `#raw_public_key` for public key
algorithms that use "raw private/public key", such as X25519 and Ed25519.
[[GitHub #646]](https://github.com/ruby/openssl/pull/646)
* Improve OpenSSL error messages to include additional information when
it is available in OpenSSL's error queue.
[[GitHub #648]](https://github.com/ruby/openssl/pull/648)
* Change `OpenSSL::SSL::SSLContext#ca_file=` and `#ca_path=` to raise
`OpenSSL::SSL::SSLError` instead of printing a warning message.
[[GitHub #659]](https://github.com/ruby/openssl/pull/659)
* Allow `OpenSSL::X509::ExtensionFactory#create_extension` to take OIDs in the
dotted-decimal notation.
[[GitHub #141]](https://github.com/ruby/openssl/pull/141)


Version 3.1.0
=============

Ruby/OpenSSL 3.1 will be maintained for the lifetime of Ruby 3.2.

Merged bug fixes in 2.2.3 and 3.0.2. Among the new features and changes are:

Notable changes
---------------

* Add `OpenSSL::SSL::SSLContext#ciphersuites=` to allow setting TLS 1.3 cipher
suites.
[[GitHub #493]](https://github.com/ruby/openssl/pull/493)
* Add `OpenSSL::SSL::SSLSocket#export_keying_material` for exporting keying
material of the session, as defined in RFC 5705.
[[GitHub #530]](https://github.com/ruby/openssl/pull/530)
* Add `OpenSSL::SSL::SSLContext#keylog_cb=` for setting the TLS key logging
callback, which is useful for supporting NSS's SSLKEYLOGFILE debugging output.
[[GitHub #536]](https://github.com/ruby/openssl/pull/536)
* Remove the default digest algorithm from `OpenSSL::OCSP::BasicResponse#sign`
and `OpenSSL::OCSP::Request#sign`. Omitting the 5th parameter of these
methods used to be equivalent of specifying SHA-1. This default value is now
removed and we will let the underlying OpenSSL library decide instead.
[[GitHub #507]](https://github.com/ruby/openssl/pull/507)
* Add `OpenSSL::BN#mod_sqrt`.
[[GitHub #553]](https://github.com/ruby/openssl/pull/553)
* Allow calling `OpenSSL::Cipher#update` with an empty string. This was
prohibited to workaround an ancient bug in OpenSSL.
[[GitHub #568]](https://github.com/ruby/openssl/pull/568)
* Fix build on platforms without socket support, such as WASI. `OpenSSL::SSL`
will not be defined if OpenSSL is compiled with `OPENSSL_NO_SOCK`.
[[GitHub #558]](https://github.com/ruby/openssl/pull/558)
* Improve support for recent LibreSSL versions. This includes HKDF support in
LibreSSL 3.6 and Ed25519 support in LibreSSL 3.7.


Version 3.0.2
=============

Expand Down
Loading