| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent e94c573 commit 8c85570
99 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -28,6 +28,56 @@ OpenSSL Releases | |||
| 28 | 28 | OpenSSL 3.5 | |
| 29 | 29 | ----------- | |
| 30 | 30 | ||
| 31 | + ### Changes between 3.5.2 and 3.5.3 [16 Sep 2025] | ||
| 32 | + | ||
| 33 | + * Avoided a potential race condition introduced in 3.5.1, where | ||
| 34 | + `OSSL_STORE_CTX` kept open during lookup while potentially being used | ||
| 35 | + by multiple threads simultaneously, that could lead to potential crashes | ||
| 36 | + when multiple concurrent TLS connections are served. | ||
| 37 | + | ||
| 38 | + *Matt Caswell* | ||
| 39 | + | ||
| 40 | + * The FIPS provider no longer performs a PCT on key import for RSA, DH, | ||
| 41 | + and EC keys (that was introduced in 3.5.2), following the latest update | ||
| 42 | + on that requirement in FIPS 140-3 IG 10.3.A additional comment 1. | ||
| 43 | + | ||
| 44 | + *Dr Paul Dale* | ||
| 45 | + | ||
| 46 | + * Secure memory allocation calls are no longer used for HMAC keys. | ||
| 47 | + | ||
| 48 | + *Dr Paul Dale* | ||
| 49 | + | ||
| 50 | + * `openssl req` no longer generates certificates with an empty extension list | ||
| 51 | + when SKID/AKID are set to `none` during generation. | ||
| 52 | + | ||
| 53 | + *David Benjamin* | ||
| 54 | + | ||
| 55 | + * The man page date is now derived from the release date provided | ||
| 56 | + in `VERSION.dat` and not the current date for the released builds. | ||
| 57 | + | ||
| 58 | + *Enji Cooper* | ||
| 59 | + | ||
| 60 | + * Hardened the provider implementation of the RSA public key "encrypt" | ||
| 61 | + operation to add a missing check that the caller-indicated output buffer | ||
| 62 | + size is at least as large as the byte count of the RSA modulus. The issue | ||
| 63 | + was reported by Arash Ale Ebrahim from SYSPWN. | ||
| 64 | + | ||
| 65 | + This operation is typically invoked via `EVP_PKEY_encrypt(3)`. Callers that | ||
| 66 | + in fact provide a sufficiently large buffer, but fail to correctly indicate | ||
| 67 | + its size may now encounter unexpected errors. In applications that attempt | ||
| 68 | + RSA public encryption into a buffer that is too small, an out-of-bounds | ||
| 69 | + write is now avoided and an error is reported instead. | ||
| 70 | + | ||
| 71 | + *Viktor Dukhovni* | ||
| 72 | + | ||
| 73 | + * Added FIPS 140-3 PCT on DH key generation. | ||
| 74 | + | ||
| 75 | + *Nikola Pajkovsky* | ||
| 76 | + | ||
| 77 | + * Fixed the synthesised `OPENSSL_VERSION_NUMBER`. | ||
| 78 | + | ||
| 79 | + *Richard Levitte* | ||
| 80 | + | ||
| 31 | 81 | ### Changes between 3.5.1 and 3.5.2 [5 Aug 2025] | |
| 32 | 82 | ||
| 33 | 83 | * The FIPS provider now performs a PCT on key import for RSA, EC and ECX. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,6 +3,8 @@ | |||
| 3 | 3 | ## | |
| 4 | 4 | ## {- join("\n## ", @autowarntext) -} | |
| 5 | 5 | {- | |
| 6 | + use Time::Piece; | ||
| 7 | + | ||
| 6 | 8 | use OpenSSL::Util; | |
| 7 | 9 | ||
| 8 | 10 | our $makedep_scheme = $config{makedep_scheme}; | |
@@ -74,6 +76,15 @@ FIPSKEY={- $config{FIPSKEY} -} | |||
| 74 | 76 | ||
| 75 | 77 | VERSION={- "$config{full_version}" -} | |
| 76 | 78 | VERSION_NUMBER={- "$config{version}" -} | |
| 79 | + RELEASE_DATE={- my $t = localtime; | ||
| 80 | + if ($config{"release_date"}) { | ||
| 81 | + # Provide the user with a more meaningful error message | ||
| 82 | + # than the default internal parsing error from | ||
| 83 | + # `Time::Piece->strptime(..)`. | ||
| 84 | + eval { $t = Time::Piece->strptime($config{"release_date"}, "%d %b %Y"); } || | ||
| 85 | + die "Parsing \$config{release_date} ('$config{release_date}') failed: $@"; | ||
| 86 | + } | ||
| 87 | + $t->strftime("%Y-%m-%d") -} | ||
| 77 | 88 | MAJOR={- $config{major} -} | |
| 78 | 89 | MINOR={- $config{minor} -} | |
| 79 | 90 | SHLIB_VERSION_NUMBER={- $config{shlib_version} -} | |
@@ -1565,7 +1576,8 @@ EOF | |||
| 1565 | 1576 | return <<"EOF"; | |
| 1566 | 1577 | $args{src}: $pod | |
| 1567 | 1578 | pod2man --name=$name --section=$section\$(MANSUFFIX) --center=OpenSSL \\ | |
| 1568 | - --release=\$(VERSION) $pod >\$\@ | ||
| 1579 | + --date=\$(RELEASE_DATE) --release=\$(VERSION) \\ | ||
| 1580 | + $pod >\$\@ | ||
| 1569 | 1581 | EOF | |
| 1570 | 1582 | } elsif (platform->isdef($args{src})) { | |
| 1571 | 1583 | # | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -23,6 +23,16 @@ OpenSSL Releases | |||
| 23 | 23 | OpenSSL 3.5 | |
| 24 | 24 | ----------- | |
| 25 | 25 | ||
| 26 | + ### Major changes between OpenSSL 3.5.2 and OpenSSL 3.5.3 [16 Sep 2025] | ||
| 27 | + | ||
| 28 | + * Added FIPS 140-3 PCT on DH key generation. | ||
| 29 | + | ||
| 30 | + *Nikola Pajkovsky* | ||
| 31 | + | ||
| 32 | + * Fixed the synthesised `OPENSSL_VERSION_NUMBER`. | ||
| 33 | + | ||
| 34 | + *Richard Levitte* | ||
| 35 | + | ||
| 26 | 36 | ### Major changes between OpenSSL 3.5.1 and OpenSSL 3.5.2 [5 Aug 2025] | |
| 27 | 37 | ||
| 28 | 38 | * none | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -125,7 +125,7 @@ format: | |||
| 125 | 125 | `\\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432node\OpenSSL-<version>-<ctx>` | |
| 126 | 126 | ||
| 127 | 127 | Where `<version>` is the major.minor version of the library being | |
| 128 | - built, and `<ctx>` is the value specified by `-DOPENSSL_WINCTX`. This allows | ||
| 128 | + built, and `<ctx>` is the value specified by `-DOSSL_WINCTX`. This allows | ||
| 129 | 129 | for multiple openssl builds to be created and installed on a single system, in | |
| 130 | 130 | which each library can use its own set of registry keys. | |
| 131 | 131 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,7 @@ | |||
| 1 | 1 | MAJOR=3 | |
| 2 | 2 | MINOR=5 | |
| 3 | - PATCH=2 | ||
| 3 | + PATCH=3 | ||
| 4 | 4 | PRE_RELEASE_TAG= | |
| 5 | 5 | BUILD_METADATA= | |
| 6 | - RELEASE_DATE="5 Aug 2025" | ||
| 6 | + RELEASE_DATE="16 Sep 2025" | ||
| 7 | 7 | SHLIB_VERSION=3 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1280,6 +1280,7 @@ int cms_main(int argc, char **argv) | |||
| 1280 | 1280 | goto end; | |
| 1281 | 1281 | } | |
| 1282 | 1282 | if (ret <= 0) { | |
| 1283 | + BIO_printf(bio_err, "Error writing CMS output\n"); | ||
| 1283 | 1284 | ret = 6; | |
| 1284 | 1285 | goto end; | |
| 1285 | 1286 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -260,6 +260,8 @@ int enc_main(int argc, char **argv) | |||
| 260 | 260 | goto opthelp; | |
| 261 | 261 | if (k) | |
| 262 | 262 | n *= 1024; | |
| 263 | + if (n > INT_MAX) | ||
| 264 | + goto opthelp; | ||
| 263 | 265 | bsize = (int)n; | |
| 264 | 266 | break; | |
| 265 | 267 | case OPT_K: | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -103,7 +103,6 @@ int wrap_password_callback(char *buf, int bufsiz, int verify, void *cb_data); | |||
| 103 | 103 | /* progress callback for dsaparam, dhparam, req, genpkey, etc. */ | |
| 104 | 104 | int progress_cb(EVP_PKEY_CTX *ctx); | |
| 105 | 105 | ||
| 106 | - int chopup_args(ARGS *arg, char *buf); | ||
| 107 | 106 | void dump_cert_text(BIO *out, X509 *x); | |
| 108 | 107 | void print_name(BIO *out, const char *title, const X509_NAME *nm); | |
| 109 | 108 | void print_bignum_var(BIO *, const BIGNUM *, const char *, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -83,55 +83,6 @@ static int set_multi_opts(unsigned long *flags, const char *arg, | |||
| 83 | 83 | const NAME_EX_TBL *in_tbl); | |
| 84 | 84 | int app_init(long mesgwin); | |
| 85 | 85 | ||
| 86 | - int chopup_args(ARGS *arg, char *buf) | ||
| 87 | - { | ||
| 88 | - int quoted; | ||
| 89 | - char c = '\0', *p = NULL; | ||
| 90 | - | ||
| 91 | - arg->argc = 0; | ||
| 92 | - if (arg->size == 0) { | ||
| 93 | - arg->size = 20; | ||
| 94 | - arg->argv = app_malloc(sizeof(*arg->argv) * arg->size, "argv space"); | ||
| 95 | - } | ||
| 96 | - | ||
| 97 | - for (p = buf;;) { | ||
| 98 | - /* Skip whitespace. */ | ||
| 99 | - while (*p && isspace(_UC(*p))) | ||
| 100 | - p++; | ||
| 101 | - if (*p == '\0') | ||
| 102 | - break; | ||
| 103 | - | ||
| 104 | - /* The start of something good :-) */ | ||
| 105 | - if (arg->argc >= arg->size) { | ||
| 106 | - char **tmp; | ||
| 107 | - | ||
| 108 | - arg->size += 20; | ||
| 109 | - tmp = OPENSSL_realloc(arg->argv, sizeof(*arg->argv) * arg->size); | ||
| 110 | - if (tmp == NULL) | ||
| 111 | - return 0; | ||
| 112 | - arg->argv = tmp; | ||
| 113 | - } | ||
| 114 | - quoted = *p == '\'' || *p == '"'; | ||
| 115 | - if (quoted) | ||
| 116 | - c = *p++; | ||
| 117 | - arg->argv[arg->argc++] = p; | ||
| 118 | - | ||
| 119 | - /* now look for the end of this */ | ||
| 120 | - if (quoted) { | ||
| 121 | - while (*p && *p != c) | ||
| 122 | - p++; | ||
| 123 | - *p++ = '\0'; | ||
| 124 | - } else { | ||
| 125 | - while (*p && !isspace(_UC(*p))) | ||
| 126 | - p++; | ||
| 127 | - if (*p) | ||
| 128 | - *p++ = '\0'; | ||
| 129 | - } | ||
| 130 | - } | ||
| 131 | - arg->argv[arg->argc] = NULL; | ||
| 132 | - return 1; | ||
| 133 | - } | ||
| 134 | - | ||
| 135 | 86 | #ifndef APP_INIT | |
| 136 | 87 | int app_init(long mesgwin) | |
| 137 | 88 | { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -662,7 +662,8 @@ int ocsp_main(int argc, char **argv) | |||
| 662 | 662 | resp = | |
| 663 | 663 | OCSP_response_create(OCSP_RESPONSE_STATUS_MALFORMEDREQUEST, | |
| 664 | 664 | NULL); | |
| 665 | - send_ocsp_response(cbio, resp); | ||
| 665 | + if (resp != NULL) | ||
| 666 | + send_ocsp_response(cbio, resp); | ||
| 666 | 667 | } | |
| 667 | 668 | goto done_resp; | |
| 668 | 669 | } | |
@@ -764,16 +765,18 @@ int ocsp_main(int argc, char **argv) | |||
| 764 | 765 | BIO_free(derbio); | |
| 765 | 766 | } | |
| 766 | 767 | ||
| 767 | - i = OCSP_response_status(resp); | ||
| 768 | - if (i != OCSP_RESPONSE_STATUS_SUCCESSFUL) { | ||
| 769 | - BIO_printf(out, "Responder Error: %s (%d)\n", | ||
| 770 | - OCSP_response_status_str(i), i); | ||
| 771 | - if (!ignore_err) | ||
| 768 | + if (resp != NULL) { | ||
| 769 | + i = OCSP_response_status(resp); | ||
| 770 | + if (i != OCSP_RESPONSE_STATUS_SUCCESSFUL) { | ||
| 771 | + BIO_printf(out, "Responder Error: %s (%d)\n", | ||
| 772 | + OCSP_response_status_str(i), i); | ||
| 773 | + if (!ignore_err) | ||
| 772 | 774 | goto end; | |
| 773 | - } | ||
| 775 | + } | ||
| 774 | 776 | ||
| 775 | - if (resp_text) | ||
| 776 | - OCSP_RESPONSE_print(out, resp, 0); | ||
| 777 | + if (resp_text) | ||
| 778 | + OCSP_RESPONSE_print(out, resp, 0); | ||
| 779 | + } | ||
| 777 | 780 | ||
| 778 | 781 | /* If running as responder don't verify our own response */ | |
| 779 | 782 | if (cbio != NULL) { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments