[ruby/openssl] add OpenSSL Provider support

https://github.com/ruby/openssl/commit/189c167e40
[rhe: tool/update-deps --fix to update ext/openssl/depend]
This commit is contained in:
qwyng 2023-06-02 21:12:21 +09:00 коммит произвёл Kazuki Yamaguchi
Родитель e7440dcaea
Коммит e9f62fa5a7
6 изменённых файлов: 515 добавлений и 0 удалений

Просмотреть файл

@ -192,6 +192,7 @@ ossl.o: ossl_ocsp.h
ossl.o: ossl_pkcs12.h
ossl.o: ossl_pkcs7.h
ossl.o: ossl_pkey.h
ossl.o: ossl_provider.h
ossl.o: ossl_rand.h
ossl.o: ossl_ssl.h
ossl.o: ossl_ts.h
@ -385,6 +386,7 @@ ossl_asn1.o: ossl_ocsp.h
ossl_asn1.o: ossl_pkcs12.h
ossl_asn1.o: ossl_pkcs7.h
ossl_asn1.o: ossl_pkey.h
ossl_asn1.o: ossl_provider.h
ossl_asn1.o: ossl_rand.h
ossl_asn1.o: ossl_ssl.h
ossl_asn1.o: ossl_ts.h
@ -578,6 +580,7 @@ ossl_bio.o: ossl_ocsp.h
ossl_bio.o: ossl_pkcs12.h
ossl_bio.o: ossl_pkcs7.h
ossl_bio.o: ossl_pkey.h
ossl_bio.o: ossl_provider.h
ossl_bio.o: ossl_rand.h
ossl_bio.o: ossl_ssl.h
ossl_bio.o: ossl_ts.h
@ -772,6 +775,7 @@ ossl_bn.o: ossl_ocsp.h
ossl_bn.o: ossl_pkcs12.h
ossl_bn.o: ossl_pkcs7.h
ossl_bn.o: ossl_pkey.h
ossl_bn.o: ossl_provider.h
ossl_bn.o: ossl_rand.h
ossl_bn.o: ossl_ssl.h
ossl_bn.o: ossl_ts.h
@ -965,6 +969,7 @@ ossl_cipher.o: ossl_ocsp.h
ossl_cipher.o: ossl_pkcs12.h
ossl_cipher.o: ossl_pkcs7.h
ossl_cipher.o: ossl_pkey.h
ossl_cipher.o: ossl_provider.h
ossl_cipher.o: ossl_rand.h
ossl_cipher.o: ossl_ssl.h
ossl_cipher.o: ossl_ts.h
@ -1158,6 +1163,7 @@ ossl_config.o: ossl_ocsp.h
ossl_config.o: ossl_pkcs12.h
ossl_config.o: ossl_pkcs7.h
ossl_config.o: ossl_pkey.h
ossl_config.o: ossl_provider.h
ossl_config.o: ossl_rand.h
ossl_config.o: ossl_ssl.h
ossl_config.o: ossl_ts.h
@ -1351,6 +1357,7 @@ ossl_digest.o: ossl_ocsp.h
ossl_digest.o: ossl_pkcs12.h
ossl_digest.o: ossl_pkcs7.h
ossl_digest.o: ossl_pkey.h
ossl_digest.o: ossl_provider.h
ossl_digest.o: ossl_rand.h
ossl_digest.o: ossl_ssl.h
ossl_digest.o: ossl_ts.h
@ -1544,6 +1551,7 @@ ossl_engine.o: ossl_ocsp.h
ossl_engine.o: ossl_pkcs12.h
ossl_engine.o: ossl_pkcs7.h
ossl_engine.o: ossl_pkey.h
ossl_engine.o: ossl_provider.h
ossl_engine.o: ossl_rand.h
ossl_engine.o: ossl_ssl.h
ossl_engine.o: ossl_ts.h
@ -1737,6 +1745,7 @@ ossl_hmac.o: ossl_ocsp.h
ossl_hmac.o: ossl_pkcs12.h
ossl_hmac.o: ossl_pkcs7.h
ossl_hmac.o: ossl_pkey.h
ossl_hmac.o: ossl_provider.h
ossl_hmac.o: ossl_rand.h
ossl_hmac.o: ossl_ssl.h
ossl_hmac.o: ossl_ts.h
@ -1930,6 +1939,7 @@ ossl_kdf.o: ossl_ocsp.h
ossl_kdf.o: ossl_pkcs12.h
ossl_kdf.o: ossl_pkcs7.h
ossl_kdf.o: ossl_pkey.h
ossl_kdf.o: ossl_provider.h
ossl_kdf.o: ossl_rand.h
ossl_kdf.o: ossl_ssl.h
ossl_kdf.o: ossl_ts.h
@ -2123,6 +2133,7 @@ ossl_ns_spki.o: ossl_ocsp.h
ossl_ns_spki.o: ossl_pkcs12.h
ossl_ns_spki.o: ossl_pkcs7.h
ossl_ns_spki.o: ossl_pkey.h
ossl_ns_spki.o: ossl_provider.h
ossl_ns_spki.o: ossl_rand.h
ossl_ns_spki.o: ossl_ssl.h
ossl_ns_spki.o: ossl_ts.h
@ -2316,6 +2327,7 @@ ossl_ocsp.o: ossl_ocsp.h
ossl_ocsp.o: ossl_pkcs12.h
ossl_ocsp.o: ossl_pkcs7.h
ossl_ocsp.o: ossl_pkey.h
ossl_ocsp.o: ossl_provider.h
ossl_ocsp.o: ossl_rand.h
ossl_ocsp.o: ossl_ssl.h
ossl_ocsp.o: ossl_ts.h
@ -2509,6 +2521,7 @@ ossl_pkcs12.o: ossl_pkcs12.c
ossl_pkcs12.o: ossl_pkcs12.h
ossl_pkcs12.o: ossl_pkcs7.h
ossl_pkcs12.o: ossl_pkey.h
ossl_pkcs12.o: ossl_provider.h
ossl_pkcs12.o: ossl_rand.h
ossl_pkcs12.o: ossl_ssl.h
ossl_pkcs12.o: ossl_ts.h
@ -2702,6 +2715,7 @@ ossl_pkcs7.o: ossl_pkcs12.h
ossl_pkcs7.o: ossl_pkcs7.c
ossl_pkcs7.o: ossl_pkcs7.h
ossl_pkcs7.o: ossl_pkey.h
ossl_pkcs7.o: ossl_provider.h
ossl_pkcs7.o: ossl_rand.h
ossl_pkcs7.o: ossl_ssl.h
ossl_pkcs7.o: ossl_ts.h
@ -2895,6 +2909,7 @@ ossl_pkey.o: ossl_pkcs12.h
ossl_pkey.o: ossl_pkcs7.h
ossl_pkey.o: ossl_pkey.c
ossl_pkey.o: ossl_pkey.h
ossl_pkey.o: ossl_provider.h
ossl_pkey.o: ossl_rand.h
ossl_pkey.o: ossl_ssl.h
ossl_pkey.o: ossl_ts.h
@ -3088,6 +3103,7 @@ ossl_pkey_dh.o: ossl_pkcs12.h
ossl_pkey_dh.o: ossl_pkcs7.h
ossl_pkey_dh.o: ossl_pkey.h
ossl_pkey_dh.o: ossl_pkey_dh.c
ossl_pkey_dh.o: ossl_provider.h
ossl_pkey_dh.o: ossl_rand.h
ossl_pkey_dh.o: ossl_ssl.h
ossl_pkey_dh.o: ossl_ts.h
@ -3281,6 +3297,7 @@ ossl_pkey_dsa.o: ossl_pkcs12.h
ossl_pkey_dsa.o: ossl_pkcs7.h
ossl_pkey_dsa.o: ossl_pkey.h
ossl_pkey_dsa.o: ossl_pkey_dsa.c
ossl_pkey_dsa.o: ossl_provider.h
ossl_pkey_dsa.o: ossl_rand.h
ossl_pkey_dsa.o: ossl_ssl.h
ossl_pkey_dsa.o: ossl_ts.h
@ -3474,6 +3491,7 @@ ossl_pkey_ec.o: ossl_pkcs12.h
ossl_pkey_ec.o: ossl_pkcs7.h
ossl_pkey_ec.o: ossl_pkey.h
ossl_pkey_ec.o: ossl_pkey_ec.c
ossl_pkey_ec.o: ossl_provider.h
ossl_pkey_ec.o: ossl_rand.h
ossl_pkey_ec.o: ossl_ssl.h
ossl_pkey_ec.o: ossl_ts.h
@ -3667,10 +3685,205 @@ ossl_pkey_rsa.o: ossl_pkcs12.h
ossl_pkey_rsa.o: ossl_pkcs7.h
ossl_pkey_rsa.o: ossl_pkey.h
ossl_pkey_rsa.o: ossl_pkey_rsa.c
ossl_pkey_rsa.o: ossl_provider.h
ossl_pkey_rsa.o: ossl_rand.h
ossl_pkey_rsa.o: ossl_ssl.h
ossl_pkey_rsa.o: ossl_ts.h
ossl_pkey_rsa.o: ossl_x509.h
ossl_provider.o: $(RUBY_EXTCONF_H)
ossl_provider.o: $(arch_hdrdir)/ruby/config.h
ossl_provider.o: $(hdrdir)/ruby.h
ossl_provider.o: $(hdrdir)/ruby/assert.h
ossl_provider.o: $(hdrdir)/ruby/backward.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/assume.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/attributes.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/bool.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/inttypes.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/limits.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/long_long.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/stdalign.h
ossl_provider.o: $(hdrdir)/ruby/backward/2/stdarg.h
ossl_provider.o: $(hdrdir)/ruby/defines.h
ossl_provider.o: $(hdrdir)/ruby/encoding.h
ossl_provider.o: $(hdrdir)/ruby/intern.h
ossl_provider.o: $(hdrdir)/ruby/internal/abi.h
ossl_provider.o: $(hdrdir)/ruby/internal/anyargs.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/char.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/double.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/int.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/long.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/short.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
ossl_provider.o: $(hdrdir)/ruby/internal/assume.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/artificial.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/cold.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/const.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/constexpr.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/deprecated.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/error.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/forceinline.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/format.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/noalias.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/noexcept.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/noinline.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/nonnull.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/noreturn.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/packed_struct.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/pure.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/restrict.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/warning.h
ossl_provider.o: $(hdrdir)/ruby/internal/attr/weakref.h
ossl_provider.o: $(hdrdir)/ruby/internal/cast.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
ossl_provider.o: $(hdrdir)/ruby/internal/compiler_since.h
ossl_provider.o: $(hdrdir)/ruby/internal/config.h
ossl_provider.o: $(hdrdir)/ruby/internal/constant_p.h
ossl_provider.o: $(hdrdir)/ruby/internal/core.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rarray.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rbasic.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rbignum.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rclass.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rdata.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rfile.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rhash.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/robject.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rregexp.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rstring.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rstruct.h
ossl_provider.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
ossl_provider.o: $(hdrdir)/ruby/internal/ctype.h
ossl_provider.o: $(hdrdir)/ruby/internal/dllexport.h
ossl_provider.o: $(hdrdir)/ruby/internal/dosish.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/coderange.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/ctype.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/encoding.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/pathname.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/re.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/sprintf.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/string.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/symbol.h
ossl_provider.o: $(hdrdir)/ruby/internal/encoding/transcode.h
ossl_provider.o: $(hdrdir)/ruby/internal/error.h
ossl_provider.o: $(hdrdir)/ruby/internal/eval.h
ossl_provider.o: $(hdrdir)/ruby/internal/event.h
ossl_provider.o: $(hdrdir)/ruby/internal/fl_type.h
ossl_provider.o: $(hdrdir)/ruby/internal/gc.h
ossl_provider.o: $(hdrdir)/ruby/internal/glob.h
ossl_provider.o: $(hdrdir)/ruby/internal/globals.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/attribute.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/builtin.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/c_attribute.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/extension.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/feature.h
ossl_provider.o: $(hdrdir)/ruby/internal/has/warning.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/array.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/bignum.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/class.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/compar.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/complex.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/cont.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/dir.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/enum.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/enumerator.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/error.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/eval.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/file.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/hash.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/io.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/load.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/marshal.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/numeric.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/object.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/parse.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/proc.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/process.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/random.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/range.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/rational.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/re.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/ruby.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/select.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/signal.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/sprintf.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/string.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/struct.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/thread.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/time.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/variable.h
ossl_provider.o: $(hdrdir)/ruby/internal/intern/vm.h
ossl_provider.o: $(hdrdir)/ruby/internal/interpreter.h
ossl_provider.o: $(hdrdir)/ruby/internal/iterator.h
ossl_provider.o: $(hdrdir)/ruby/internal/memory.h
ossl_provider.o: $(hdrdir)/ruby/internal/method.h
ossl_provider.o: $(hdrdir)/ruby/internal/module.h
ossl_provider.o: $(hdrdir)/ruby/internal/newobj.h
ossl_provider.o: $(hdrdir)/ruby/internal/scan_args.h
ossl_provider.o: $(hdrdir)/ruby/internal/special_consts.h
ossl_provider.o: $(hdrdir)/ruby/internal/static_assert.h
ossl_provider.o: $(hdrdir)/ruby/internal/stdalign.h
ossl_provider.o: $(hdrdir)/ruby/internal/stdbool.h
ossl_provider.o: $(hdrdir)/ruby/internal/symbol.h
ossl_provider.o: $(hdrdir)/ruby/internal/value.h
ossl_provider.o: $(hdrdir)/ruby/internal/value_type.h
ossl_provider.o: $(hdrdir)/ruby/internal/variable.h
ossl_provider.o: $(hdrdir)/ruby/internal/warning_push.h
ossl_provider.o: $(hdrdir)/ruby/internal/xmalloc.h
ossl_provider.o: $(hdrdir)/ruby/io.h
ossl_provider.o: $(hdrdir)/ruby/missing.h
ossl_provider.o: $(hdrdir)/ruby/onigmo.h
ossl_provider.o: $(hdrdir)/ruby/oniguruma.h
ossl_provider.o: $(hdrdir)/ruby/ruby.h
ossl_provider.o: $(hdrdir)/ruby/st.h
ossl_provider.o: $(hdrdir)/ruby/subst.h
ossl_provider.o: $(hdrdir)/ruby/thread.h
ossl_provider.o: openssl_missing.h
ossl_provider.o: ossl.h
ossl_provider.o: ossl_asn1.h
ossl_provider.o: ossl_bio.h
ossl_provider.o: ossl_bn.h
ossl_provider.o: ossl_cipher.h
ossl_provider.o: ossl_config.h
ossl_provider.o: ossl_digest.h
ossl_provider.o: ossl_engine.h
ossl_provider.o: ossl_hmac.h
ossl_provider.o: ossl_kdf.h
ossl_provider.o: ossl_ns_spki.h
ossl_provider.o: ossl_ocsp.h
ossl_provider.o: ossl_pkcs12.h
ossl_provider.o: ossl_pkcs7.h
ossl_provider.o: ossl_pkey.h
ossl_provider.o: ossl_provider.c
ossl_provider.o: ossl_provider.h
ossl_provider.o: ossl_rand.h
ossl_provider.o: ossl_ssl.h
ossl_provider.o: ossl_ts.h
ossl_provider.o: ossl_x509.h
ossl_rand.o: $(RUBY_EXTCONF_H)
ossl_rand.o: $(arch_hdrdir)/ruby/config.h
ossl_rand.o: $(hdrdir)/ruby.h
@ -3859,6 +4072,7 @@ ossl_rand.o: ossl_ocsp.h
ossl_rand.o: ossl_pkcs12.h
ossl_rand.o: ossl_pkcs7.h
ossl_rand.o: ossl_pkey.h
ossl_rand.o: ossl_provider.h
ossl_rand.o: ossl_rand.c
ossl_rand.o: ossl_rand.h
ossl_rand.o: ossl_ssl.h
@ -4052,6 +4266,7 @@ ossl_ssl.o: ossl_ocsp.h
ossl_ssl.o: ossl_pkcs12.h
ossl_ssl.o: ossl_pkcs7.h
ossl_ssl.o: ossl_pkey.h
ossl_ssl.o: ossl_provider.h
ossl_ssl.o: ossl_rand.h
ossl_ssl.o: ossl_ssl.c
ossl_ssl.o: ossl_ssl.h
@ -4245,6 +4460,7 @@ ossl_ssl_session.o: ossl_ocsp.h
ossl_ssl_session.o: ossl_pkcs12.h
ossl_ssl_session.o: ossl_pkcs7.h
ossl_ssl_session.o: ossl_pkey.h
ossl_ssl_session.o: ossl_provider.h
ossl_ssl_session.o: ossl_rand.h
ossl_ssl_session.o: ossl_ssl.h
ossl_ssl_session.o: ossl_ssl_session.c
@ -4438,6 +4654,7 @@ ossl_ts.o: ossl_ocsp.h
ossl_ts.o: ossl_pkcs12.h
ossl_ts.o: ossl_pkcs7.h
ossl_ts.o: ossl_pkey.h
ossl_ts.o: ossl_provider.h
ossl_ts.o: ossl_rand.h
ossl_ts.o: ossl_ssl.h
ossl_ts.o: ossl_ts.c
@ -4631,6 +4848,7 @@ ossl_x509.o: ossl_ocsp.h
ossl_x509.o: ossl_pkcs12.h
ossl_x509.o: ossl_pkcs7.h
ossl_x509.o: ossl_pkey.h
ossl_x509.o: ossl_provider.h
ossl_x509.o: ossl_rand.h
ossl_x509.o: ossl_ssl.h
ossl_x509.o: ossl_ts.h
@ -4824,6 +5042,7 @@ ossl_x509attr.o: ossl_ocsp.h
ossl_x509attr.o: ossl_pkcs12.h
ossl_x509attr.o: ossl_pkcs7.h
ossl_x509attr.o: ossl_pkey.h
ossl_x509attr.o: ossl_provider.h
ossl_x509attr.o: ossl_rand.h
ossl_x509attr.o: ossl_ssl.h
ossl_x509attr.o: ossl_ts.h
@ -5017,6 +5236,7 @@ ossl_x509cert.o: ossl_ocsp.h
ossl_x509cert.o: ossl_pkcs12.h
ossl_x509cert.o: ossl_pkcs7.h
ossl_x509cert.o: ossl_pkey.h
ossl_x509cert.o: ossl_provider.h
ossl_x509cert.o: ossl_rand.h
ossl_x509cert.o: ossl_ssl.h
ossl_x509cert.o: ossl_ts.h
@ -5210,6 +5430,7 @@ ossl_x509crl.o: ossl_ocsp.h
ossl_x509crl.o: ossl_pkcs12.h
ossl_x509crl.o: ossl_pkcs7.h
ossl_x509crl.o: ossl_pkey.h
ossl_x509crl.o: ossl_provider.h
ossl_x509crl.o: ossl_rand.h
ossl_x509crl.o: ossl_ssl.h
ossl_x509crl.o: ossl_ts.h
@ -5403,6 +5624,7 @@ ossl_x509ext.o: ossl_ocsp.h
ossl_x509ext.o: ossl_pkcs12.h
ossl_x509ext.o: ossl_pkcs7.h
ossl_x509ext.o: ossl_pkey.h
ossl_x509ext.o: ossl_provider.h
ossl_x509ext.o: ossl_rand.h
ossl_x509ext.o: ossl_ssl.h
ossl_x509ext.o: ossl_ts.h
@ -5596,6 +5818,7 @@ ossl_x509name.o: ossl_ocsp.h
ossl_x509name.o: ossl_pkcs12.h
ossl_x509name.o: ossl_pkcs7.h
ossl_x509name.o: ossl_pkey.h
ossl_x509name.o: ossl_provider.h
ossl_x509name.o: ossl_rand.h
ossl_x509name.o: ossl_ssl.h
ossl_x509name.o: ossl_ts.h
@ -5789,6 +6012,7 @@ ossl_x509req.o: ossl_ocsp.h
ossl_x509req.o: ossl_pkcs12.h
ossl_x509req.o: ossl_pkcs7.h
ossl_x509req.o: ossl_pkey.h
ossl_x509req.o: ossl_provider.h
ossl_x509req.o: ossl_rand.h
ossl_x509req.o: ossl_ssl.h
ossl_x509req.o: ossl_ts.h
@ -5982,6 +6206,7 @@ ossl_x509revoked.o: ossl_ocsp.h
ossl_x509revoked.o: ossl_pkcs12.h
ossl_x509revoked.o: ossl_pkcs7.h
ossl_x509revoked.o: ossl_pkey.h
ossl_x509revoked.o: ossl_provider.h
ossl_x509revoked.o: ossl_rand.h
ossl_x509revoked.o: ossl_ssl.h
ossl_x509revoked.o: ossl_ts.h
@ -6175,6 +6400,7 @@ ossl_x509store.o: ossl_ocsp.h
ossl_x509store.o: ossl_pkcs12.h
ossl_x509store.o: ossl_pkcs7.h
ossl_x509store.o: ossl_pkey.h
ossl_x509store.o: ossl_provider.h
ossl_x509store.o: ossl_rand.h
ossl_x509store.o: ossl_ssl.h
ossl_x509store.o: ossl_ts.h

