openssl 2.2.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +33 -45
- data/History.md +248 -1
- data/README.md +36 -19
- data/ext/openssl/extconf.rb +101 -68
- data/ext/openssl/openssl_missing.c +0 -66
- data/ext/openssl/openssl_missing.h +26 -45
- data/ext/openssl/ossl.c +128 -237
- data/ext/openssl/ossl.h +31 -12
- data/ext/openssl/ossl_asn1.c +26 -13
- data/ext/openssl/ossl_bn.c +213 -139
- data/ext/openssl/ossl_cipher.c +13 -14
- data/ext/openssl/ossl_config.c +412 -41
- data/ext/openssl/ossl_config.h +4 -7
- data/ext/openssl/ossl_digest.c +10 -10
- data/ext/openssl/ossl_engine.c +17 -16
- data/ext/openssl/ossl_hmac.c +57 -136
- data/ext/openssl/ossl_kdf.c +12 -4
- data/ext/openssl/ossl_ns_spki.c +1 -1
- data/ext/openssl/ossl_ocsp.c +11 -59
- data/ext/openssl/ossl_pkcs12.c +22 -4
- data/ext/openssl/ossl_pkcs7.c +45 -62
- data/ext/openssl/ossl_pkey.c +1320 -196
- data/ext/openssl/ossl_pkey.h +36 -73
- data/ext/openssl/ossl_pkey_dh.c +152 -347
- data/ext/openssl/ossl_pkey_dsa.c +157 -413
- data/ext/openssl/ossl_pkey_ec.c +227 -343
- data/ext/openssl/ossl_pkey_rsa.c +159 -491
- data/ext/openssl/ossl_provider.c +211 -0
- data/ext/openssl/ossl_provider.h +5 -0
- data/ext/openssl/ossl_ssl.c +530 -450
- data/ext/openssl/ossl_ssl_session.c +29 -30
- data/ext/openssl/ossl_ts.c +38 -23
- data/ext/openssl/ossl_x509.c +0 -6
- data/ext/openssl/ossl_x509attr.c +1 -1
- data/ext/openssl/ossl_x509cert.c +168 -12
- data/ext/openssl/ossl_x509crl.c +14 -11
- data/ext/openssl/ossl_x509ext.c +14 -9
- data/ext/openssl/ossl_x509name.c +10 -3
- data/ext/openssl/ossl_x509req.c +14 -11
- data/ext/openssl/ossl_x509revoked.c +4 -4
- data/ext/openssl/ossl_x509store.c +166 -75
- data/lib/openssl/buffering.rb +9 -3
- data/lib/openssl/digest.rb +1 -5
- data/lib/openssl/hmac.rb +65 -0
- data/lib/openssl/pkey.rb +429 -0
- data/lib/openssl/ssl.rb +22 -17
- data/lib/openssl/version.rb +1 -1
- data/lib/openssl/x509.rb +22 -0
- data/lib/openssl.rb +0 -1
- metadata +10 -79
- data/ext/openssl/ruby_missing.h +0 -24
- data/lib/openssl/config.rb +0 -501
data/ext/openssl/extconf.rb
CHANGED
@@ -13,18 +13,42 @@
|
|
13
13
|
|
14
14
|
require "mkmf"
|
15
15
|
|
16
|
-
|
16
|
+
ssl_dirs = nil
|
17
|
+
if defined?(::TruffleRuby)
|
18
|
+
# Always respect the openssl prefix chosen by truffle/openssl-prefix
|
19
|
+
require 'truffle/openssl-prefix'
|
20
|
+
ssl_dirs = dir_config("openssl", ENV["OPENSSL_PREFIX"])
|
21
|
+
else
|
22
|
+
ssl_dirs = dir_config("openssl")
|
23
|
+
end
|
24
|
+
dir_config_given = ssl_dirs.any?
|
25
|
+
|
26
|
+
_, ssl_ldir = ssl_dirs
|
27
|
+
if ssl_ldir&.split(File::PATH_SEPARATOR)&.none? { |dir| File.directory?(dir) }
|
28
|
+
# According to the `mkmf.rb#dir_config`, the `--with-openssl-dir=<dir>` uses
|
29
|
+
# the value of the `File.basename(RbConfig::MAKEFILE_CONFIG["libdir"])` as a
|
30
|
+
# loaded library directory name.
|
31
|
+
ruby_ldir_name = File.basename(RbConfig::MAKEFILE_CONFIG["libdir"])
|
32
|
+
|
33
|
+
raise "OpenSSL library directory could not be found in '#{ssl_ldir}'. " \
|
34
|
+
"You might want to fix this error in one of the following ways.\n" \
|
35
|
+
" * Recompile OpenSSL by configuring it with --libdir=#{ruby_ldir_name} " \
|
36
|
+
" to specify the OpenSSL library directory.\n" \
|
37
|
+
" * Recompile Ruby by configuring it with --libdir=<dir> to specify the " \
|
38
|
+
"Ruby library directory.\n" \
|
39
|
+
" * Compile this openssl gem with --with-openssl-include=<dir> and " \
|
40
|
+
"--with-openssl-lib=<dir> options to specify the OpenSSL include and " \
|
41
|
+
"library directories."
|
42
|
+
end
|
43
|
+
|
17
44
|
dir_config("kerberos")
|
18
45
|
|
19
46
|
Logging::message "=== OpenSSL for Ruby configurator ===\n"
|
20
47
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
#
|
25
|
-
if with_config("debug") or enable_config("debug")
|
26
|
-
$defs.push("-DOSSL_DEBUG")
|
27
|
-
end
|
48
|
+
$defs.push("-D""OPENSSL_SUPPRESS_DEPRECATED")
|
49
|
+
|
50
|
+
have_func("rb_io_descriptor")
|
51
|
+
have_func("rb_io_maybe_wait(0, Qnil, Qnil, Qnil)", "ruby/io.h") # Ruby 3.1
|
28
52
|
|
29
53
|
Logging::message "=== Checking for system dependent stuff... ===\n"
|
30
54
|
have_library("nsl", "t_open")
|
@@ -90,7 +114,7 @@ def find_openssl_library
|
|
90
114
|
end
|
91
115
|
|
92
116
|
Logging::message "=== Checking for required stuff... ===\n"
|
93
|
-
pkg_config_found = pkg_config("openssl") && have_header("openssl/ssl.h")
|
117
|
+
pkg_config_found = !dir_config_given && pkg_config("openssl") && have_header("openssl/ssl.h")
|
94
118
|
|
95
119
|
if !pkg_config_found && !find_openssl_library
|
96
120
|
Logging::message "=== Checking for required stuff failed. ===\n"
|
@@ -102,15 +126,14 @@ end
|
|
102
126
|
|
103
127
|
version_ok = if have_macro("LIBRESSL_VERSION_NUMBER", "openssl/opensslv.h")
|
104
128
|
is_libressl = true
|
105
|
-
checking_for("LibreSSL version >=
|
106
|
-
try_static_assert("LIBRESSL_VERSION_NUMBER >=
|
129
|
+
checking_for("LibreSSL version >= 3.1.0") {
|
130
|
+
try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x30100000L", "openssl/opensslv.h") }
|
107
131
|
else
|
108
|
-
checking_for("OpenSSL version >= 1.0.
|
109
|
-
try_static_assert("OPENSSL_VERSION_NUMBER >=
|
110
|
-
!try_static_assert("OPENSSL_VERSION_MAJOR >= 3", "openssl/opensslv.h") }
|
132
|
+
checking_for("OpenSSL version >= 1.0.2") {
|
133
|
+
try_static_assert("OPENSSL_VERSION_NUMBER >= 0x10002000L", "openssl/opensslv.h") }
|
111
134
|
end
|
112
135
|
unless version_ok
|
113
|
-
raise "OpenSSL >= 1.0.
|
136
|
+
raise "OpenSSL >= 1.0.2 or LibreSSL >= 3.1.0 is required"
|
114
137
|
end
|
115
138
|
|
116
139
|
# Prevent wincrypt.h from being included, which defines conflicting macro with openssl/x509.h
|
@@ -119,72 +142,82 @@ if is_libressl && ($mswin || $mingw)
|
|
119
142
|
end
|
120
143
|
|
121
144
|
Logging::message "=== Checking for OpenSSL features... ===\n"
|
145
|
+
evp_h = "openssl/evp.h".freeze
|
146
|
+
x509_h = "openssl/x509.h".freeze
|
147
|
+
ts_h = "openssl/ts.h".freeze
|
148
|
+
ssl_h = "openssl/ssl.h".freeze
|
149
|
+
|
122
150
|
# compile options
|
123
|
-
have_func("RAND_egd")
|
151
|
+
have_func("RAND_egd()", "openssl/rand.h")
|
124
152
|
engines = %w{dynamic 4758cca aep atalla chil
|
125
153
|
cswift nuron sureware ubsec padlock capi gmp gost cryptodev}
|
126
154
|
engines.each { |name|
|
127
155
|
have_func("ENGINE_load_#{name}()", "openssl/engine.h")
|
128
156
|
}
|
129
157
|
|
130
|
-
# added in 1.0.2
|
131
|
-
have_func("EC_curve_nist2nid")
|
132
|
-
have_func("X509_REVOKED_dup")
|
133
|
-
have_func("X509_STORE_CTX_get0_store")
|
134
|
-
have_func("SSL_CTX_set_alpn_select_cb")
|
135
|
-
have_func("SSL_CTX_set1_curves_list(NULL, NULL)", "openssl/ssl.h")
|
136
|
-
have_func("SSL_CTX_set_ecdh_auto(NULL, 0)", "openssl/ssl.h")
|
137
|
-
have_func("SSL_get_server_tmp_key(NULL, NULL)", "openssl/ssl.h")
|
138
|
-
have_func("SSL_is_server")
|
139
|
-
|
140
158
|
# added in 1.1.0
|
141
|
-
if !have_struct_member("SSL", "ctx", "openssl/ssl.h") ||
|
142
|
-
try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h")
|
159
|
+
if !have_struct_member("SSL", "ctx", "openssl/ssl.h") || is_libressl
|
143
160
|
$defs.push("-DHAVE_OPAQUE_OPENSSL")
|
144
161
|
end
|
145
|
-
have_func("
|
146
|
-
have_func("
|
147
|
-
have_func("
|
148
|
-
have_func("
|
149
|
-
have_func("
|
150
|
-
have_func("
|
151
|
-
have_func("
|
152
|
-
have_func("
|
153
|
-
have_func("
|
154
|
-
have_func("
|
155
|
-
have_func("
|
156
|
-
have_func("
|
157
|
-
have_func("
|
158
|
-
have_func("
|
159
|
-
have_func("
|
160
|
-
have_func("
|
161
|
-
have_func("
|
162
|
-
have_func("
|
163
|
-
have_func("
|
164
|
-
have_func("
|
165
|
-
have_func("
|
166
|
-
have_func("
|
167
|
-
have_func("
|
168
|
-
have_func("
|
169
|
-
have_func("
|
170
|
-
have_func("
|
171
|
-
have_func("
|
172
|
-
have_func("
|
173
|
-
have_func("
|
174
|
-
have_func("
|
175
|
-
have_func("
|
176
|
-
have_func("
|
177
|
-
have_func("
|
178
|
-
have_func("
|
179
|
-
|
180
|
-
|
181
|
-
have_func("
|
182
|
-
have_func("
|
183
|
-
have_func("
|
184
|
-
|
162
|
+
have_func("EVP_MD_CTX_new()", evp_h)
|
163
|
+
have_func("EVP_MD_CTX_free(NULL)", evp_h)
|
164
|
+
have_func("EVP_MD_CTX_pkey_ctx(NULL)", evp_h)
|
165
|
+
have_func("X509_STORE_get_ex_data(NULL, 0)", x509_h)
|
166
|
+
have_func("X509_STORE_set_ex_data(NULL, 0, NULL)", x509_h)
|
167
|
+
have_func("X509_STORE_get_ex_new_index(0, NULL, NULL, NULL, NULL)", x509_h)
|
168
|
+
have_func("X509_CRL_get0_signature(NULL, NULL, NULL)", x509_h)
|
169
|
+
have_func("X509_REQ_get0_signature(NULL, NULL, NULL)", x509_h)
|
170
|
+
have_func("X509_REVOKED_get0_serialNumber(NULL)", x509_h)
|
171
|
+
have_func("X509_REVOKED_get0_revocationDate(NULL)", x509_h)
|
172
|
+
have_func("X509_get0_tbs_sigalg(NULL)", x509_h)
|
173
|
+
have_func("X509_STORE_CTX_get0_untrusted(NULL)", x509_h)
|
174
|
+
have_func("X509_STORE_CTX_get0_cert(NULL)", x509_h)
|
175
|
+
have_func("X509_STORE_CTX_get0_chain(NULL)", x509_h)
|
176
|
+
have_func("OCSP_SINGLERESP_get0_id(NULL)", "openssl/ocsp.h")
|
177
|
+
have_func("SSL_CTX_get_ciphers(NULL)", ssl_h)
|
178
|
+
have_func("X509_up_ref(NULL)", x509_h)
|
179
|
+
have_func("X509_CRL_up_ref(NULL)", x509_h)
|
180
|
+
have_func("X509_STORE_up_ref(NULL)", x509_h)
|
181
|
+
have_func("SSL_SESSION_up_ref(NULL)", ssl_h)
|
182
|
+
have_func("EVP_PKEY_up_ref(NULL)", evp_h)
|
183
|
+
have_func("SSL_CTX_set_min_proto_version(NULL, 0)", ssl_h)
|
184
|
+
have_func("SSL_CTX_get_security_level(NULL)", ssl_h)
|
185
|
+
have_func("X509_get0_notBefore(NULL)", x509_h)
|
186
|
+
have_func("SSL_SESSION_get_protocol_version(NULL)", ssl_h)
|
187
|
+
have_func("TS_STATUS_INFO_get0_status(NULL)", ts_h)
|
188
|
+
have_func("TS_STATUS_INFO_get0_text(NULL)", ts_h)
|
189
|
+
have_func("TS_STATUS_INFO_get0_failure_info(NULL)", ts_h)
|
190
|
+
have_func("TS_VERIFY_CTS_set_certs(NULL, NULL)", ts_h)
|
191
|
+
have_func("TS_VERIFY_CTX_set_store(NULL, NULL)", ts_h)
|
192
|
+
have_func("TS_VERIFY_CTX_add_flags(NULL, 0)", ts_h)
|
193
|
+
have_func("TS_RESP_CTX_set_time_cb(NULL, NULL, NULL)", ts_h)
|
194
|
+
have_func("EVP_PBE_scrypt(\"\", 0, (unsigned char *)\"\", 0, 0, 0, 0, 0, NULL, 0)", evp_h)
|
195
|
+
have_func("SSL_CTX_set_post_handshake_auth(NULL, 0)", ssl_h)
|
196
|
+
|
197
|
+
# added in 1.1.1
|
198
|
+
have_func("EVP_PKEY_check(NULL)", evp_h)
|
199
|
+
have_func("EVP_PKEY_new_raw_private_key(0, NULL, (unsigned char *)\"\", 0)", evp_h)
|
200
|
+
have_func("SSL_CTX_set_ciphersuites(NULL, \"\")", ssl_h)
|
201
|
+
|
202
|
+
# added in 3.0.0
|
203
|
+
have_func("SSL_set0_tmp_dh_pkey(NULL, NULL)", ssl_h)
|
204
|
+
have_func("ERR_get_error_all(NULL, NULL, NULL, NULL, NULL)", "openssl/err.h")
|
205
|
+
have_func("TS_VERIFY_CTX_set_certs(NULL, NULL)", ts_h)
|
206
|
+
have_func("SSL_CTX_load_verify_file(NULL, \"\")", ssl_h)
|
207
|
+
have_func("BN_check_prime(NULL, NULL, NULL)", "openssl/bn.h")
|
208
|
+
have_func("EVP_MD_CTX_get0_md(NULL)", evp_h)
|
209
|
+
have_func("EVP_MD_CTX_get_pkey_ctx(NULL)", evp_h)
|
210
|
+
have_func("EVP_PKEY_eq(NULL, NULL)", evp_h)
|
211
|
+
have_func("EVP_PKEY_dup(NULL)", evp_h)
|
185
212
|
|
186
213
|
Logging::message "=== Checking done. ===\n"
|
187
214
|
|
215
|
+
# Append flags from environment variables.
|
216
|
+
extcflags = ENV["RUBY_OPENSSL_EXTCFLAGS"]
|
217
|
+
append_cflags(extcflags.split) if extcflags
|
218
|
+
extldflags = ENV["RUBY_OPENSSL_EXTLDFLAGS"]
|
219
|
+
append_ldflags(extldflags.split) if extldflags
|
220
|
+
|
188
221
|
create_header
|
189
222
|
create_makefile("openssl")
|
190
223
|
Logging::message "Done.\n"
|
@@ -10,77 +10,11 @@
|
|
10
10
|
#include RUBY_EXTCONF_H
|
11
11
|
|
12
12
|
#include <string.h> /* memcpy() */
|
13
|
-
#if !defined(OPENSSL_NO_ENGINE)
|
14
|
-
# include <openssl/engine.h>
|
15
|
-
#endif
|
16
|
-
#if !defined(OPENSSL_NO_HMAC)
|
17
|
-
# include <openssl/hmac.h>
|
18
|
-
#endif
|
19
13
|
#include <openssl/x509_vfy.h>
|
20
14
|
|
21
15
|
#include "openssl_missing.h"
|
22
16
|
|
23
|
-
/* added in 1.0.2 */
|
24
|
-
#if !defined(OPENSSL_NO_EC)
|
25
|
-
#if !defined(HAVE_EC_CURVE_NIST2NID)
|
26
|
-
static struct {
|
27
|
-
const char *name;
|
28
|
-
int nid;
|
29
|
-
} nist_curves[] = {
|
30
|
-
{"B-163", NID_sect163r2},
|
31
|
-
{"B-233", NID_sect233r1},
|
32
|
-
{"B-283", NID_sect283r1},
|
33
|
-
{"B-409", NID_sect409r1},
|
34
|
-
{"B-571", NID_sect571r1},
|
35
|
-
{"K-163", NID_sect163k1},
|
36
|
-
{"K-233", NID_sect233k1},
|
37
|
-
{"K-283", NID_sect283k1},
|
38
|
-
{"K-409", NID_sect409k1},
|
39
|
-
{"K-571", NID_sect571k1},
|
40
|
-
{"P-192", NID_X9_62_prime192v1},
|
41
|
-
{"P-224", NID_secp224r1},
|
42
|
-
{"P-256", NID_X9_62_prime256v1},
|
43
|
-
{"P-384", NID_secp384r1},
|
44
|
-
{"P-521", NID_secp521r1}
|
45
|
-
};
|
46
|
-
|
47
|
-
int
|
48
|
-
ossl_EC_curve_nist2nid(const char *name)
|
49
|
-
{
|
50
|
-
size_t i;
|
51
|
-
for (i = 0; i < (sizeof(nist_curves) / sizeof(nist_curves[0])); i++) {
|
52
|
-
if (!strcmp(nist_curves[i].name, name))
|
53
|
-
return nist_curves[i].nid;
|
54
|
-
}
|
55
|
-
return NID_undef;
|
56
|
-
}
|
57
|
-
#endif
|
58
|
-
#endif
|
59
|
-
|
60
17
|
/*** added in 1.1.0 ***/
|
61
|
-
#if !defined(HAVE_HMAC_CTX_NEW)
|
62
|
-
HMAC_CTX *
|
63
|
-
ossl_HMAC_CTX_new(void)
|
64
|
-
{
|
65
|
-
HMAC_CTX *ctx = OPENSSL_malloc(sizeof(HMAC_CTX));
|
66
|
-
if (!ctx)
|
67
|
-
return NULL;
|
68
|
-
HMAC_CTX_init(ctx);
|
69
|
-
return ctx;
|
70
|
-
}
|
71
|
-
#endif
|
72
|
-
|
73
|
-
#if !defined(HAVE_HMAC_CTX_FREE)
|
74
|
-
void
|
75
|
-
ossl_HMAC_CTX_free(HMAC_CTX *ctx)
|
76
|
-
{
|
77
|
-
if (ctx) {
|
78
|
-
HMAC_CTX_cleanup(ctx);
|
79
|
-
OPENSSL_free(ctx);
|
80
|
-
}
|
81
|
-
}
|
82
|
-
#endif
|
83
|
-
|
84
18
|
#if !defined(HAVE_X509_CRL_GET0_SIGNATURE)
|
85
19
|
void
|
86
20
|
ossl_X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig,
|
@@ -12,40 +12,7 @@
|
|
12
12
|
|
13
13
|
#include "ruby/config.h"
|
14
14
|
|
15
|
-
/* added in 1.0.2 */
|
16
|
-
#if !defined(OPENSSL_NO_EC)
|
17
|
-
#if !defined(HAVE_EC_CURVE_NIST2NID)
|
18
|
-
int ossl_EC_curve_nist2nid(const char *);
|
19
|
-
# define EC_curve_nist2nid ossl_EC_curve_nist2nid
|
20
|
-
#endif
|
21
|
-
#endif
|
22
|
-
|
23
|
-
#if !defined(HAVE_X509_REVOKED_DUP)
|
24
|
-
# define X509_REVOKED_dup(rev) (X509_REVOKED *)ASN1_dup((i2d_of_void *)i2d_X509_REVOKED, \
|
25
|
-
(d2i_of_void *)d2i_X509_REVOKED, (char *)(rev))
|
26
|
-
#endif
|
27
|
-
|
28
|
-
#if !defined(HAVE_X509_STORE_CTX_GET0_STORE)
|
29
|
-
# define X509_STORE_CTX_get0_store(x) ((x)->ctx)
|
30
|
-
#endif
|
31
|
-
|
32
|
-
#if !defined(HAVE_SSL_IS_SERVER)
|
33
|
-
# define SSL_is_server(s) ((s)->server)
|
34
|
-
#endif
|
35
|
-
|
36
15
|
/* added in 1.1.0 */
|
37
|
-
#if !defined(HAVE_BN_GENCB_NEW)
|
38
|
-
# define BN_GENCB_new() ((BN_GENCB *)OPENSSL_malloc(sizeof(BN_GENCB)))
|
39
|
-
#endif
|
40
|
-
|
41
|
-
#if !defined(HAVE_BN_GENCB_FREE)
|
42
|
-
# define BN_GENCB_free(cb) OPENSSL_free(cb)
|
43
|
-
#endif
|
44
|
-
|
45
|
-
#if !defined(HAVE_BN_GENCB_GET_ARG)
|
46
|
-
# define BN_GENCB_get_arg(cb) (cb)->arg
|
47
|
-
#endif
|
48
|
-
|
49
16
|
#if !defined(HAVE_EVP_MD_CTX_NEW)
|
50
17
|
# define EVP_MD_CTX_new EVP_MD_CTX_create
|
51
18
|
#endif
|
@@ -54,16 +21,6 @@ int ossl_EC_curve_nist2nid(const char *);
|
|
54
21
|
# define EVP_MD_CTX_free EVP_MD_CTX_destroy
|
55
22
|
#endif
|
56
23
|
|
57
|
-
#if !defined(HAVE_HMAC_CTX_NEW)
|
58
|
-
HMAC_CTX *ossl_HMAC_CTX_new(void);
|
59
|
-
# define HMAC_CTX_new ossl_HMAC_CTX_new
|
60
|
-
#endif
|
61
|
-
|
62
|
-
#if !defined(HAVE_HMAC_CTX_FREE)
|
63
|
-
void ossl_HMAC_CTX_free(HMAC_CTX *);
|
64
|
-
# define HMAC_CTX_free ossl_HMAC_CTX_free
|
65
|
-
#endif
|
66
|
-
|
67
24
|
#if !defined(HAVE_X509_STORE_GET_EX_DATA)
|
68
25
|
# define X509_STORE_get_ex_data(x, idx) \
|
69
26
|
CRYPTO_get_ex_data(&(x)->ex_data, (idx))
|
@@ -147,8 +104,7 @@ void ossl_X509_REQ_get0_signature(const X509_REQ *, const ASN1_BIT_STRING **, co
|
|
147
104
|
CRYPTO_add(&(x)->references, 1, CRYPTO_LOCK_EVP_PKEY);
|
148
105
|
#endif
|
149
106
|
|
150
|
-
#if !defined(HAVE_OPAQUE_OPENSSL)
|
151
|
-
(!defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2070000fL)
|
107
|
+
#if !defined(HAVE_OPAQUE_OPENSSL)
|
152
108
|
#define IMPL_PKEY_GETTER(_type, _name) \
|
153
109
|
static inline _type *EVP_PKEY_get0_##_type(EVP_PKEY *pkey) { \
|
154
110
|
return pkey->pkey._name; }
|
@@ -254,4 +210,29 @@ IMPL_PKEY_GETTER(EC_KEY, ec)
|
|
254
210
|
} while (0)
|
255
211
|
#endif
|
256
212
|
|
213
|
+
/* added in 3.0.0 */
|
214
|
+
#if !defined(HAVE_TS_VERIFY_CTX_SET_CERTS)
|
215
|
+
# define TS_VERIFY_CTX_set_certs(ctx, crts) TS_VERIFY_CTS_set_certs(ctx, crts)
|
216
|
+
#endif
|
217
|
+
|
218
|
+
#ifndef HAVE_EVP_MD_CTX_GET0_MD
|
219
|
+
# define EVP_MD_CTX_get0_md(ctx) EVP_MD_CTX_md(ctx)
|
220
|
+
#endif
|
221
|
+
|
222
|
+
/*
|
223
|
+
* OpenSSL 1.1.0 added EVP_MD_CTX_pkey_ctx(), and then it was renamed to
|
224
|
+
* EVP_MD_CTX_get_pkey_ctx(x) in OpenSSL 3.0.
|
225
|
+
*/
|
226
|
+
#ifndef HAVE_EVP_MD_CTX_GET_PKEY_CTX
|
227
|
+
# ifdef HAVE_EVP_MD_CTX_PKEY_CTX
|
228
|
+
# define EVP_MD_CTX_get_pkey_ctx(x) EVP_MD_CTX_pkey_ctx(x)
|
229
|
+
# else
|
230
|
+
# define EVP_MD_CTX_get_pkey_ctx(x) (x)->pctx
|
231
|
+
# endif
|
232
|
+
#endif
|
233
|
+
|
234
|
+
#ifndef HAVE_EVP_PKEY_EQ
|
235
|
+
# define EVP_PKEY_eq(a, b) EVP_PKEY_cmp(a, b)
|
236
|
+
#endif
|
237
|
+
|
257
238
|
#endif /* _OSSL_OPENSSL_MISSING_H_ */
|