openssl 3.0.1 → 3.0.2
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/History.md +29 -0
- data/ext/openssl/ossl.h +2 -2
- data/ext/openssl/ossl_pkey.c +1 -1
- data/ext/openssl/ossl_pkey_ec.c +33 -17
- data/lib/openssl/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8568ca84395c137b32a22127dcaa2125265d1f5b61a62ba1d56e2373b7a96c4
|
4
|
+
data.tar.gz: 1cef2e5798b482c3096826306a3264b82626f6d6cb23f53d9a71025f5afa46b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bb9f6a40f535f4331097321296028fc2bdc8e5f90e6366c8db5c8e6dca771b55932c01479f667bd0751940917c83a9c98ca9ea70d7c622688cbb24432afdb36
|
7
|
+
data.tar.gz: d9905167ac9e1ffc3201155d39d947e5b0e923797a09ba172a443d4a4040a5d8663edfdb30c935a6d2fa71438e8f8a0fec025c21b5af9290eb76b02a8c100326
|
data/History.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
Version 3.0.2
|
2
|
+
=============
|
3
|
+
|
4
|
+
Merged changes in 2.2.3. Additionally, the following issues are fixed by this
|
5
|
+
release.
|
6
|
+
|
7
|
+
Bug fixes
|
8
|
+
---------
|
9
|
+
|
10
|
+
* Fix OpenSSL::PKey::EC#check_key not working correctly on OpenSSL 3.0.
|
11
|
+
[[GitHub #563]](https://github.com/ruby/openssl/issues/563)
|
12
|
+
[[GitHub #580]](https://github.com/ruby/openssl/pull/580)
|
13
|
+
|
14
|
+
|
1
15
|
Version 3.0.1
|
2
16
|
=============
|
3
17
|
|
@@ -124,6 +138,21 @@ Notable changes
|
|
124
138
|
[[GitHub #342]](https://github.com/ruby/openssl/issues/342)
|
125
139
|
|
126
140
|
|
141
|
+
Version 2.2.3
|
142
|
+
=============
|
143
|
+
|
144
|
+
Bug fixes
|
145
|
+
---------
|
146
|
+
|
147
|
+
* Fix serveral methods in OpenSSL::PKey::EC::Point attempting to raise an error
|
148
|
+
with an incorrect class, which would end up with a TypeError.
|
149
|
+
[[GitHub #570]](https://github.com/ruby/openssl/pull/570)
|
150
|
+
* Fix OpenSSL::PKey::EC::Point#eql? and OpenSSL::PKey::EC::Group#eql?
|
151
|
+
incorrectly treated OpenSSL's internal errors as "not equal".
|
152
|
+
[[GitHub #564]](https://github.com/ruby/openssl/pull/564)
|
153
|
+
* Fix build with LibreSSL 3.5 or later.
|
154
|
+
|
155
|
+
|
127
156
|
Version 2.2.2
|
128
157
|
=============
|
129
158
|
|
data/ext/openssl/ossl.h
CHANGED
@@ -43,13 +43,13 @@
|
|
43
43
|
#ifndef LIBRESSL_VERSION_NUMBER
|
44
44
|
# define OSSL_IS_LIBRESSL 0
|
45
45
|
# define OSSL_OPENSSL_PREREQ(maj, min, pat) \
|
46
|
-
(OPENSSL_VERSION_NUMBER >= (maj << 28) | (min << 20) | (pat << 12))
|
46
|
+
(OPENSSL_VERSION_NUMBER >= ((maj << 28) | (min << 20) | (pat << 12)))
|
47
47
|
# define OSSL_LIBRESSL_PREREQ(maj, min, pat) 0
|
48
48
|
#else
|
49
49
|
# define OSSL_IS_LIBRESSL 1
|
50
50
|
# define OSSL_OPENSSL_PREREQ(maj, min, pat) 0
|
51
51
|
# define OSSL_LIBRESSL_PREREQ(maj, min, pat) \
|
52
|
-
(LIBRESSL_VERSION_NUMBER >= (maj << 28) | (min << 20) | (pat << 12))
|
52
|
+
(LIBRESSL_VERSION_NUMBER >= ((maj << 28) | (min << 20) | (pat << 12)))
|
53
53
|
#endif
|
54
54
|
|
55
55
|
#if !defined(OPENSSL_NO_ENGINE) && !OSSL_OPENSSL_PREREQ(3, 0, 0)
|
data/ext/openssl/ossl_pkey.c
CHANGED
@@ -710,7 +710,7 @@ ossl_pkey_export_traditional(int argc, VALUE *argv, VALUE self, int to_der)
|
|
710
710
|
}
|
711
711
|
}
|
712
712
|
else {
|
713
|
-
#if
|
713
|
+
#if OSSL_OPENSSL_PREREQ(1, 1, 0) || OSSL_LIBRESSL_PREREQ(3, 5, 0)
|
714
714
|
if (!PEM_write_bio_PrivateKey_traditional(bio, pkey, enc, NULL, 0,
|
715
715
|
ossl_pem_passwd_cb,
|
716
716
|
(void *)pass)) {
|
data/ext/openssl/ossl_pkey_ec.c
CHANGED
@@ -483,16 +483,28 @@ static VALUE ossl_ec_key_check_key(VALUE self)
|
|
483
483
|
#ifdef HAVE_EVP_PKEY_CHECK
|
484
484
|
EVP_PKEY *pkey;
|
485
485
|
EVP_PKEY_CTX *pctx;
|
486
|
-
|
486
|
+
EC_KEY *ec;
|
487
487
|
|
488
488
|
GetPKey(self, pkey);
|
489
|
+
GetEC(self, ec);
|
489
490
|
pctx = EVP_PKEY_CTX_new(pkey, /* engine */NULL);
|
490
491
|
if (!pctx)
|
491
|
-
ossl_raise(
|
492
|
-
|
492
|
+
ossl_raise(eECError, "EVP_PKEY_CTX_new");
|
493
|
+
|
494
|
+
if (EC_KEY_get0_private_key(ec) != NULL) {
|
495
|
+
if (EVP_PKEY_check(pctx) != 1) {
|
496
|
+
EVP_PKEY_CTX_free(pctx);
|
497
|
+
ossl_raise(eECError, "EVP_PKEY_check");
|
498
|
+
}
|
499
|
+
}
|
500
|
+
else {
|
501
|
+
if (EVP_PKEY_public_check(pctx) != 1) {
|
502
|
+
EVP_PKEY_CTX_free(pctx);
|
503
|
+
ossl_raise(eECError, "EVP_PKEY_public_check");
|
504
|
+
}
|
505
|
+
}
|
506
|
+
|
493
507
|
EVP_PKEY_CTX_free(pctx);
|
494
|
-
if (ret != 1)
|
495
|
-
ossl_raise(eECError, "EVP_PKEY_public_check");
|
496
508
|
#else
|
497
509
|
EC_KEY *ec;
|
498
510
|
|
@@ -668,10 +680,11 @@ static VALUE ossl_ec_group_eql(VALUE a, VALUE b)
|
|
668
680
|
GetECGroup(a, group1);
|
669
681
|
GetECGroup(b, group2);
|
670
682
|
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
683
|
+
switch (EC_GROUP_cmp(group1, group2, ossl_bn_ctx)) {
|
684
|
+
case 0: return Qtrue;
|
685
|
+
case 1: return Qfalse;
|
686
|
+
default: ossl_raise(eEC_GROUP, "EC_GROUP_cmp");
|
687
|
+
}
|
675
688
|
}
|
676
689
|
|
677
690
|
/*
|
@@ -1232,10 +1245,13 @@ static VALUE ossl_ec_point_eql(VALUE a, VALUE b)
|
|
1232
1245
|
GetECPoint(b, point2);
|
1233
1246
|
GetECGroup(group_v1, group);
|
1234
1247
|
|
1235
|
-
|
1236
|
-
|
1248
|
+
switch (EC_POINT_cmp(group, point1, point2, ossl_bn_ctx)) {
|
1249
|
+
case 0: return Qtrue;
|
1250
|
+
case 1: return Qfalse;
|
1251
|
+
default: ossl_raise(eEC_POINT, "EC_POINT_cmp");
|
1252
|
+
}
|
1237
1253
|
|
1238
|
-
|
1254
|
+
UNREACHABLE;
|
1239
1255
|
}
|
1240
1256
|
|
1241
1257
|
/*
|
@@ -1253,7 +1269,7 @@ static VALUE ossl_ec_point_is_at_infinity(VALUE self)
|
|
1253
1269
|
switch (EC_POINT_is_at_infinity(group, point)) {
|
1254
1270
|
case 1: return Qtrue;
|
1255
1271
|
case 0: return Qfalse;
|
1256
|
-
default: ossl_raise(
|
1272
|
+
default: ossl_raise(eEC_POINT, "EC_POINT_is_at_infinity");
|
1257
1273
|
}
|
1258
1274
|
|
1259
1275
|
UNREACHABLE;
|
@@ -1274,7 +1290,7 @@ static VALUE ossl_ec_point_is_on_curve(VALUE self)
|
|
1274
1290
|
switch (EC_POINT_is_on_curve(group, point, ossl_bn_ctx)) {
|
1275
1291
|
case 1: return Qtrue;
|
1276
1292
|
case 0: return Qfalse;
|
1277
|
-
default: ossl_raise(
|
1293
|
+
default: ossl_raise(eEC_POINT, "EC_POINT_is_on_curve");
|
1278
1294
|
}
|
1279
1295
|
|
1280
1296
|
UNREACHABLE;
|
@@ -1297,7 +1313,7 @@ static VALUE ossl_ec_point_make_affine(VALUE self)
|
|
1297
1313
|
rb_warn("OpenSSL::PKey::EC::Point#make_affine! is deprecated");
|
1298
1314
|
#if !OSSL_OPENSSL_PREREQ(3, 0, 0)
|
1299
1315
|
if (EC_POINT_make_affine(group, point, ossl_bn_ctx) != 1)
|
1300
|
-
ossl_raise(
|
1316
|
+
ossl_raise(eEC_POINT, "EC_POINT_make_affine");
|
1301
1317
|
#endif
|
1302
1318
|
|
1303
1319
|
return self;
|
@@ -1316,7 +1332,7 @@ static VALUE ossl_ec_point_invert(VALUE self)
|
|
1316
1332
|
GetECPointGroup(self, group);
|
1317
1333
|
|
1318
1334
|
if (EC_POINT_invert(group, point, ossl_bn_ctx) != 1)
|
1319
|
-
ossl_raise(
|
1335
|
+
ossl_raise(eEC_POINT, "EC_POINT_invert");
|
1320
1336
|
|
1321
1337
|
return self;
|
1322
1338
|
}
|
@@ -1334,7 +1350,7 @@ static VALUE ossl_ec_point_set_to_infinity(VALUE self)
|
|
1334
1350
|
GetECPointGroup(self, group);
|
1335
1351
|
|
1336
1352
|
if (EC_POINT_set_to_infinity(group, point) != 1)
|
1337
|
-
ossl_raise(
|
1353
|
+
ossl_raise(eEC_POINT, "EC_POINT_set_to_infinity");
|
1338
1354
|
|
1339
1355
|
return self;
|
1340
1356
|
}
|
data/lib/openssl/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openssl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Bosslet
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2022-
|
14
|
+
date: 2022-12-23 00:00:00.000000000 Z
|
15
15
|
dependencies: []
|
16
16
|
description: It wraps the OpenSSL library.
|
17
17
|
email:
|
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
|
-
rubygems_version: 3.
|
120
|
+
rubygems_version: 3.4.0.dev
|
121
121
|
signing_key:
|
122
122
|
specification_version: 4
|
123
123
|
summary: OpenSSL provides SSL, TLS and general purpose cryptography.
|