Просмотреть файл

@ -1255,6 +1255,7 @@ Init_openssl(void)
Init_ossl_x509();
Init_ossl_ocsp();
Init_ossl_engine();
Init_ossl_provider();
Init_ossl_asn1();
Init_ossl_kdf();

Просмотреть файл

@ -62,6 +62,10 @@
# define OSSL_USE_ENGINE
#endif
#if OSSL_OPENSSL_PREREQ(3, 0, 0)
# define OSSL_USE_PROVIDER
#endif
/*
* Common Module
*/
@ -188,6 +192,7 @@ extern VALUE dOSSL;
#endif
#include "ossl_x509.h"
#include "ossl_engine.h"
#include "ossl_provider.h"
#include "ossl_kdf.h"
void Init_openssl(void);

211
ext/openssl/ossl_provider.c Normal file
Просмотреть файл

@ -0,0 +1,211 @@
/*
* This program is licensed under the same licence as Ruby.
* (See the file 'LICENCE'.)
*/
#include "ossl.h"
#ifdef OSSL_USE_PROVIDER
# include <openssl/provider.h>
#define NewProvider(klass) \
TypedData_Wrap_Struct((klass), &ossl_provider_type, 0)
#define SetProvider(obj, provider) do { \
if (!(provider)) { \
ossl_raise(rb_eRuntimeError, "Provider wasn't initialized."); \
} \
RTYPEDDATA_DATA(obj) = (provider); \
} while(0)
#define GetProvider(obj, provider) do { \
TypedData_Get_Struct((obj), OSSL_PROVIDER, &ossl_provider_type, (provider)); \
if (!(provider)) { \
ossl_raise(rb_eRuntimeError, "PROVIDER wasn't initialized."); \
} \
} while (0)
static const rb_data_type_t ossl_provider_type = {
"OpenSSL/Provider",
{
0,
},
0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,
};
/*
* Classes
*/
/* Document-class: OpenSSL::Provider
*
* This class is the access to openssl's Provider
* See also, https://www.openssl.org/docs/manmaster/man7/provider.html
*/
static VALUE cProvider;
/* Document-class: OpenSSL::Provider::ProviderError
*
* This is the generic exception for OpenSSL::Provider related errors
*/
static VALUE eProviderError;
/*
* call-seq:
* OpenSSL::Provider.load(name) -> provider
*
* This method loads and initializes a provider
*/
static VALUE
ossl_provider_s_load(VALUE klass, VALUE name)
{
OSSL_PROVIDER *provider = NULL;
VALUE obj;
const char *provider_name_ptr = StringValueCStr(name);
provider = OSSL_PROVIDER_load(NULL, provider_name_ptr);
if (provider == NULL) {
ossl_raise(eProviderError, "Failed to load %s provider", provider_name_ptr);
}
obj = NewProvider(klass);
SetProvider(obj, provider);
return obj;
}
struct ary_with_state { VALUE ary; int state; };
struct rb_push_provider_name_args { OSSL_PROVIDER *prov; VALUE ary; };
static VALUE
rb_push_provider_name(VALUE rb_push_provider_name_args)
{
struct rb_push_provider_name_args *args = (struct rb_push_provider_name_args *)rb_push_provider_name_args;
VALUE name = rb_str_new2(OSSL_PROVIDER_get0_name(args->prov));
return rb_ary_push(args->ary, name);
}
static int
push_provider(OSSL_PROVIDER *prov, void *cbdata)
{
struct ary_with_state *ary_with_state = (struct ary_with_state *)cbdata;
struct rb_push_provider_name_args args = { prov, ary_with_state->ary };
rb_protect(rb_push_provider_name, (VALUE)&args, &ary_with_state->state);
if (ary_with_state->state) {
return 0;
} else {
return 1;
}
}
/*
* call-seq:
* OpenSSL::Provider.provider_names -> [provider_name, ...]
*
* Returns an array of currently loaded provider names.
*/
static VALUE
ossl_provider_s_provider_names(VALUE klass)
{
VALUE ary = rb_ary_new();
struct ary_with_state cbdata = { ary, 0 };
int result = OSSL_PROVIDER_do_all(NULL, &push_provider, (void*)&cbdata);
if (result != 1 ) {
if (cbdata.state) {
rb_jump_tag(cbdata.state);
} else {
ossl_raise(eProviderError, "Failed to load provider names");
}
}
return ary;
}
/*
* call-seq:
* provider.unload -> true
*
* This method unloads this provider.
*
* if provider unload fails or already unloaded, it raises OpenSSL::Provider::ProviderError
*/
static VALUE
ossl_provider_unload(VALUE self)
{
OSSL_PROVIDER *prov;
if (RTYPEDDATA_DATA(self) == NULL) {
ossl_raise(eProviderError, "Provider already unloaded.");
}
GetProvider(self, prov);
int result = OSSL_PROVIDER_unload(prov);
if (result != 1) {
ossl_raise(eProviderError, "Failed to unload provider");
}
RTYPEDDATA_DATA(self) = NULL;
return Qtrue;
}
/*
* call-seq:
* provider.name -> string
*
* Get the name of this provider.
*
* if this provider is already unloaded, it raises OpenSSL::Provider::ProviderError
*/
static VALUE
ossl_provider_get_name(VALUE self)
{
OSSL_PROVIDER *prov;
if (RTYPEDDATA_DATA(self) == NULL) {
ossl_raise(eProviderError, "Provider already unloaded.");
}
GetProvider(self, prov);
return rb_str_new2(OSSL_PROVIDER_get0_name(prov));
}
/*
* call-seq:
* provider.inspect -> string
*
* Pretty prints this provider.
*/
static VALUE
ossl_provider_inspect(VALUE self)
{
OSSL_PROVIDER *prov;
if (RTYPEDDATA_DATA(self) == NULL ) {
return rb_sprintf("#<%"PRIsVALUE" unloaded provider>", rb_obj_class(self));
}
GetProvider(self, prov);
return rb_sprintf("#<%"PRIsVALUE" name=\"%s\">",
rb_obj_class(self), OSSL_PROVIDER_get0_name(prov));
}
void
Init_ossl_provider(void)
{
#if 0
mOSSL = rb_define_module("OpenSSL");
eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);
#endif
cProvider = rb_define_class_under(mOSSL, "Provider", rb_cObject);
eProviderError = rb_define_class_under(cProvider, "ProviderError", eOSSLError);
rb_undef_alloc_func(cProvider);
rb_define_singleton_method(cProvider, "load", ossl_provider_s_load, 1);
rb_define_singleton_method(cProvider, "provider_names", ossl_provider_s_provider_names, 0);
rb_define_method(cProvider, "unload", ossl_provider_unload, 0);
rb_define_method(cProvider, "name", ossl_provider_get_name, 0);
rb_define_method(cProvider, "inspect", ossl_provider_inspect, 0);
}
#else
void
Init_ossl_provider(void)
{
}
#endif

