https://github.com/openssl/openssl

sort by:
Revision Author Date Message Commit Date
d4e4bd2 Prepare for 1.1.0h release Reviewed-by: Richard Levitte <levitte@openssl.org> 27 March 2018, 13:50:36 UTC
f520f13 Update copyright year Reviewed-by: Richard Levitte <levitte@openssl.org> 27 March 2018, 12:43:23 UTC
bcbde69 Update CHANGES and NEWS for the new release Reviewed-by: Richard Levitte <levitte@openssl.org> 27 March 2018, 12:32:35 UTC
56d5a4b pariscid.pl: fix nasty typo in CRYPTO_memcmp. Comparison was effectively reduced to least significant bits. CVE-2018-0733 Reviewed-by: Matt Caswell <matt@openssl.org> 27 March 2018, 09:23:34 UTC
e25aef6 Add fuzz corpora file that found the ASN.1 stack depth issue Reviewed-by: Rich Salz <rsalz@openssl.org> 27 March 2018, 09:23:34 UTC
2ac4c6f Limit ASN.1 constructed types recursive definition depth Constructed types with a recursive definition (such as can be found in PKCS7) could eventually exceed the stack given malicious input with excessive recursion. Therefore we limit the stack depth. CVE-2018-0739 Credit to OSSFuzz for finding this issue. Reviewed-by: Rich Salz <rsalz@openssl.org> 27 March 2018, 09:23:34 UTC
d8278da Copy the produced .dll files to fuzz/ as well (Cygwin & mingw) Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5759) 27 March 2018, 09:18:10 UTC
a53d19c Previously this x509 command line was working, restore that openssl x509 -in server.pem -signkey privkey.pem -out server.pem Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5747) 26 March 2018, 13:15:28 UTC
62d51ff Fix dsaparam -genkey with DER outform Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5744) (cherry picked from commit 5281435258b5d8201a00b4a9781bb724d99630f0) 26 March 2018, 13:13:29 UTC
5edeb62 Fix ecparam -genkey with point compression or DER outform Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5741) (cherry picked from commit 4bdc25b07f007d9c383fbad159f81543f2e95965) 25 March 2018, 09:14:07 UTC
1bfb786 Handle partial messages in TLSProxy Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5726) 22 March 2018, 16:43:02 UTC
813bcdf The default conv_form is uncompressed Fixes #5711 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5712) (cherry picked from commit ab0a3914a64d8f1fce22795c02269e1288df52b1) 21 March 2018, 20:01:22 UTC
7150a47 consttime flag changed Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5170) 21 March 2018, 17:36:40 UTC
011f82e used ERR set/pop mark Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5170) 21 March 2018, 17:36:40 UTC
9db724c Replaced variable-time GCD with consttime inversion to avoid side-channel attacks on RSA key generation Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5170) 21 March 2018, 17:36:40 UTC
178a2a6 Cleanup the s_time command. Various code-cleanups. Use SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY) insead of handling SSL_ERROR_WANT_READ everywhere. Turn off the linger option on connected sockets to avoid failure. Add BIO_set_conn_mode(conn, BIO_SOCK_NODELAY) to improve thruput. Continue test even without -cipher option as in 1.0.2. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5698) 21 March 2018, 16:27:44 UTC
329aa34 Don't wait for dry at the end of a handshake For DTLS/SCTP we were waiting for a dry event during the call to tls_finish_handshake(). This function just tidies up various internal things, and after it completes the handshake is over. I can find no good reason for waiting for a dry event here, and nothing in RFC6083 suggests to me that we should need to. More importantly though it seems to be wrong. It is perfectly possible for a peer to send app data/alerts/new handshake while we are still cleaning up our handshake. If this happens then we will never get the dry event and so we cannot continue. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5085) 21 March 2018, 10:32:15 UTC
041ddc3 Check for alerts while waiting for a dry event At a couple of points in a DTLS/SCTP handshake we need to wait for a dry event before continuing. However if an alert has been sent by the peer then we will never receive that dry event and an infinite loop results. This commit changes things so that we attempt to read a message if we are waiting for a dry event but haven't got one yet. This should never succeed, but any alerts will be processed. Fixes #4763 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5085) 21 March 2018, 10:32:15 UTC
8e40577 Do not cache sessions with zero sid_ctx_length when SSL_VERIFY_PEER The sid_ctx is something of a "certificate request context" or a "session ID context" -- something from the application that gives extra indication of what sort of thing this session is/was for/from. Without a sid_ctx, we only know that there is a session that we issued, but it could have come from a number of things, especially with an external (shared) session cache. Accordingly, when resuming, we will hard-error the handshake when presented with a session with zero-length sid_ctx and SSL_VERIFY_PEER is set -- we simply have no information about the peer to verify, so the verification must fail. In order to prevent these future handshake failures, proactively decline to add the problematic sessions to the session cache. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5175) (cherry picked from commit d316cdcf6d8d6934663278145fe0a8191e14a8c5) 21 March 2018, 00:36:00 UTC
b9b5e71 Remove mentioned link between message digests and public key algorithms. Refer #5682 This is the same but for 1.1.0 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5683) 20 March 2018, 21:37:06 UTC
418c784 Make pkeyutl a bit more user-friendly Give meaningful error messages when the user incorrectly uses pkeyutl; backport to OpenSSL_1_1_0-stable, cherrypicked from f6add6ac2c42df37d63b36dbef43e701875893d7. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5699) 20 March 2018, 20:02:44 UTC
c081558 s_client, s_server: do generic SSL configuration first, specialization after We did the SSL_CONF_cmd() pass last of all things that could affect the SSL ctx. However, the results of this, for example: -max_protocol TLSv1.3 -tls1_2 ... would mean that the protocol min got set to TLSv1.2 and the protocol max to TLSv1.3, when they should clearly both be TLSv1.2. However, if we see the SSL_CONF_cmd() switches as generic and those internal to s_client and s_server as specialisations, we get something that makes a little more sense. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5679) (cherry picked from commit 8f8be103fd7d8b5992724d618c99cbddd7dd00d7) 19 March 2018, 22:45:37 UTC
b402b77 Enhance ssltestlib's create_ssl_ctx_pair to take min and max proto version Have all test programs using that function specify those versions. Additionally, have the remaining test programs that use SSL_CTX_new directly specify at least the maximum protocol version. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5662) 19 March 2018, 17:27:13 UTC
b4ea929 In TLSProxy::Proxy, specify TLSv1.2 as maximum allowable protocol Partially fixes #5661 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5662) 19 March 2018, 07:46:35 UTC
1f71819 Support "-min_protocol" and "-max_protocol" in s_server and s_client If for nothing else, they are needed when doing a regression test Partially fixes #5661 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5662) 19 March 2018, 07:46:29 UTC
f778cd2 Stop test/shlibloadtest.c from failing in a regression test When doing a regression test, it's obvious that the version test/shlibloadtest is built for will not be the same as the library version. So we change the test to check for assumed compatibility. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5620) 19 March 2018, 06:03:23 UTC
c8ee367 Add a simple method to run regression tests This is only useful when building shared libraries. This allows us to run our tests against newer libraries when the time comes. Simply do this: OPENSSL_REGRESSION=/other/OpenSSL/build/tree make test ($OPENSSL_REGRESSION *must* be an absolute path) Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5620) 19 March 2018, 06:03:23 UTC
ec76f17 Fix a memory leak in tls1_mac Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5651) 17 March 2018, 07:29:45 UTC
ba2502d Fix a memory leak in n_ssl3_mac Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5649) 17 March 2018, 07:27:21 UTC
c8928d9 Fix error handling in b2i_dss and b2i_rsa Fixes: #5567 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5624) (cherry picked from commit d288d7fc7beaa1d720a539d6ae27dba2c910ee68) 17 March 2018, 07:16:36 UTC
4161342 Windows makefile: don't use different looking variants of same cmd Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5635) (cherry picked from commit ad3350a90b81275ed2357cad0b9d435d6077bf9d) 15 March 2018, 21:23:45 UTC
6403471 Fix a memory leak in the ca application Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5627) 15 March 2018, 13:32:23 UTC
23324ce Allow multiple entries without a Subject even if unique_subject == yes It is quite likely for there to be multiple certificates with empty subjects, which are still distinct because of subjectAltName. Therefore we allow multiple certificates with an empty Subject even if unique_subject is set to yes. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5627) 15 March 2018, 13:32:23 UTC
e0e77c5 Report a readable error on a duplicate cert in ca app Commit 87e8feca (16 years ago!) introduced a bug where if we are attempting to insert a cert with a duplicate subject name, and duplicate subject names are not allowed (which is the default), then we get an unhelpful error message back (error number 2). Prior to that commit we got a helpful error message which displayed details of the conflicting entry in the database. That commit was itself attempting to fix a bug with the noemailDN option where we were setting the subject field in the database too early (before extensions had made any amendments to it). This PR moves the check for a conflicting Subject name until after all changes to the Subject have been made by extensions etc. This also, co-incidentally fixes the ca crashing bug described in issue 5109. Fixes #5109 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5627) 15 March 2018, 13:32:23 UTC
130db4a Revert "Don't allow an empty Subject when creating a Certificate" This reverts commit f2982ad79c9eeac4d8ee4225056f971eadf9302b. Empty Subjects should be permissible. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5627) 15 March 2018, 13:32:23 UTC
9995007 Revert "Don't crash on a missing Subject in index.txt" This reverts commit 462163e91a6f06e8bf0791a01f6e0a1897ad2081. Empty subjects should be permissible. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5627) 15 March 2018, 13:32:23 UTC
98e4c10 Free the correct type in OBJ_add_object() We should be using ASN1_OBJECT_free() not OPENSSL_free(). Fixes #5568 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5598) 12 March 2018, 19:52:06 UTC
7e454ca Improve error handling in pk7_doit If a mem allocation failed we would ignore it. This commit fixes it to always check. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5596) (cherry picked from commit 4718f449a3ecd5efac62b22d0fa9a759a7895dbc) 12 March 2018, 19:18:13 UTC
cd70b64 Configurations/unix-Makefile.tmpl: overhaul assembler make rules. So far assembly modules were built as .pl->.S->.s followed by .s->.o. This posed a problem in build_all_generated rule if it was executed on another computer. So we change rule sequence to .pl->.S and then .S->.s->.o. (backport of a23f03166e0ec49ac09b3671e7ab4ba4fa57d42a) Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5581) 12 March 2018, 10:06:17 UTC
283b120 Fix propotype to include the const qualifier Reviewed-by: Andy Polyakov <appro@openssl.org> GH: #5582 11 March 2018, 13:27:57 UTC
d8bb766 Configure: catch the build tree configdata.pm There are things depending on configdata.pm. However, it's perfectly possible that there is one in the source directory from a previous build, and that might disrupt an out of source build. To avoid this conflict, make sure never to use the source tree configdata.pm in that case, i.e. make the hard assumption that it's a generated file in the build tree, which it is. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5546) (cherry picked from commit 846e4c4d650da50f049ee74901e840ffe409fa69) 10 March 2018, 08:53:48 UTC
5cdc23a Configure: don't mangle the directory again when checking DEPEND inclusion When generating the correct inclusion directory for DEPEND, we mangled it to be relative to the build or the source directory. However, the value we handle already come with a correct directory, so we only need to use it as is. Fixes #5543 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5546) (cherry picked from commit 906032d5a04f8cf8af5f515e0a8ea44a2285a2cc) 10 March 2018, 08:51:58 UTC
8cd40e1 Restore the display of options with 'openssl version -a' Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5572) (cherry picked from commit b971b05ec6893fe7a3416a3b34d50a52b6cfe9bc) 09 March 2018, 13:43:01 UTC
d06c715 Configurations/10-main.conf: add -fno-common back to darwin-ppc-cc. -fno-common was removed for all Darwin targets in 0c8734198d4282f6997965a03cd2e0ceaf207549 with rationale "it's either 'ranlib -c' or '-fno-common'." However, it's still absolutely required in 32-bit darwin-ppc-cc. And when trying things out I didn't quite see why it was formulated as one-or-another choice, as 'ranlib -c' shouldn't [and doesn't] have problems with object modules without commons. [Well, to be frank, I didn't manage to reproduce the problem the modification was meaning to resolve either...] (backport of 107783d9c56e7dcb338c011fa202ffa8f066dbca) Reviewed-by: Richard Levitte <levitte@openssl.org> 08 March 2018, 22:12:56 UTC
40d867c Remove useless -D_ENDIAN from MPE/iX-gcc config Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5565) 08 March 2018, 21:04:33 UTC
00595b7 Make a few more asm modules conform: last argument is output file Fixes #5310 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5316) 08 March 2018, 18:28:11 UTC
bfdcf29 Configurations/unix-Makefile.tmpl: remove assignment of AS and ASFLAGS We have never used these variables with the Unix Makefile, and there's no reason for us to change this, so to avoid confusion, we remove them. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5545) (cherry picked from commit 61ab6919183fe804f3ed5cf26fcc121a4ecbb6af) 07 March 2018, 15:29:14 UTC
7d162ac BIO_s_mem.pod: fix indirection for out parameter **pp BIO_get_mem_data() and BIO_get_mem_ptr() assign to *pp, not pp Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5544) 07 March 2018, 14:12:00 UTC
77ba00b util/dofile.pl: only quote stuff that actually needs quoting Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5533) (cherry picked from commit 49cd47eaababc8c57871b929080fc1357e2ad7b8) 06 March 2018, 20:21:42 UTC
a635698 opensslconf.h.in: Use all the "openssl_api_defines" Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5533) (cherry picked from commit cd15cb4d21fce81c94bc16f991c4bb1c73e71bfe) 06 March 2018, 20:21:42 UTC
4044ebf Avoid unconditional store in CRYPTO_malloc. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5372) (cherry picked from commit 41aede863b76202347c2d5e2c2666428084f9203) 06 March 2018, 18:23:41 UTC
9d927dd d2i_X509.pod: clarify usage of the 'pp' function parameter The 'pp' function parameters of d2i_TYPE() and i2d_TYPE() are referenced in the DESCRIPTION section as 'in' resp. 'out'. This commit renames the references to 'ppin' resp. 'ppout' and adds an explaining sentence. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5365) 06 March 2018, 06:54:16 UTC
fa74032 Fix credit for SRP code Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5504) 04 March 2018, 23:53:45 UTC
e9e28dd Windows makefile: Don't quote generator arguments Rely on the build.info constructor to do the right thing. Fixes #5500 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5501) (cherry picked from commit 1c9858d0d013184ff756d063022161b1853a9cbf) 04 March 2018, 08:44:07 UTC
d4d3e90 mem_sec.c: portability fixup. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/5493) (cherry picked from commit 014cc4b27a7f8ed0cf23a3c9d1fdbf44e41b7993) 03 March 2018, 21:16:01 UTC
2a501ce Fix a possible memory leak in engine_table_register Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5489) (cherry picked from commit 55a7f77d72930f9aee1a51e0af9658b2728be127) 03 March 2018, 18:59:34 UTC
d440216 Fixed a typo in a man page Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5498) (cherry picked from commit c03dc6427cb8d15ddce735b5e5beef606bdea51d) 03 March 2018, 16:56:32 UTC
30ecc60 Fix typo in ASN1_STRING_length doc CLA: trivial Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/5458) 01 March 2018, 19:18:08 UTC
ea8d9ce Test the result of CMS_RecipientInfo_ktri_get0_algs() before using its output in rsa_cms_encrypt(). CLA: trivial Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/4966) (cherry picked from commit 178989b4a3ed714fa169cae5865c75f156ec9fdb) 01 March 2018, 15:17:41 UTC
fa9ab9e Always use adr with __thumb2__. Thumb2 addresses are a bit a mess, depending on whether a label is interpreted as a function pointer value (for use with BX and BLX) or as a program counter value (for use with PC-relative addressing). Clang's integrated assembler mis-assembles this code. See https://crbug.com/124610#c54 for details. Instead, use the ADR pseudo-instruction which has clear semantics and should be supported by every assembler that handles the OpenSSL Thumb2 code. (In other files, the ADR vs SUB conditionals are based on __thumb2__ already. For some reason, this one is based on __APPLE__, I'm guessing to deal with an older version of clang assembler.) It's unclear to me which of clang or binutils is "correct" or if this is even a well-defined notion beyond "whatever binutils does". But I will note that https://github.com/openssl/openssl/pull/4669 suggests binutils has also changed behavior around this before. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5431) (cherry picked from commit 8a5d8bc4bc1e835b62d988ad63454540be83d862) 28 February 2018, 11:00:34 UTC
5eb9a42 bio_b64.c: prevent base64 filter BIO from decoding out-of-bound data Fixes #5405, #1381 The base64 filter BIO reads its input in chunks of B64_BLOCK_SIZE bytes. When processing input in PEM format it can happen in rare cases that - the trailing PEM marker crosses the boundary of a chunk, and - the beginning of the following chunk contains valid base64 encoded data. This happened in issue #5405, where the PEM marker was split into "-----END CER" and "TIFICATE-----" at the end of the first chunk. The decoding of the first chunk terminated correctly at the '-' character, which is treated as an EOF marker, and b64_read() returned. However, when called the second time, b64_read() read the next chunk and interpreted the string "TIFICATE" as valid base64 encoded data, adding 6 extra bytes '4c 81 48 08 04 c4'. This patch restores the assignment of the error code to 'ctx->cont', which was deleted accidentally in commit 5562cfaca4f3 and which prevents b64_read() from reading additional data on subsequent calls. This issue was observed and reported by Annie Yousar. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5422) 26 February 2018, 18:32:38 UTC
4974a6f mem_sec.c: relax POSIX requirement. Even though mlock(2) was standardized in POSIX.1-2001, vendors did implement it prior that point. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5460) (cherry picked from commit 5839185cdd9b339ff741da437d964a25e72a3fb6) 26 February 2018, 16:52:20 UTC
831dbc3 test/recipes/80-test_pkcs12.t: handle lack of Win32::API. So far check for availability of Win32::API served as implicit check for $^O being MSWin32. Reportedly it's not safe assumption, and check for MSWin32 has to be explicit. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5416) (cherry picked from commit d4c499f562c1ab7ec7773c3987fc4dce7662a805) 24 February 2018, 13:19:35 UTC
89314d9 Fix some bugs with the cfb1 bitsize handling Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5426) (cherry picked from commit 604e591ed75eff9296c21ee5fe93f3e9ec246094) 23 February 2018, 13:12:18 UTC
15f90bc Update EC_POINT_new.pod CLA: trivial fix typo: EC_point2buf => EC_POINT_point2buf Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5367) (cherry picked from commit 6f4b929af0b7dfb6a4d420fc9a8e25016f616c10) 22 February 2018, 16:43:04 UTC
a9603be do_body: fix heap-use-after-free. The memory pointed to by the 'push' is freed by the X509_NAME_ENTRY_free() in do_body(). The second time it is referenced to (indirectly) in certify_cert:X509_REQ_free(). Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4698) 21 February 2018, 12:22:59 UTC
2d4def0 X509V3_EXT_add_nconf_sk, X509v3_add_ext: fix errors handling X509v3_add_ext: free 'sk' if the memory pointed to by it was malloc-ed inside this function. X509V3_EXT_add_nconf_sk: return an error if X509v3_add_ext() fails. This prevents use of a freed memory in do_body:sk_X509_EXTENSION_num(). Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4698) 21 February 2018, 12:22:56 UTC
5a19f9e Sanity check the ticket length before using key name/IV This could in theory result in an overread - but due to the over allocation of the underlying buffer does not represent a security issue. Thanks to Fedor Indutny for reporting this issue. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5415) 21 February 2018, 11:22:52 UTC
058f12b Add X509_get0_authority_key_id() function This function makes it easier to retrieve a reference to the authority key identifier (akid->keyid) inside a certificate. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5271) (cherry picked from commit b383aa2081467e8d49c3362d295da7bd5cb4e1d8) 19 February 2018, 21:04:16 UTC
c99eaf2 test_ssl_old: avoid empty strings for flags Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5396) (cherry picked from commit 62930b2ecf6ce308fd2ae9ee3e34ace8ba698aac) 19 February 2018, 11:16:29 UTC
d615c80 OpenSSL::Test::quotify: put quotes around empty arguments Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5396) (cherry picked from commit 5845f7de8165f35829e49acd41f6a2fc3698f221) 19 February 2018, 11:14:54 UTC
ed13064 Check the return code from ASN1_TIME_diff() The function can fail so we should check the return code. Found by Coverity Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/5339) (cherry picked from commit 0d502c3511ab3b1c8acb129fb3af836727b8092d) 15 February 2018, 15:29:39 UTC
eadc6bb The function X509_gmtime_adj() can fail Check for a failure and free a_tm as appropriate. Found by Coverity Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/5339) (cherry picked from commit bc2a0dd283c0f61df572b8c2aaf3bfc2dd4b7571) 15 February 2018, 15:29:39 UTC
144724c Avoid fragile aliasing of SHA224/384 update/final This is purported to save a few cycles, but makes the code less obvious and more brittle, and in fact breaks on platforms where for ABI continuity reasons there is a SHA2 implementation in libc, and so EVP needs to call those to avoid conflicts. A sufficiently good optimizer could simply generate the same entry points for: foo(...) { ... } and bar(...) { return foo(...); } but, even without that, the different is negligible, with the "winner" varying from run to run (openssl speed -evp sha384): Old: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes sha384 28864.28k 117362.62k 266469.21k 483258.03k 635144.87k 649123.16k New: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes sha384 30055.18k 120725.98k 272057.26k 482847.40k 634585.09k 650308.27k Reviewed-by: Rich Salz <rsalz@openssl.org> 14 February 2018, 04:29:07 UTC
b918910 Configure: if a file is generated, never assume it's in the source dir Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5355) (cherry picked from commit 9b7e82f8d939ca6894f941268b219da55f069b26) 13 February 2018, 20:12:26 UTC
a201957 Fix bug in BIO_f_linebuffer() In BIO_f_linebuffer, this would cause an error: BIO_write(bio, "1\n", 1); I.e. there's a \n just after the part of the string that we currently ask to get written. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5353) 13 February 2018, 18:24:22 UTC
3493b39 Copy dlls into fuzz directory This should fix the recent AppVeyor failures. [extended tests] Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4171) (cherry picked from commit 30bb02597df9a79b46bae2ddc9885a35286ed205) 13 February 2018, 18:22:01 UTC
dc5faca Add the target 'build_all_generated' This new target is used to build all generated files and only that. This can be used to prepare everything that requires things like perl for a system that lacks perl and then move everything to that system and do the rest of the build there. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3695) (cherry picked from commit 9b03b91b84b64c086081b87bd0a2c7d3612af6c0) 13 February 2018, 17:58:29 UTC
751485c Remove code that prints "<SPACES/NULS>" in hexdumps when the data block ends with SPACEs or NULs. The problem is, you can't see if the data ends with SPACE or NUL or a combination of both. This can happen for instance with openssl rsautl -decrypt -hexdump Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5332) 12 February 2018, 14:38:33 UTC
ecd72c0 Copy name string in BIO_meth_new Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5319) 10 February 2018, 20:07:39 UTC
04f53be Avoid leaking peername data via accept BIOs Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 4e0752535eb87b9aab4cf193f4422b5801ab7b32) 10 February 2018, 02:08:17 UTC
5a91d38 Swap the check in ssl3_write_pending to avoid using the possibly indeterminate pointer value in wpend_buf. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5307) 09 February 2018, 18:54:03 UTC
622ddb5 Don't calculate the Finished MAC twice In <= TLSv1.2 a Finished message always comes immediately after a CCS except in the case of NPN where there is an additional message between the CCS and Finished. Historically we always calculated the Finished MAC when we processed the CCS. However to deal with NPN we also calculated it when we receive the Finished message. Really this should only have been done if we hand negotiated NPN. This simplifies the code to only calculate the MAC when we receive the Finished. In 1.1.1 we need to do it this way anyway because there is no CCS (except in middlebox compat mode) in TLSv1.3. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5286) 09 February 2018, 15:32:00 UTC
30562ca util/mkdef.pl: Fix incomplete cherry-pick The cherry pick that resulted in 65de3f1657d8a3bdb7c48063931a3c619817c921 was incomplete. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5283) 08 February 2018, 11:54:25 UTC
65de3f1 util/mkdef.pl: use better array in search of 'DEPRECATEDIN_' %disabled_algorithms isn't necessarily initialised with the "algos" 'DEPRECATEDIN_1_1_0' etc. However, we know that @known_algorithms has them all, so use that to find them instead. Fixes #5157 (where this was reported) Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5282) (cherry picked from commit b53fdad0e4350ba49812c50305686ee5a6239111) 08 February 2018, 11:46:36 UTC
d8ba72c util/mkdef.pl: Trust configdata.pm This script kept its own database of disablable algorithms, which is a maintenance problem, as it's not always perfectly in sync with what Configure does. However, we do have all the data in configdata.pm, produced by Configure, so let's use that instead. Also, make sure to parse the *err.h header files, as they contain function declarations that might not be present elsewhere. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5157) (cherry picked from commit 54f3b7d2f5a313e5c702f75ee030f8a08e6bf6aa) 08 February 2018, 11:43:10 UTC
db5ec96 Make all private functions in e_afalg.c static Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5273) 07 February 2018, 21:31:49 UTC
4bcc6a1 Remove unused file Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5267) (cherry picked from commit a3a5d1b73db46274e2cdedaad42fda5ce5cfb2da) 06 February 2018, 20:27:58 UTC
db91094 Fix timing leak in BN_from_montgomery_word. BN_from_montgomery_word doesn't have a constant memory access pattern. Replace the pointer trick with a constant-time select. There is, of course, still the bn_correct_top leak pervasive in BIGNUM itself. See also https://boringssl-review.googlesource.com/22904 from BoringSSL. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/5228) (cherry picked from commit f345b1f39d9b4e4c9ef07e7522e9b2a870c9ca09) 01 February 2018, 20:53:57 UTC
723183b Don't leak the exponent bit width in BN_mod_exp_mont_consttime. The exponent here is one of d, dmp1, or dmq1 for RSA. This value and its bit length are both secret. The only public upper bound is the bit width of the corresponding modulus (RSA n, p, and q, respectively). Although BN_num_bits is constant-time (sort of; see bn_correct_top notes in preceding patch), this does not fix the root problem, which is that the windows are based on the minimal bit width, not the upper bound. We could use BN_num_bits(m), but BN_mod_exp_mont_consttime is public API and may be called with larger exponents. Instead, use all top*BN_BITS2 bits in the BIGNUM. This is still sensitive to the long-standing bn_correct_top leak, but we need to fix that regardless. This may cause us to do a handful of extra multiplications for RSA keys which are just above a whole number of words, but that is not a standard RSA key size. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5154) (cherry picked from commit 39eeb64f59ff838f976ad305de7d15747d47a41c) 01 February 2018, 20:45:52 UTC
0b9373c Make BN_num_bits_word constant-time. (This patch was written by Andy Polyakov. I only wrote the commit message. Mistakes in the analysis are my fault.) BN_num_bits, by way of BN_num_bits_word, currently leaks the most-significant word of its argument via branching and memory access pattern. BN_num_bits is called on RSA prime factors in various places. These have public bit lengths, but all bits beyond the high bit are secret. This fully resolves those cases. There are a few places where BN_num_bits is called on an input where the bit length is also secret. This does *not* fully resolve those cases as we still only look at the top word. Today, that is guaranteed to be non-zero, but only because of the long-standing bn_correct_top timing leak. Once that is fixed, a constant-time BN_num_bits on such inputs must count bits on each word. Instead, those cases should not call BN_num_bits at all. In particular, BN_mod_exp_mont_consttime uses the exponent bit width to pick windows, but it should be using the maximum bit width. The next patch will fix this. Thanks to Dinghao Wu, Danfeng Zhang, Shuai Wang, Pei Wang, and Xiao Liu for reporting this issue. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5154) (cherry picked from commit 972c87dfc7e765bd28a4964519c362f0d3a58ca4) 01 February 2018, 20:45:40 UTC
d8adfdc Add OPENSSL_VERSION_AT_LEAST added macro to create version number use the macro to build OPENSSL_VERSION_AT_LEAST(maj,min,fix) so that customers of libssl (such as ruby-openssl) do not need to be so aware of openssl version numbers. includes updates to ssl(7) and OPENSSL_VERSION_NUMBER(3) man page Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5212) (cherry picked from commit 3c5a61dd0f9d9a9eac098419bcaf47d1c296ca81) 01 February 2018, 18:27:30 UTC
d4577a1 Remove "dummy" BIO create and destroy functions They aren't needed if all they do is set bio->init = 1 and zero other fields that are already zeroed Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5223) (cherry picked from commit 94f1c9379c3ed4b088718b35d0dd807d619d50c5) 31 January 2018, 16:47:06 UTC
cd1caea BIO: at the end of BIO_new, declare the BIO inited if no create method present Without this, every BIO implementation is forced to have a create method, just to set bio->init = 1. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5223) (cherry picked from commit 7f55808fe723c146428415a470ed42331548007b) 31 January 2018, 16:45:45 UTC
96de98b Update CHANGES with info about SSL_OP_NO_RENGOTIATION Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/4901) 30 January 2018, 19:31:35 UTC
6e127fd Add the SSL_OP_NO_RENEGOTIATION option to 1.1.0 This is based on a heavily modified version of commit db0f35dda by Todd Short from the master branch. We are adding this because it used to be possible to disable reneg using the flag SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS in 1.0.2. This is no longer possible because of the opacity work. A point to note about this is that if an application built against new 1.1.0 headers (that know about the new option SSL_OP_NO_RENEGOTIATION option) is run using an older version of 1.1.0 (that doesn't know about the option) then the option will be accepted but nothing will happen, i.e. renegotiation will not be prevented. There's probably not much we can do about that. Fixes #4739 Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/4901) 30 January 2018, 19:31:35 UTC
1249258 Make sure we check an incoming reneg ClientHello in DTLS In TLS we have a check to make sure an incoming reneg ClientHello is acceptable. The equivalent check is missing in the DTLS code. This means that if a client does not signal the ability to handle secure reneg in the initial handshake, then a subsequent reneg handshake should be rejected by the server. In the DTLS case the reneg was being allowed if the the 2nd ClientHello had a renegotiation_info extension. This is incorrect. While incorrect, this does not represent a security issue because if the renegotiation_info extension is present in the second ClientHello it also has to be *correct*. Therefore this will only work if both the client and server believe they are renegotiating, and both know the previous Finished result. This is not the case in an insecure rengotiation attack. I have also tidied up the check in the TLS code and given a better check for determining whether we are renegotiating or not. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5191) 30 January 2018, 16:02:07 UTC
c6a351a Fix strict-warnings build on FreeBSD The cryptodev engine is only available for OpenBSD and FreeBSD, but for the OS version-specific checks the OpenBSD macro is not defined on FreeBSD. When building with -Werror and -Wundef (enabled by strict-warnings), the FreeBSD build fails: crypto/engine/eng_cryptodev.c:47:7: error: 'OpenBSD' is not defined, evaluates to 0 [-Werror,-Wundef] \# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && \# __FreeBSD_versi... ^ The reverse case would be true on OpenBSD (__FreeBSD_version would not be defined), but since the boolean will short-circuit and this code is only executed on OpenBSD and FreeBSD, and the line is already pretty long, leave that out for now. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5160) 29 January 2018, 14:30:11 UTC
b09aa27 Don't define OPENSSL_NO_ERR for the command line It's already in opensslconf.h, which is included where this is relevant. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5188) (cherry picked from commit 711a8b999e7a0733f349e7f330fa3fa013e995fd) 29 January 2018, 14:28:28 UTC
425df74 Remove $no_sse2, as it's just a 'copy' of $disabled{sse2} Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5188) (cherry picked from commit 0d59958c4999a456531835d0b61ba4eaecceaf86) 29 January 2018, 14:27:07 UTC
back to top