Просмотреть файл

@ -0,0 +1,5 @@
#if !defined(OSSL_PROVIDER_H)
#define OSSL_PROVIDER_H
void Init_ossl_provider(void);
#endif

Просмотреть файл

@ -0,0 +1,67 @@
# frozen_string_literal: true
require_relative 'utils'
if defined?(OpenSSL) && defined?(OpenSSL::Provider) && !OpenSSL.fips_mode
class OpenSSL::TestProvider < OpenSSL::TestCase
def test_openssl_provider_name_inspect
with_openssl <<-'end;'
provider = OpenSSL::Provider.load("default")
assert_equal("default", provider.name)
assert_not_nil(provider.inspect)
end;
end
def test_openssl_provider_names
with_openssl <<-'end;'
legacy_provider = OpenSSL::Provider.load("legacy")
assert_equal(2, OpenSSL::Provider.provider_names.size)
assert_includes(OpenSSL::Provider.provider_names, "legacy")
assert_equal(true, legacy_provider.unload)
assert_equal(1, OpenSSL::Provider.provider_names.size)
assert_not_includes(OpenSSL::Provider.provider_names, "legacy")
end;
end
def test_unloaded_openssl_provider
with_openssl <<-'end;'
default_provider = OpenSSL::Provider.load("default")
assert_equal(true, default_provider.unload)
assert_raise(OpenSSL::Provider::ProviderError) { default_provider.name }
assert_raise(OpenSSL::Provider::ProviderError) { default_provider.unload }
end;
end
def test_openssl_legacy_provider
with_openssl(<<-'end;')
OpenSSL::Provider.load("legacy")
algo = "RC4"
data = "a" * 1000
key = OpenSSL::Random.random_bytes(16)
# default provider does not support RC4
cipher = OpenSSL::Cipher.new(algo)
cipher.encrypt
cipher.key = key
encrypted = cipher.update(data) + cipher.final
other_cipher = OpenSSL::Cipher.new(algo)
other_cipher.decrypt
other_cipher.key = key
decrypted = other_cipher.update(encrypted) + other_cipher.final
assert_equal(data, decrypted)
end;
end
private
# this is required because OpenSSL::Provider methods change global state
def with_openssl(code, **opts)
assert_separately([{ "OSSL_MDEBUG" => nil }, "-ropenssl"], <<~"end;", **opts)
#{code}
end;
end
end
end