New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Temporarily disable external pyca tests #10722
Closed
mspncp
wants to merge
1
commit into
openssl:OpenSSL_1_1_1-stable
from
mspncp:pr-disable-external-pyca-tests-111
Closed
Temporarily disable external pyca tests #10722
mspncp
wants to merge
1
commit into
openssl:OpenSSL_1_1_1-stable
from
mspncp:pr-disable-external-pyca-tests-111
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The pyca-cryptography external test has been failing for a long time. It looks like upstream needs to make some changes to adapt to 1.1.1. Backported from openssl#10689 [extended tests]
Closed
cc @pyca |
See also #10723. |
mattcaswell
approved these changes
Dec 29, 2019
mspncp
added
the
approval: ready to merge
The 24 hour grace period has passed, ready to merge
label
Dec 31, 2019
Merged to 1.1.1 as 3c57b9c, thanks. |
dstebila
added a commit
to open-quantum-safe/openssl
that referenced
this pull request
Apr 14, 2020
* crypto/threads_win.c: fix preprocessor indentation Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9860) * BIO_f_zlib: Properly handle BIO_CTRL_PENDING and BIO_CTRL_WPENDING calls. There can be data to write in output buffer and data to read that were not yet read in the input stream. Fixes #9866 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9877) (cherry picked from commit 6beb8b39ba8e4cb005c1fcd2586ba19e17f04b95) * Fix potential memory leaks with BN_to_ASN1_INTEGER Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9833) (cherry picked from commit f28bc7d386b25fb75625d0c62c6b2e6d21de0d09) * Add a minimal windows build config for AppVeyor [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9886) * Add a minimal linux build target for Travis [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9888) * Do no mention private headers in public headers Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9812) (cherry picked from commit bd9faf117db1e53b2ad2ee9cbfe8def8c98ecb7b) * Fix small typo in doc for X509_STORE_CTX_new CLA: trivial Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9894) (cherry picked from commit 64c1e74572f16a3e7c225f66fe85a3451ad39e68) * clearing the ecx private key memory Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9830) (cherry picked from commit 6ef03ea98fac501e6d6e33bac6ad3c92ea074712) * Fix building statically without any dso support Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9889) * apps/pkcs12: print multiple PKCS#12 safeBag attribute values if present Currently the pkcs12 app will only ever print the first value of a multi-value attribute. This is OK for some attributes (e.g. friendlyName, localKeyId) but may miss values for other attributes. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9751) (cherry picked from commit dbcc7b45670483cc89428afe1d3c363ef83d76df) * Use the correct maximum indent Found by OSS-Fuzz Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> GH: #9959 (cherry picked from commit a6105ef40d65b35818f2b8ae8ca9e57ca6956d1d) * DOC: fix documentation of som EVP_MD_CTX functions They were documented to take an EVP_MD pointer, when they really take an EVP_MD_CTX pointer. Fixes #9993 Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9997) * Reorganize private crypto header files Currently, there are two different directories which contain internal header files of libcrypto which are meant to be shared internally: While header files in 'include/internal' are intended to be shared between libcrypto and libssl, the files in 'crypto/include/internal' are intended to be shared inside libcrypto only. To make things complicated, the include search path is set up in such a way that the directive #include "internal/file.h" could refer to a file in either of these two directoroes. This makes it necessary in some cases to add a '_int.h' suffix to some files to resolve this ambiguity: #include "internal/file.h" # located in 'include/internal' #include "internal/file_int.h" # located in 'crypto/include/internal' This commit moves the private crypto headers from 'crypto/include/internal' to 'include/crypto' As a result, the include directives become unambiguous #include "internal/file.h" # located in 'include/internal' #include "crypto/file.h" # located in 'include/crypto' hence the superfluous '_int.h' suffixes can be stripped. The files 'store_int.h' and 'store.h' need to be treated specially; they are joined into a single file. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Reorganize local header files Apart from public and internal header files, there is a third type called local header files, which are located next to source files in the source directory. Currently, they have different suffixes like '*_lcl.h', '*_local.h', or '*_int.h' This commit changes the different suffixes to '*_local.h' uniformly. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Fix header file include guard names Make the include guards consistent by renaming them systematically according to the naming conventions below The public header files (in the 'include/openssl' directory) are not changed in 1.1.1, because it is a stable release. For the private header files files, the guard names try to match the path specified in the include directives, with all letters converted to upper case and '/' and '.' replaced by '_'. An extra 'OSSL_' is added as prefix. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Add util/fix-includes script This script contains all adjustments to header files which were made during the reorganization of the header files. It is meant as an aid for other contributors which encounter preprocessor #include errors after rebasing over this pull request. Simply running util/fix-includes from the root of the source directory should hopefully fix the problem. Note: such #include errors are expected only for pull requests which add a lot of new code, in particular new compilation modules. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Fix a return value bug in apps/speed.c Those functions returns less than and equal to 0 to indicate an error occured. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10054) (cherry picked from commit 94bd168a9e31d1ab4986e94056dfae71ec5f051f) * Fix a bundle of mischecks of return values Several EVP_PKEY_xxxx functions return 0 and a negative value for indicating errors. Some places call these functions with a zero return value check only, which misses the check for the negative scenarios. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10055) (cherry picked from commit 7e3ae24832e0705583b1471febf3dc0eb1cc021f) * Correct the function names in SSL_CTX_set_stateless_cookie_generate_cb.pod Although the synopsis used the correct function names, the description did not. Also the description of the equivalent DTLSv1_listen() callbacks was missing, so these have been added. Fixes #10030 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10033) (cherry picked from commit 84f471ecab76a16281a16c53d259bbcae358816f) * Add defines for __NR_getrandom for all Linux architectures Fixes: #10015 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> GH: #10044 (cherry picked from commit 4dcb150ea30f9bbfa7946e6b39c30a86aca5ed02) * Fix long name of some Microsoft objects CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10029) (cherry picked from commit 648b53b88ea55b4c2f2c8c57d041075731db5f95) * Do not print extensions in Certificate message for TLS1.2 and lower According to RFC8446 CertificateEntry in Certificate message contains extensions that were not present in the Certificate message in RFC5246. CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9994) (cherry picked from commit 65c76cd2c9e8da9468dd490b334e56c51dbef582) * doc: EVP_DigestInit clears all flags Mention that EVP_DigestInit() also clears all flags. Fixes: 10031 Signed-off-by: Christian Heimes <christian@python.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10032) (cherry picked from commit 091aab66a6dbc3a3ecee7684aa30811b342f04e7) * Add arm64 in test matrix on TravisCI. Change-Id: I5d2b729699cfd8e80c3df17db4a9d2edcbf64454 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10046) (cherry picked from commit 0399aba7e05ea9bb1a58bd2e1b164f353f6ef1c9) * Fix iOS simulator build Fixes #9999 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10002) * rsa: replace magic number '11' by RSA_PKCS1_PADDING_SIZE Suggested by Matt Hart Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10084) (cherry picked from commit f1d1903dd3dd1d68a5eae190b8c2a88bfe0a68ac) * Define AESNI_ASM if AESNI assembler is included, and use it Because we have cases where basic assembler support isn't present, but AESNI asssembler support is, we need a separate macro that indicates that, and use it. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10080) * 'init_buf' memory can be freed when DTLS is used over SCTP (not over UDP). Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9653) (cherry picked from commit e7c27a6c3716843f8412fd96311b70ac84b785f9) * Fix typo in comment Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10105) (cherry picked from commit 89e5aaa1d72058404d3ea06bfaeff5334aba202d) * Send bad_record_mac instead of decryption_failed The decryption failed alert was deprecated a long time ago. It can provide an attacker too much information to be able to distinguish between MAC failures and decryption failures and can lead to oracle attacks. Instead we should always use the bad_record_mac alert for these issues. This fixes one instance that still exists. It does not represent a security issue in this case because it is only ever sent if the record is publicly invalid, i.e. we have detected it is invalid without using any secret material. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10093) (cherry picked from commit 37133290832ac2d1389926eba7325125fdacbe8d) * Add documentation for PEM_{read,write}_bio_Parameters() Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10113) (cherry picked from commit 9a6abb95be42b88c7c5ebc8c97f14afdc5919aa1) * Fix reference to PEM docs Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10101) (cherry picked from commit 120cc034271e9ab52f92840a16784228e50564f9) * ssl/statem/statem_lib.c: make servercontext/clientcontext arrays of chars instead of char pointers to fix EBCDIC builds. Fixes #9869 CLA:trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9878) * Fix unused goto label gcc warning On systems with undefined AI_ADDRCONFIG and AI_NUMERICHOST: x86_64-w64-mingw32-gcc -I. -Icrypto/include -Iinclude -m64 -Wall -O3 -fno-ident ... crypto/bio/b_addr.c: In function 'BIO_lookup_ex': crypto/bio/b_addr.c:699:7: warning: label 'retry' defined but not used [-Wunused-label] retry: ^~~~~ Regression from: 3f91ede9aea70774d9b5d509bc76d484ebaff6aa Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9856) (cherry picked from commit be66a15cc1a4c3cc68fa854ceea321ca57f96304) * Ignore empty ALPN elements in CLI args Reviewed-by: Matt Caswell <matt@openssl.org> * Configure: accept Windows style compiler options Currently the Configure command only supports passing UNIX style options (`-opt`) to the compiler. Passing Windows style options (`/opt`) yields an error. Fortunately, the compiler accepts both types of options, nevertheless this commit fixes that discrimination of Windows users. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9961) (cherry picked from commit f246f54f18d380791cc60be4aea0fbc7253a9a20) * [ec_asn1.c] Avoid injecting seed when built-in matches An unintended consequence of https://github.com/openssl/openssl/pull/9808 is that when an explicit parameters curve is matched against one of the well-known builtin curves we automatically inherit also the associated seed parameter, even if the input parameters excluded such parameter. This later affects the serialization of such parsed keys, causing their input DER encoding and output DER encoding to differ due to the additional optional field. This does not cause problems internally but could affect external applications, as reported in https://github.com/openssl/openssl/pull/9811#issuecomment-536153288 This commit fixes the issue by conditionally clearing the seed field if the original input parameters did not include it. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10140) (cherry picked from commit f97a8af2f3f3573f0759693117c9d33d2a63c27e) * Ignore duplicated undocumented things Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Yang <yang.yang@baishancloud.com> (cherry picked from commit ee4afacd96f5bfbe7662c8f0ec4464c6eee4c450) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Add missing EVP_MD documentation Signed-off-by: Antoine Salon <asalon@vmware.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 37842dfaebcf28b4ca452c6abd93ebde1b4aa6dc) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Document and add macros for additional DSA options EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS and EVP_PKEY_CTRL_DSA_PARAMGEN_MD are only exposed from EVP_PKEY_CTX_ctrl, which means callers must write more error-prone code (see also issue #1319). Add the missing wrapper macros and document them. Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit a97faad76a1be22eadd6c1a39972ad5e095d9e80) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Add documentation for the -sigopt option. Reviewed-by: Paul Yang <yang.yang@baishancloud.com> (cherry picked from commit d7b2124a428f9e00ed7647554b5be7153aac71f6) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * issue-8493: Fix for filenames with newlines using openssl dgst The output format now matches coreutils *dgst tools. [ edited to remove trailing white space ] Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (cherry picked from commit f3448f5481a8d1f6fbf5fd05caaca229af0b87f7) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * i2d_PublicKey was listed in 2 different man pages find-doc-nits complains if a symbol is documented in more than one location. Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 4ff4e53f816855b07fc02dc931dd57b2ae324aa1) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Fix an incorrect macro A macro was missing a space which was confusing find-doc-nits Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 8caab503ba004abb555d636c1ca9f7bcde79657f) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * [crypto/asn1/x_bignum.c] Explicit test against NULL As a fixup to https://github.com/openssl/openssl/pull/9779 to better conform to the project code style guidelines, this commit amends the original changeset to explicitly test against NULL, i.e. writing ``` if (p != NULL) ``` rather than ``` if (!p) ``` Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9881) * Unify BN_rshift design This commit aims at refactoring the `BN_rshift` by making it a wrapper around `bn_rshift_fixed_top`, in order to match the current design of `BN_lshift`, as suggested in the discussion at https://github.com/openssl/openssl/pull/10122#discussion_r332474277 . As described in the code, by refactoring this function, `BN_rshift` provides a constant-time behavior for sufficiently[!] zero-padded inputs under the following assumptions: `|n < BN_BITS2|` or `|n / BN_BITS2|` being non-secret. Notice that `BN_rshift` returns a canonical representation of the BIGNUM, if a `fixed_top` representation is required, the caller should call `bn_rshift_fixed_top` instead. (cherry picked from commit 8eba6de59e2b06f23c214344423a5a618d1c9ffd) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10196) * Constant-time GCD function. This commit replaces the current `BN_gcd` function with a constant-time GCD implementation. (cherry picked from commit f3c4adfc7eb13e9eff514039b4c60b457bdba433) Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10122) * Add GCD testing infrastructure. This commit adds testing and Known Answer Tests (KATs) to OpenSSL for the `BN_gcd` function. (cherry picked from commit b75d6310857bc44ef2851bde68a1979c18bb4807) Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10122) * rand_unix.c: correct include guard comments Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10050) (cherry picked from commit 2a7e6ed86be20bd472696a3eafe5d20ec9579dab) * Move random-related defines from e_os.h to rand_unix.c Fixes #10049 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10050) (cherry picked from commit 01036e2afbe116d608be048ed15930fc885ab2a8) * fixed the RETURN VALUES section in the EC_GROUP documentation for the following functions. EC_GROUP_get_order EC_GROUP_get_cofactor EC_GROUP_get_curve_name EC_GROUP_get_asn1_flag EC_GROUP_get_point_conversion_form EC_GROUP_get_degree (cherry picked from commit df3d1e84b3802acffeec11d6224e8a0e33d0aa83) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9664) * Update dgst.c to show a list of message digests Fixes #9893 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10219) * Improve formatting for man3/EC_GROUP_new.pod - Use `()` to qualify function names, consistently - Limit line width to 80 chars Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10235) * Fix doc for EC_GROUP_set_curve() (cherry picked from commit eb2ff0408ac6e934e05db7ed4006855c018584f1) Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10235) * Update control logic for BN_gcd PR https://github.com/openssl/openssl/pull/10122 introduced changes to the BN_gcd function and the control logic inside it accessed `g->d[0]` irrespective of `g->top`. When BN_add is called, in case the result is zero, `BN_zero` is called. The latter behaves differently depending on the API compatibility level flag: normally `g->d[0]` is cleared but in `no-deprecated` builds only `g->top` is set to zero. This commit uses bitwise logic to ensure that `g` is treated as zero if `g->top` is zero, irrespective of `g->d[0]`. Co-authored-by: Nicola Tuveri <nic.tuv@gmail.com> (cherry picked from commit 8aca4bfe8213402c80abc06fe25121461f79128d) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10232) * Enable runtime testing of no-deprecated builds in Travis (cherry picked from commit c89799605b833f769ce4cfd879bb291f49b133be) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10232) * Cleanup hardcoded cipher suite codepoints in s_server The hardcoded code points for TLSv1.3 cipher suites are used in the TLS PSK server callback. However, they seem to have been refactored a while ago to use tls13_aes128gcmsha256_id, so these defines are not necessary within the s_server code anymore. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10243) (cherry picked from commit aed8c47cbcc8a289bea433ead2effea035187260) * Allow EVP_PKEY_get0_RSA for RSA-PSS keys RSA-PSS keys use the same internal structure as RSA keys but do not allow accessing it through EVP_PKEY_get0_RSA. This commit changes that behavior. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10217) (cherry picked from commit 465a58b117d5a85623f3998d6fbf2fe8712a5604) * Fix a copy&paste error in the TLSv1.3 server side PSK documentation The introductory paragraph for the TLSv1.3 server side PSK documentation is a copy & paste of the client side documentation which has not been updated with the server side equivalent information. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10245) (cherry picked from commit c549cb46e0d3cb4e611acafae5f919b4a8df4007) * Fix an s_server arbitrary file read issue on Windows Running s_server in WWW mode on Windows can allow a client to read files outside the s_server directory by including backslashes in the name, e.g. GET /..\myfile.txt HTTP/1.0 There exists a check for this for Unix paths but it is not sufficient for Windows. Since s_server is a test tool no CVE is assigned. Thanks to Jobert Abma for reporting this. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10215) (cherry picked from commit 0a4d6c67480a4d2fce514e08d3efe571f2ee99c9) * Suppress an error when doing SM2 sign/verify ops This was fixed in #8321 right after the 1.1.1 was released but never back ported to 1.1.1. Now fix it. Issue reported from lua-openssl project. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10278) * apps/dgst.c: allocate a new signature buffer ... if the fixed-size buffer is too small. Fixes #9732 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> (Merged from https://github.com/openssl/openssl/pull/10276) (cherry picked from commit 7c2d95d47ccb3797f0da6bd4446747c6eee07b87) * Fix find/rm command in Unix clean recipe The `./pyca-cryptography/.travis/downstream.d` subdirectory that causes the `rm` command to fail (albeit harmlessly, but with a warning from `make` nonetheless). >rm -f `find . -name '*.d' \! -name '.*' -print` >rm: cannot remove './pyca-cryptography/.travis/downstream.d': Is a directory >make: [Makefile:1910: clean] Error 1 (ignored) Exclude directories from being matched by the `find` commands. CLA: trivial Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10264) (cherry picked from commit 38b71bd4704ee1746e862f5a7a4e170fd84a5eb0) * [crypto/bn] fix a few small timing leaks in BN_lshift1 and BN_rshift1 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10209) (cherry picked from commit 305bf9c8668aff78e668131061f4eb088457be5f) * Fix SYNOPSIS for ASN1_ENUMERATED_get_int64 and ASN1_ENUMERATED_set_int64 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9823) (cherry picked from commit 2aa28a1abc893fb16b99ba77e2fecb1cbc8769c7) * Fix potential memory leak in dh_ameth.c Free dukm in error handling of dh_cms_encrypt() Fixes #10294 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> (Merged from https://github.com/openssl/openssl/pull/10310) (cherry picked from commit 6624e1f7b6a397948561e9cc2774f0c8af1d2c79) * md4/md5: macros should not include the line following them Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10311) (cherry picked from commit 351ba5bd27645d5b5a2bc643b2709bd30bcdf09c) * Add test cases for min/max protocol API Signed-off-by: Christian Heimes <christian@python.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6553) (cherry picked from commit 132b5facf8d681db5dfa45828d8b02f1bf5df64b) * VMS: Added new method to gather entropy on VMS, based on SYS$GET_ENTROPY. This system services is based on FreeBSD 12's getentropy(), and is therefore treated the same way as getentropy() with regards to amount of entropy bits per data bit. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8926) (cherry picked from commit 8b9896eb293a0861f0b8c191b7a278f176b729e6) * s390x assembly pack: enable clang build clang imposes some restrictions on the assembler code that gcc does not. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10330) (cherry picked from commit 6f93f06135cbbd36c3fe98d63717e8303a5d559b) Conflicts: crypto/perlasm/s390x.pm (non-existant) crypto/s390xcpuid.pl (code to be changed non-existant) * Don't leak memory in the event of a failure in i2v_GENERAL_NAMES i2v_GENERAL_NAMES call i2v_GENERAL_NAME repeatedly as required. Each time i2v_GENERAL_NAME gets called it allocates adds data to the passed in stack and then returns a pointer to the stack, or NULL on failure. If the passed in stack is itself NULL then it allocates one. i2v_GENERAL_NAMES was not correctly handling the case where a NULL gets returned from i2v_GENERAL_NAME. If a stack had already been allocated then it just leaked it. Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10300) (cherry picked from commit 45b244620a74248b46ebe1c85e86437b9641447a) * BIO_s_connect: add an error state and use it If no connection could be made, addr_iter will eventually end up being NULL, and if the user didn't check the returned error value, the BIO_CONN_S_CONNECT code will be performed again and will crash. So instead, we add a state BIO_CONN_S_CONNECT_ERROR that we enter into when we run out of addresses to try. That state will just simply say "error" back, until the user does something better with the BIO, such as free it or reset it. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10333) * Configure: Make --strict-warnings meaningful with MSVC cl We also add this to our x86_64 builds on appveyor (cherry picked from commit b4a7b4ec4acc712b1f22a83966ac986b510f25d8) Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10365) * conf_def.c: Avoid calling strlen() in a loop Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10361) (cherry picked from commit d1c1fb2d41a627293483d832aaffcb6eca9075f9) * Fix a -Warray-bounds gcc warning in OPENSSL_DIR_read '__builtin_strncpy' offset [275, 4095] from the object at 'direntry' is out of the bounds of referenced subobject 'd_name' with type 'char[256]' at offset 19 Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10343) (cherry picked from commit db5cf86535b305378308c58c52596994e1ece1e6) * Fix --strict-warnings build Appease -Wstring-plus-int. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9608) (cherry picked from commit e0249827b3fa81ff6c59fb14ef85d38361dd5e31) * Workaround for Windows-based GOST implementations Many Windows-based GOST TLS implementations are unable to extend the list of supported SignatureAlgorithms because of lack of the necessary callback in Windows. So for TLS 1.2 it makes sense to imply the support of GOST algorithms in case when the GOST ciphersuites are present. This is a backport of #10377 to 1.1.1 branch Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10378) * Fix misspelled resumption_label for CHARSET_EBCDIC The resumption_label variable when CHARSET_EBCDIC was enabled, was misspelled. Instead of evaluating to 'res binder' as expected, it evaluated to 'red binder'. CLA: trivial Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10396) (cherry picked from commit 6ed12cec7216c3e81b58f5cafa41775e456feaee) * SSL: Document SSL_add_{file,dir}_cert_subjects_to_stack() This also removes the incorrect documentation comments by those functions. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10403) * Add more tests for apps/req https://github.com/openssl/openssl/issues/10224#issuecomment-546593113 highlighted that existing testing infrastructure is not covering common usage patterns of the `req` app. This commit explicitly adds request generations thorugh the CLI using RSA, DSA and ECDSA (P-256) keys. (cherry picked from commit b2a7310af0dd190712bae2e462a7708483dd4628) Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10369) * Fix EC_POINT_bn2point() for BN_zero() EC_POINT_bn2point() rejected BIGNUMs with a zero value. This behavior indirectly caused failures when converting a point at infinity through EC_POINT_point2hex() and then back to a point with EC_POINT_hex2point(). With this change such BIGNUMs are treated like any other and exported to an octet buffer filled with zero. It is then EC_POINT_oct2point() (either the default implementation or the custom one in group->meth->oct2point) to determine if such encoding maps to a valid point (generally the point at infinity is encoded as 0x00). Fixes #10258 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10329) (cherry picked from commit d47c10875656790d146f62ac3c437db54c58dbf7) * Add self-test for EC_POINT_hex2point Adds tests for each curve to ensure that encodings obtained through EC_POINT_hex2point() can be fed to EC_POINT_point2hex() yielding a point identical to the one from which the encoding is generated. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10329) (cherry picked from commit 35ed029b5a488924890fda2487c87f664361a33b) * Extend docs for EC_POINT conversion functions Add more explicit documentation about the relation between EC_POINT_point2oct(), EC_POINT_point2hex(), EC_POINT_point2bn() and their reverse. In particular highlight that EC_POINT_point2oct() and EC_POINT_oct2point() conform to, respectively, Sec. 2.3.3 and Sec. 2.3.4 of the SECG SEC 1 standard (which is the normative reference for the already mentioned RFC 5480), highlighting with a note how this affect the encoding/decoding of the point at infinity (which in contrast with any other valid generic point of a curve is assigned an exceptional fixed octet string encoding, i.e., 0x00). Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10329) (cherry picked from commit 3cc26f2eba8a8c16ac559e68c05c094d7ea6bd8b) * chacha_enc.c: fix for EBCDIC platforms Signed-off-by: Joerg Schmidbauer <jschmidb@de.ibm.com> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10417) (cherry picked from commit c31950b964a2f3f7b9e6ad98076954178ee1e77d) * testutil/init.c rename to testutil/testutil_init.c Avoid conflicts with some linkers. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10439) (cherry picked from commit e74b5dcf16dfd7c91d9f9a7e69c447f00d778e17) Conflicts: test/build.info * travis.yml: add arch s390x target Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10446) (cherry picked from commit 985412f8c14853b9936852bc7ef4d9438db27b88) * Add missing EVP_PKEY_METHOD accessors for digestsign and digestverify Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10388) (cherry picked from commit 2555285fa5e4248ad4a5a0bc14ae4606443856c2) * s390x assembly pack: fix bn_mul_comba4 Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10454) (cherry picked from commit 97a986f78289fef71bf8778dc4763458e983750c) * Allow specifying the tag after AAD in CCM mode (2) In addition to 67c81ec3 which introduced this behavior in CCM mode docs but only implemented it for AES-CCM. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10331) (cherry picked from commit f7382fbbd846dd3bdea6b8c03b6af22faf0ab94f) Conflicts: test/recipes/30-test_evp_data/evpciph.txt * Fix sha512_block_data_order_avx2 backtrace info We store a secondary frame pointer info for the debugger in the red zone. Fixes #8853 [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9624) (cherry picked from commit 9ce91035bcf7d74fe15c94650f3bc1f89b7c0f07) * ECDSA: don't clear free memory after verify. Verifications are public, there is no need to clear the used storage before freeing it. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10475) (cherry picked from commit cff7d199e0dc51ae939de5fb7702aab2a9ef30fc) * Engine: Add NULL check. Add NULL check for return from pkey_asn1_meths. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10473) (cherry picked from commit 9bada854de16bcc1a9dc199b4b352b19ab6897fc) * EVP p_lib: Add NULL check to EVP_PKEY_missing_parameters. Check for NULL and return error if so. This can possibly be called from apps/ca.c with a NULL argument. Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/10474) (cherry picked from commit ab5c77b4766e0992751d86560193ca42b49cf316) * Fix a race condition in SNI handling As was done for ciphers, supported groups, and EC point formats in https://github.com/openssl/openssl/pull/9162, only write the negotiated SNI hostname value to the session object when not resuming, even for TLS 1.3 resumptions. Otherwise, when using a stateful session cache (as is done by default when 0-RTT data is enabled), we can have multiple SSLs active using the same in-memory session object, which leads to double-frees and similar race conditions in the SNI handler prior to this commit. Fortunately, since draft-ietf-tls-tls13-22, there is no requirement that the SNI hostname be preserved across TLS 1.3 resumption, and thus not a need to continually update the session object with the "current" value (to be used when producing session tickets, so that the subsequent resumption can be checked against the current value). So we can just relax the logic and only write to the session object for initial handshakes. This still leaves us in a somewhat inconsistent state, since if the SNI value does change across handshakes, the session object will continue to record the initial handshake's value, even if that bears no relation to the current handshake. The current SSL_get_servername() implementation prefers the value from the session if s->hit, but a more complete fix for that and related issues is underway in https://github.com/openssl/openssl/pull/10018; there is no need to wait for the complete fix for SNI name handling in order to close the race condition and avoid runtime crashes. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10441) (cherry picked from commit 2a5385511051d33be8d2b20d7669d8b1862fe510) * main: avoid a NULL dereference on initialisation. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10495) (cherry picked from commit acc7b9fb5c162c2ca522e5e1e09d1efbde8dc6a0) * UI_UTIL_wrap_read_pem_callback(): when |cb| is NULL, use PEM_def_callback Fixes #10444 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10447) (cherry picked from commit 72a5412b4858cc7c5627a121f78685a2a4065521) * doc/man7/proxy-certificates.pod: New guide for proxy certificates This replaces doc/HOWTO/proxy_certificates.txt Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10507) (cherry picked from commit 2a03823606b2d7e73e5dc890c3202e186511151f) * i2b_PVK(): Use Encrypt, not Decrypt We used EVP_EncryptInit_ex() to initialise, but EVP_DecryptUpdate() and EVP_DecryptFinal_ex() to actually perform encryption. This worked long ago, when the Encrypt and Decrypt variants were the same, but doesn't now (actually haven't for a very long time). This shows how seldom PVK is actually used. Fixes #9338 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10521) * Fix L<EVP_MD_CTX_set_pkey_ctx> links Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10420) * apps/ocsp.c: sock_timeout -> socket_timeout It appears that 'sock_timeout' is defined at least with DJGPP, so we rename our symbol and hope the new name isn't taken. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10515) (cherry picked from commit e9b95e42fbae668cb605287fa462a0d5f58b9caf) * EVP_*Update: ensure that input NULL with length 0 isn't passed Even with custom ciphers, the combination in == NULL && inl == 0 should not be passed down to the backend cipher function. The reason is that these are the values passed by EVP_*Final, and some of the backend cipher functions do check for these to see if a "final" call is made. An exception is made for CCM mode which has special handling for the case where inl == 0: this may mean the total plaintext or ciphertext length is 0. This is based on an original commit by Richard Levitte. Fixes #8675 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9057) * Add a test for NULL chunks in encrypt/decrypt Issue #8675 describes a problem where calling EVP_DecryptUpdate() with an empty chunk causes the result to be different compared to if you do not use an empty chunk. This adds a test for that case. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9057) * Update NOTES.ANDROID for newer NDK versions + small fixes. Fixes #8941 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10478) (cherry picked from commit d3a27c5ee45a29edd9c0d60ad5929f67996f89fd) * Remove spurious space from file. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10562) (cherry picked from commit 7ba46774b7f1b2e83d44323a8831b615a49f9f37) * Fix exit issue in travisci Ungraceful 'exit' probably causes unexpeced error on background activity. So replace 'exit' with recommended 'travis_terminate'. Also see https://travis-ci.community/t/exit-0-cannot-exit-successfully-on-arm/5731/4 Change-Id: I382bd93a3e15ecdf305bab23fc4adefbf0348ffb Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10561) (cherry picked from commit 6df44cf65fbc7e150965149d7e681ac3e22d11d8) * Fix an overflow bug in rsaz_512_sqr There is an overflow bug in the x64_64 Montgomery squaring procedure used in exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH512 are considered just feasible. However, for an attack the target would have to re-use the DH512 private key, which is not recommended anyway. Also applications directly using the low level API BN_mod_exp may be affected if they use BN_FLG_CONSTTIME. CVE-2019-1551 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10575) * Improve the overflow handling in rsaz_512_sqr We have always a carry in %rcx or %rbx in range 0..2 from the previous stage, that is added to the result of the 64-bit square, but the low nibble of any square can only be 0, 1, 4, 9. Therefore one "adcq $0, %rdx" can be removed. Likewise in the ADX code we can remove one "adcx %rbp, $out" since %rbp is always 0, and carry is also zero, therefore that is a no-op. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10575) * Add a test case for rsaz_512_sqr overflow handling [extended tests] Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10575) * Add a CHANGES entry for CVE-2019-1551 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10575) * Difference between EVP_CipherInit and EVP_CipherInit_ex Fixes #10455 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10550) * Fix some typos Reported-by: misspell-fixer <https://github.com/vlajos/misspell-fixer> CLA: trivial Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10544) (cherry picked from commit 79c44b4e3044aee9dc9618850d4f1ce067757b4b) * Fix docs for CRYPTO_secure_allocated Fixes #9300 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10523) (cherry picked from commit 20c09f00346aec3a20ceacc9c9d44c5f050e13dd) * Enrich arm64 tests in Travis matrix 1, Remove simple test just with --strict-warnings enabled. 2, Share the three common envs with amd64. 3, Add matrix item running test in bionic(default xenial) for arm64. 4, Enable MSan test on arm64 for extended test. 5, Enable UBSan test on arm64 for extended test. Change-Id: Ic1f2c5e39ee6fbafed6ede74a925301121463520 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10519) (cherry picked from commit 77fedcdc8cf5446354a1e7ff9123d8ada5b79b06) * Check return value after loading config file CLA: trivial Reviewed-by: Paul Yang <kaishen.yy@antfin.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10607) (cherry picked from commit dd0139f416257ec5632414ed3ad8c61d07ba07ec) * Parse large GOST ClientKeyExchange messages Large GOST ClientKeyExchange messages are sent by VipNet CSP, one of Russian certified products implementing GOST TLS, when a server certificate contains 512-bit keys. This behaviour was present in 1.0.2 branch and needs to be restored. Backport of #10376 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10376) * util/mkerr.pl: revert accidental change of header guards This change was backported accidentally from master in commit fbbfd128c9aa. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10623) * rand_lib.c: fix null pointer dereferences after RAND_get_rand_method() failure RAND_get_rand_method() can return a NULL method pointer in the case of a malloc failure, so don't dereference it without a check. Reported-by: Zu-Ming Jiang (detected by FIFUZZ) Fixes #10480 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10490) * Return 1 when openssl req -addext kv is duplicated CLA: trivial Fixes #10273 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10578) (cherry picked from commit 1aeec3dbc2d62f902698b1eba9ed31cbd436f9dc) * Ensure EVP_PKEY_set1_DH detects X9.42 keys OpenSSL supports both PKCS#3 and X9.42 DH keys. By default we use PKCS#3 keys. The function `EVP_PKEY_set1_DH` was assuming that the supplied DH key was a PKCS#3 key. It should detect what type of key it is and assign the correct type as appropriate. Fixes #10592 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10593) (cherry picked from commit 32c869ffaba67822602ea9fec611272ff8e8db58) * Test that EVP_PKEY_set1_DH() correctly identifies the DH type Provide a test to check tat when we assign a DH object we know whether we are dealing with PKCS#3 or X9.42 DH keys. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10593) (cherry picked from commit e295de1d8433ed07092845cb6c56aa424ff35c6d) * Backport the RSA_get0_pss_params() function from master This is a missing accessor in order to obtain PSS parameters from an RSA key, which should also be available in 1.1.1. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10568) * Update the HISTORY entry for RSA_get0_pss_params() Make a note of when this function was first introduced Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10568) * apps/speed.c: Fix eddsa sign and verify output with -multi option Fixes #10261 CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10285) (cherry picked from commit 1ac7e15375be39c8f03171c02658cf703f58217a) * Fix unwind info for some trivial functions While stack unwinding works with gdb here, the function _Unwind_Backtrace gives up when something outside .cfi_startproc/.cfi_endproc is found in the call stack, like OPENSSL_cleanse, OPENSSL_atomic_add, OPENSSL_rdtsc, CRYPTO_memcmp and other trivial functions which don't save anything in the stack. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10635) (cherry picked from commit 8913378a552e470c66277c47b19699f20b84aa3b) * Disable devcryptoeng on newer OpenBSD versions It's reported that /dev/crypto support has been dropped in OpenBSD 5.7. Fixes #10552 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565) * Configuration: compute openssl_other_defines and related info later The computation of macros and configdata.pm related data from %disabled was done much too early, leaving later disablings without real support. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565) * Fix regression on x509 keyform argument In OpenSSL pre 1.1.0, 'openssl x509 -keyform engine' was possible and supported. In 1.1.0, type of keyform argument is OPT_FMT_PEMDER which doesn't support engine. This changes type of keyform argument to OPT_FMT_PDE which means PEM, DER or engine and updates the manpage including keyform and CAkeyform. This restores the pre 1.1.0 behavior. This issue is very similar than https://github.com/openssl/openssl/issues/4366 CLA: trivial Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10609) (cherry picked from commit 0ab6fc79a9a63370be1a615729dc2a6ed0d6c89b) * Add some missing cfi frame info in camellia-x86_64.pl Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10642) (cherry picked from commit 6b913be708f98b1d971586d38e608218ee6de6fa) * Add some missing cfi frame info in x86_64-mont5.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10651) (cherry picked from commit 0190c52ab8b4cdf5fe577b3d924576167c892a15) * Add some missing cfi frame info in rsaz-x86_64 Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10652) (cherry picked from commit 013c2e8d1a272df444f47b8b54de1d51bc499887) * Add some missing cfi frame info in aesni-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10653) (cherry picked from commit a5fe7825b970a6c937118a4f707f9ad367413794) * Add some missing cfi frame info in keccak1600-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10654) (cherry picked from commit 95bbe6eff7aadc681e282ec957379b49d6f80ca8) * Add some missing cfi frame info in aesni-sha and sha-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10655) (cherry picked from commit b0d3442efc10b635863b915c2d014345f6e5a219) * Fix evp_extra_test with no-dh The new DH test in evp_extra_test.c broke the no-dh build so we add some guards to fix it. Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10644) (cherry picked from commit 501fcfb8cfc1aa114ffde437039c2dc2827554ae) * Add some missing cfi frame info in ecp_nistz256-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10672) (cherry picked from commit eff5076a78502d1ac04669e44127d4bd7c0a9ce7) * Fix aesni_cbc_sha256_enc_avx2 backtrace info We store a secondary frame pointer info for the debugger in the red zone. This fixes a crash in the unwinder when this function is interrupted. Additionally the missing cfi function annotation is added to aesni_cbc_sha256_enc_shaext. [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10674) (cherry picked from commit 665de4d48aef2507022a7d74f5c7f6e339d5e6bc) * Add some missing cfi frame info in x25519-x86_64.pl Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10676) (cherry picked from commit 9d079f2744b9b624c6fe75f95fc0f766ef88ffcf) * Add some missing cfi frame info in aesni-gcm-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10677) (cherry picked from commit 275a048ffc1585a731e39d7e8e3f53766e8f48d7) * Add some missing cfi frame info in poly1305-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10678) (cherry picked from commit 048fa13e5ef4ccd730561f79a6c91f38365994d1) * Add some missing cfi frame info in rc4-md5-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10679) (cherry picked from commit b2a00f62209add348deb8283c588ddbd572dc216) * Fix a race condition in the speed command The timer alarm sets run = 0, while the benchmark does run = 1 in the initialization code. That is a race condition, if the timer goes off too early the benchmark runs forever. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10680) (cherry picked from commit f3fdfbf78c6bfc97abf9c70b03859a28ebf6b66d) * Update the krb5 submodule Bring us up to date with upstream's 1.17.1 release. Among other things, it includes commit c2497d46b4bad473e164943d67b58cd1ae261c3a which fixes several issues that affect running the test suite under Travis CI. Hopefully those will work transitively for us as well. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 3e73f558af600ea068bb2132988c31ddb444e13e) Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10690) * Temporarily disable external pyca tests The pyca-cryptography external test has been failing for a long time. It looks like upstream needs to make some changes to adapt to 1.1.1. Backported from #10689 [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10722) * Update tls13_enc.c Fix double + in hkdflabel declaration (FIXES #10675) CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10700) (cherry picked from commit 2de5a5fbdd14f514e962cccfe90482c37786c183) * Run make update The New Year has caused various files to appear out of date to "make update". This causes Travis to fail. Therefore we update those files. Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10739) * Fix potential SCA vulnerability in some EC_METHODs This commit addresses a potential side-channel vulnerability in the internals of some elliptic curve low level operations. The side-channel leakage appears to be tiny, so the severity of this issue is rather low. The issue was reported by David Schrammel and Samuel Weiser. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 3cb914c463ed1c9e32cfb773d816139a61b6ad5f) * Avoid leaking intermediate states in point doubling special case. Cherry picked from https://github.com/google/boringssl/commit/12d9ed670da3edd64ce8175cfe0e091982989c18 Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 2baea7c7e0896658b74956cac6084dd7e82e8c1b) * Fix side channel in ecp_nistz256-x86.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 0de3399b691f025153c8001045d5eeb0909dfd7a) * Fix side channel in ecp_nistz256-armv4.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 3d139746ca72f0906c036d0a4a3e176c7b61ed1b) * Improve side channel fix in ecp_nistz256-x86_64.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit e9fe87950db2e6169029b2ecf3ed09d64265bc9c) * Fix side channel in the ecp_nistz256.c reference implementation This is only used if configured with ./config -DECP_NISTZ256_REFERENCE_IMPLEMENTATION Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 7d4716648e8348dea862e198b9395478fae01907) * Fix side channel in ecp_nistz256-armv8.pl This change addresses a potential side-channel vulnerability in the internals of nistz256 low level operations for armv8. Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit f5a659b6dfcc735a62c712dcca64d116d2289b97) * Fix disabled ecdsa in apps/speed This came from f3fdfbf78c6b. run = 1 should be done in pkey_print_message as well, otherwise other tests printed with pkey_print_message won't run. Change-Id: I0ba0b05256ad6509ada4735b26d10f8a73fd89ec Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10710) (cherry picked from commit 6e49b514067a2b6a30d064d2ae1fdfd8050c184b) * Fix incorrect return code on ECDSA key verification ECDSA_do_verify() is a function that verifies a ECDSA signature given a hash and a public EC key. The function is supposed to return 1 on valid signature, 0 on invalid signature and -1 on error. Previously, we returned 0 if the key did not have a verify_sig method. This is actually an error case and not an invalid signature. Consequently, this patch updates the return code to -1. Fixes #8766 Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10693) (cherry picked from commit 26583f6aa8dc28e3598e61db66e54e2fdf8b195f) * Don't store an HMAC key for longer than we need The HMAC_CTX structure stores the original key in case the ctx is reused without changing the key. However, HMAC_Init_ex() checks its parameters such that the only code path where the stored key is ever used is in the case where HMAC_Init_ex is called with a NULL key and an explicit md is provided which is the same as the md that was provided previously. But in that case we can actually reuse the pre-digested key that we calculated last time, so we can refactor the code not to use the stored key at all. With that refactor done it is no longer necessary to store the key in the ctx at all. This means that long running ctx's will not keep the key in memory for any longer than required. Note though that the digested key *is* still kept in memory for the duration of the life of the ctx. Fixes #10743 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10763) * Revert "Move random-related defines from e_os.h to rand_unix.c" This reverts commit 7b18d1a53f932391bbc599a4717d6f98a597849c, which moved the DEVRANDOM and DEVRANDOM_EGD defines into rand_unix.c. That change introduced the regression that the compiler complains about missing declarations in apps/version.c when OpenSSL is configured using `--with-rand-seed=devrandom` (resp. `--with-rand-seed=egd`): apps/version.c:173:42: error: 'DEVRANDOM' undeclared static const char *dev[] = { DEVRANDOM, NULL }; ^~~~~~~~~ Fixes #10759 Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10764) * Fix pkeyutl -verifyrecover When performing a pkeyutl -verifyrecover operation the input file is not a hash - it is the signature itself. Therefore don't do the check to make sure it looks like a hash. Fixes #9658 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9731) (cherry picked from commit 5ffc33244cd4d66e47dfa66ce89cb38d0f3074cc) * fix a glitc…
dstebila
added a commit
to open-quantum-safe/openssl
that referenced
this pull request
Apr 14, 2020
* Only use hbyrid level 1 KEMs in default curves list * Pass KEM to server in TLS connection test * re-enable check-in connection test (#165) * Use 16-bit length fields in hybrid KEX format (#157) Fixes 154. * Add instructions to cross-compile for Windows on Linux (#166) Add git as a prerequisite for the regular Ubuntu build as well. * add OQS algs to auto-run list in speed (#169) * Merged upstream tag 1.1.1f (#167) * crypto/threads_win.c: fix preprocessor indentation Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9860) * BIO_f_zlib: Properly handle BIO_CTRL_PENDING and BIO_CTRL_WPENDING calls. There can be data to write in output buffer and data to read that were not yet read in the input stream. Fixes #9866 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9877) (cherry picked from commit 6beb8b39ba8e4cb005c1fcd2586ba19e17f04b95) * Fix potential memory leaks with BN_to_ASN1_INTEGER Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9833) (cherry picked from commit f28bc7d386b25fb75625d0c62c6b2e6d21de0d09) * Add a minimal windows build config for AppVeyor [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9886) * Add a minimal linux build target for Travis [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9888) * Do no mention private headers in public headers Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9812) (cherry picked from commit bd9faf117db1e53b2ad2ee9cbfe8def8c98ecb7b) * Fix small typo in doc for X509_STORE_CTX_new CLA: trivial Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9894) (cherry picked from commit 64c1e74572f16a3e7c225f66fe85a3451ad39e68) * clearing the ecx private key memory Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9830) (cherry picked from commit 6ef03ea98fac501e6d6e33bac6ad3c92ea074712) * Fix building statically without any dso support Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9889) * apps/pkcs12: print multiple PKCS#12 safeBag attribute values if present Currently the pkcs12 app will only ever print the first value of a multi-value attribute. This is OK for some attributes (e.g. friendlyName, localKeyId) but may miss values for other attributes. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9751) (cherry picked from commit dbcc7b45670483cc89428afe1d3c363ef83d76df) * Use the correct maximum indent Found by OSS-Fuzz Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> GH: #9959 (cherry picked from commit a6105ef40d65b35818f2b8ae8ca9e57ca6956d1d) * DOC: fix documentation of som EVP_MD_CTX functions They were documented to take an EVP_MD pointer, when they really take an EVP_MD_CTX pointer. Fixes #9993 Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9997) * Reorganize private crypto header files Currently, there are two different directories which contain internal header files of libcrypto which are meant to be shared internally: While header files in 'include/internal' are intended to be shared between libcrypto and libssl, the files in 'crypto/include/internal' are intended to be shared inside libcrypto only. To make things complicated, the include search path is set up in such a way that the directive #include "internal/file.h" could refer to a file in either of these two directoroes. This makes it necessary in some cases to add a '_int.h' suffix to some files to resolve this ambiguity: #include "internal/file.h" # located in 'include/internal' #include "internal/file_int.h" # located in 'crypto/include/internal' This commit moves the private crypto headers from 'crypto/include/internal' to 'include/crypto' As a result, the include directives become unambiguous #include "internal/file.h" # located in 'include/internal' #include "crypto/file.h" # located in 'include/crypto' hence the superfluous '_int.h' suffixes can be stripped. The files 'store_int.h' and 'store.h' need to be treated specially; they are joined into a single file. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Reorganize local header files Apart from public and internal header files, there is a third type called local header files, which are located next to source files in the source directory. Currently, they have different suffixes like '*_lcl.h', '*_local.h', or '*_int.h' This commit changes the different suffixes to '*_local.h' uniformly. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Fix header file include guard names Make the include guards consistent by renaming them systematically according to the naming conventions below The public header files (in the 'include/openssl' directory) are not changed in 1.1.1, because it is a stable release. For the private header files files, the guard names try to match the path specified in the include directives, with all letters converted to upper case and '/' and '.' replaced by '_'. An extra 'OSSL_' is added as prefix. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Add util/fix-includes script This script contains all adjustments to header files which were made during the reorganization of the header files. It is meant as an aid for other contributors which encounter preprocessor #include errors after rebasing over this pull request. Simply running util/fix-includes from the root of the source directory should hopefully fix the problem. Note: such #include errors are expected only for pull requests which add a lot of new code, in particular new compilation modules. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9681) * Fix a return value bug in apps/speed.c Those functions returns less than and equal to 0 to indicate an error occured. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10054) (cherry picked from commit 94bd168a9e31d1ab4986e94056dfae71ec5f051f) * Fix a bundle of mischecks of return values Several EVP_PKEY_xxxx functions return 0 and a negative value for indicating errors. Some places call these functions with a zero return value check only, which misses the check for the negative scenarios. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10055) (cherry picked from commit 7e3ae24832e0705583b1471febf3dc0eb1cc021f) * Correct the function names in SSL_CTX_set_stateless_cookie_generate_cb.pod Although the synopsis used the correct function names, the description did not. Also the description of the equivalent DTLSv1_listen() callbacks was missing, so these have been added. Fixes #10030 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10033) (cherry picked from commit 84f471ecab76a16281a16c53d259bbcae358816f) * Add defines for __NR_getrandom for all Linux architectures Fixes: #10015 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> GH: #10044 (cherry picked from commit 4dcb150ea30f9bbfa7946e6b39c30a86aca5ed02) * Fix long name of some Microsoft objects CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10029) (cherry picked from commit 648b53b88ea55b4c2f2c8c57d041075731db5f95) * Do not print extensions in Certificate message for TLS1.2 and lower According to RFC8446 CertificateEntry in Certificate message contains extensions that were not present in the Certificate message in RFC5246. CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9994) (cherry picked from commit 65c76cd2c9e8da9468dd490b334e56c51dbef582) * doc: EVP_DigestInit clears all flags Mention that EVP_DigestInit() also clears all flags. Fixes: 10031 Signed-off-by: Christian Heimes <christian@python.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10032) (cherry picked from commit 091aab66a6dbc3a3ecee7684aa30811b342f04e7) * Add arm64 in test matrix on TravisCI. Change-Id: I5d2b729699cfd8e80c3df17db4a9d2edcbf64454 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10046) (cherry picked from commit 0399aba7e05ea9bb1a58bd2e1b164f353f6ef1c9) * Fix iOS simulator build Fixes #9999 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10002) * rsa: replace magic number '11' by RSA_PKCS1_PADDING_SIZE Suggested by Matt Hart Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10084) (cherry picked from commit f1d1903dd3dd1d68a5eae190b8c2a88bfe0a68ac) * Define AESNI_ASM if AESNI assembler is included, and use it Because we have cases where basic assembler support isn't present, but AESNI asssembler support is, we need a separate macro that indicates that, and use it. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10080) * 'init_buf' memory can be freed when DTLS is used over SCTP (not over UDP). Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9653) (cherry picked from commit e7c27a6c3716843f8412fd96311b70ac84b785f9) * Fix typo in comment Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10105) (cherry picked from commit 89e5aaa1d72058404d3ea06bfaeff5334aba202d) * Send bad_record_mac instead of decryption_failed The decryption failed alert was deprecated a long time ago. It can provide an attacker too much information to be able to distinguish between MAC failures and decryption failures and can lead to oracle attacks. Instead we should always use the bad_record_mac alert for these issues. This fixes one instance that still exists. It does not represent a security issue in this case because it is only ever sent if the record is publicly invalid, i.e. we have detected it is invalid without using any secret material. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10093) (cherry picked from commit 37133290832ac2d1389926eba7325125fdacbe8d) * Add documentation for PEM_{read,write}_bio_Parameters() Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10113) (cherry picked from commit 9a6abb95be42b88c7c5ebc8c97f14afdc5919aa1) * Fix reference to PEM docs Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10101) (cherry picked from commit 120cc034271e9ab52f92840a16784228e50564f9) * ssl/statem/statem_lib.c: make servercontext/clientcontext arrays of chars instead of char pointers to fix EBCDIC builds. Fixes #9869 CLA:trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9878) * Fix unused goto label gcc warning On systems with undefined AI_ADDRCONFIG and AI_NUMERICHOST: x86_64-w64-mingw32-gcc -I. -Icrypto/include -Iinclude -m64 -Wall -O3 -fno-ident ... crypto/bio/b_addr.c: In function 'BIO_lookup_ex': crypto/bio/b_addr.c:699:7: warning: label 'retry' defined but not used [-Wunused-label] retry: ^~~~~ Regression from: 3f91ede9aea70774d9b5d509bc76d484ebaff6aa Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/9856) (cherry picked from commit be66a15cc1a4c3cc68fa854ceea321ca57f96304) * Ignore empty ALPN elements in CLI args Reviewed-by: Matt Caswell <matt@openssl.org> * Configure: accept Windows style compiler options Currently the Configure command only supports passing UNIX style options (`-opt`) to the compiler. Passing Windows style options (`/opt`) yields an error. Fortunately, the compiler accepts both types of options, nevertheless this commit fixes that discrimination of Windows users. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9961) (cherry picked from commit f246f54f18d380791cc60be4aea0fbc7253a9a20) * [ec_asn1.c] Avoid injecting seed when built-in matches An unintended consequence of https://github.com/openssl/openssl/pull/9808 is that when an explicit parameters curve is matched against one of the well-known builtin curves we automatically inherit also the associated seed parameter, even if the input parameters excluded such parameter. This later affects the serialization of such parsed keys, causing their input DER encoding and output DER encoding to differ due to the additional optional field. This does not cause problems internally but could affect external applications, as reported in https://github.com/openssl/openssl/pull/9811#issuecomment-536153288 This commit fixes the issue by conditionally clearing the seed field if the original input parameters did not include it. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10140) (cherry picked from commit f97a8af2f3f3573f0759693117c9d33d2a63c27e) * Ignore duplicated undocumented things Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Yang <yang.yang@baishancloud.com> (cherry picked from commit ee4afacd96f5bfbe7662c8f0ec4464c6eee4c450) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Add missing EVP_MD documentation Signed-off-by: Antoine Salon <asalon@vmware.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 37842dfaebcf28b4ca452c6abd93ebde1b4aa6dc) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Document and add macros for additional DSA options EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS and EVP_PKEY_CTRL_DSA_PARAMGEN_MD are only exposed from EVP_PKEY_CTX_ctrl, which means callers must write more error-prone code (see also issue #1319). Add the missing wrapper macros and document them. Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit a97faad76a1be22eadd6c1a39972ad5e095d9e80) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Add documentation for the -sigopt option. Reviewed-by: Paul Yang <yang.yang@baishancloud.com> (cherry picked from commit d7b2124a428f9e00ed7647554b5be7153aac71f6) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * issue-8493: Fix for filenames with newlines using openssl dgst The output format now matches coreutils *dgst tools. [ edited to remove trailing white space ] Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (cherry picked from commit f3448f5481a8d1f6fbf5fd05caaca229af0b87f7) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * i2d_PublicKey was listed in 2 different man pages find-doc-nits complains if a symbol is documented in more than one location. Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 4ff4e53f816855b07fc02dc931dd57b2ae324aa1) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * Fix an incorrect macro A macro was missing a space which was confusing find-doc-nits Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 8caab503ba004abb555d636c1ca9f7bcde79657f) Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10094) * [crypto/asn1/x_bignum.c] Explicit test against NULL As a fixup to https://github.com/openssl/openssl/pull/9779 to better conform to the project code style guidelines, this commit amends the original changeset to explicitly test against NULL, i.e. writing ``` if (p != NULL) ``` rather than ``` if (!p) ``` Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9881) * Unify BN_rshift design This commit aims at refactoring the `BN_rshift` by making it a wrapper around `bn_rshift_fixed_top`, in order to match the current design of `BN_lshift`, as suggested in the discussion at https://github.com/openssl/openssl/pull/10122#discussion_r332474277 . As described in the code, by refactoring this function, `BN_rshift` provides a constant-time behavior for sufficiently[!] zero-padded inputs under the following assumptions: `|n < BN_BITS2|` or `|n / BN_BITS2|` being non-secret. Notice that `BN_rshift` returns a canonical representation of the BIGNUM, if a `fixed_top` representation is required, the caller should call `bn_rshift_fixed_top` instead. (cherry picked from commit 8eba6de59e2b06f23c214344423a5a618d1c9ffd) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10196) * Constant-time GCD function. This commit replaces the current `BN_gcd` function with a constant-time GCD implementation. (cherry picked from commit f3c4adfc7eb13e9eff514039b4c60b457bdba433) Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10122) * Add GCD testing infrastructure. This commit adds testing and Known Answer Tests (KATs) to OpenSSL for the `BN_gcd` function. (cherry picked from commit b75d6310857bc44ef2851bde68a1979c18bb4807) Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10122) * rand_unix.c: correct include guard comments Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10050) (cherry picked from commit 2a7e6ed86be20bd472696a3eafe5d20ec9579dab) * Move random-related defines from e_os.h to rand_unix.c Fixes #10049 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10050) (cherry picked from commit 01036e2afbe116d608be048ed15930fc885ab2a8) * fixed the RETURN VALUES section in the EC_GROUP documentation for the following functions. EC_GROUP_get_order EC_GROUP_get_cofactor EC_GROUP_get_curve_name EC_GROUP_get_asn1_flag EC_GROUP_get_point_conversion_form EC_GROUP_get_degree (cherry picked from commit df3d1e84b3802acffeec11d6224e8a0e33d0aa83) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9664) * Update dgst.c to show a list of message digests Fixes #9893 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10219) * Improve formatting for man3/EC_GROUP_new.pod - Use `()` to qualify function names, consistently - Limit line width to 80 chars Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10235) * Fix doc for EC_GROUP_set_curve() (cherry picked from commit eb2ff0408ac6e934e05db7ed4006855c018584f1) Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10235) * Update control logic for BN_gcd PR https://github.com/openssl/openssl/pull/10122 introduced changes to the BN_gcd function and the control logic inside it accessed `g->d[0]` irrespective of `g->top`. When BN_add is called, in case the result is zero, `BN_zero` is called. The latter behaves differently depending on the API compatibility level flag: normally `g->d[0]` is cleared but in `no-deprecated` builds only `g->top` is set to zero. This commit uses bitwise logic to ensure that `g` is treated as zero if `g->top` is zero, irrespective of `g->d[0]`. Co-authored-by: Nicola Tuveri <nic.tuv@gmail.com> (cherry picked from commit 8aca4bfe8213402c80abc06fe25121461f79128d) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10232) * Enable runtime testing of no-deprecated builds in Travis (cherry picked from commit c89799605b833f769ce4cfd879bb291f49b133be) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10232) * Cleanup hardcoded cipher suite codepoints in s_server The hardcoded code points for TLSv1.3 cipher suites are used in the TLS PSK server callback. However, they seem to have been refactored a while ago to use tls13_aes128gcmsha256_id, so these defines are not necessary within the s_server code anymore. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10243) (cherry picked from commit aed8c47cbcc8a289bea433ead2effea035187260) * Allow EVP_PKEY_get0_RSA for RSA-PSS keys RSA-PSS keys use the same internal structure as RSA keys but do not allow accessing it through EVP_PKEY_get0_RSA. This commit changes that behavior. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10217) (cherry picked from commit 465a58b117d5a85623f3998d6fbf2fe8712a5604) * Fix a copy&paste error in the TLSv1.3 server side PSK documentation The introductory paragraph for the TLSv1.3 server side PSK documentation is a copy & paste of the client side documentation which has not been updated with the server side equivalent information. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10245) (cherry picked from commit c549cb46e0d3cb4e611acafae5f919b4a8df4007) * Fix an s_server arbitrary file read issue on Windows Running s_server in WWW mode on Windows can allow a client to read files outside the s_server directory by including backslashes in the name, e.g. GET /..\myfile.txt HTTP/1.0 There exists a check for this for Unix paths but it is not sufficient for Windows. Since s_server is a test tool no CVE is assigned. Thanks to Jobert Abma for reporting this. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10215) (cherry picked from commit 0a4d6c67480a4d2fce514e08d3efe571f2ee99c9) * Suppress an error when doing SM2 sign/verify ops This was fixed in #8321 right after the 1.1.1 was released but never back ported to 1.1.1. Now fix it. Issue reported from lua-openssl project. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10278) * apps/dgst.c: allocate a new signature buffer ... if the fixed-size buffer is too small. Fixes #9732 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> (Merged from https://github.com/openssl/openssl/pull/10276) (cherry picked from commit 7c2d95d47ccb3797f0da6bd4446747c6eee07b87) * Fix find/rm command in Unix clean recipe The `./pyca-cryptography/.travis/downstream.d` subdirectory that causes the `rm` command to fail (albeit harmlessly, but with a warning from `make` nonetheless). >rm -f `find . -name '*.d' \! -name '.*' -print` >rm: cannot remove './pyca-cryptography/.travis/downstream.d': Is a directory >make: [Makefile:1910: clean] Error 1 (ignored) Exclude directories from being matched by the `find` commands. CLA: trivial Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10264) (cherry picked from commit 38b71bd4704ee1746e862f5a7a4e170fd84a5eb0) * [crypto/bn] fix a few small timing leaks in BN_lshift1 and BN_rshift1 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10209) (cherry picked from commit 305bf9c8668aff78e668131061f4eb088457be5f) * Fix SYNOPSIS for ASN1_ENUMERATED_get_int64 and ASN1_ENUMERATED_set_int64 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9823) (cherry picked from commit 2aa28a1abc893fb16b99ba77e2fecb1cbc8769c7) * Fix potential memory leak in dh_ameth.c Free dukm in error handling of dh_cms_encrypt() Fixes #10294 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> (Merged from https://github.com/openssl/openssl/pull/10310) (cherry picked from commit 6624e1f7b6a397948561e9cc2774f0c8af1d2c79) * md4/md5: macros should not include the line following them Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10311) (cherry picked from commit 351ba5bd27645d5b5a2bc643b2709bd30bcdf09c) * Add test cases for min/max protocol API Signed-off-by: Christian Heimes <christian@python.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6553) (cherry picked from commit 132b5facf8d681db5dfa45828d8b02f1bf5df64b) * VMS: Added new method to gather entropy on VMS, based on SYS$GET_ENTROPY. This system services is based on FreeBSD 12's getentropy(), and is therefore treated the same way as getentropy() with regards to amount of entropy bits per data bit. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8926) (cherry picked from commit 8b9896eb293a0861f0b8c191b7a278f176b729e6) * s390x assembly pack: enable clang build clang imposes some restrictions on the assembler code that gcc does not. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10330) (cherry picked from commit 6f93f06135cbbd36c3fe98d63717e8303a5d559b) Conflicts: crypto/perlasm/s390x.pm (non-existant) crypto/s390xcpuid.pl (code to be changed non-existant) * Don't leak memory in the event of a failure in i2v_GENERAL_NAMES i2v_GENERAL_NAMES call i2v_GENERAL_NAME repeatedly as required. Each time i2v_GENERAL_NAME gets called it allocates adds data to the passed in stack and then returns a pointer to the stack, or NULL on failure. If the passed in stack is itself NULL then it allocates one. i2v_GENERAL_NAMES was not correctly handling the case where a NULL gets returned from i2v_GENERAL_NAME. If a stack had already been allocated then it just leaked it. Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10300) (cherry picked from commit 45b244620a74248b46ebe1c85e86437b9641447a) * BIO_s_connect: add an error state and use it If no connection could be made, addr_iter will eventually end up being NULL, and if the user didn't check the returned error value, the BIO_CONN_S_CONNECT code will be performed again and will crash. So instead, we add a state BIO_CONN_S_CONNECT_ERROR that we enter into when we run out of addresses to try. That state will just simply say "error" back, until the user does something better with the BIO, such as free it or reset it. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10333) * Configure: Make --strict-warnings meaningful with MSVC cl We also add this to our x86_64 builds on appveyor (cherry picked from commit b4a7b4ec4acc712b1f22a83966ac986b510f25d8) Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10365) * conf_def.c: Avoid calling strlen() in a loop Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10361) (cherry picked from commit d1c1fb2d41a627293483d832aaffcb6eca9075f9) * Fix a -Warray-bounds gcc warning in OPENSSL_DIR_read '__builtin_strncpy' offset [275, 4095] from the object at 'direntry' is out of the bounds of referenced subobject 'd_name' with type 'char[256]' at offset 19 Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10343) (cherry picked from commit db5cf86535b305378308c58c52596994e1ece1e6) * Fix --strict-warnings build Appease -Wstring-plus-int. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9608) (cherry picked from commit e0249827b3fa81ff6c59fb14ef85d38361dd5e31) * Workaround for Windows-based GOST implementations Many Windows-based GOST TLS implementations are unable to extend the list of supported SignatureAlgorithms because of lack of the necessary callback in Windows. So for TLS 1.2 it makes sense to imply the support of GOST algorithms in case when the GOST ciphersuites are present. This is a backport of #10377 to 1.1.1 branch Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10378) * Fix misspelled resumption_label for CHARSET_EBCDIC The resumption_label variable when CHARSET_EBCDIC was enabled, was misspelled. Instead of evaluating to 'res binder' as expected, it evaluated to 'red binder'. CLA: trivial Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10396) (cherry picked from commit 6ed12cec7216c3e81b58f5cafa41775e456feaee) * SSL: Document SSL_add_{file,dir}_cert_subjects_to_stack() This also removes the incorrect documentation comments by those functions. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10403) * Add more tests for apps/req https://github.com/openssl/openssl/issues/10224#issuecomment-546593113 highlighted that existing testing infrastructure is not covering common usage patterns of the `req` app. This commit explicitly adds request generations thorugh the CLI using RSA, DSA and ECDSA (P-256) keys. (cherry picked from commit b2a7310af0dd190712bae2e462a7708483dd4628) Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10369) * Fix EC_POINT_bn2point() for BN_zero() EC_POINT_bn2point() rejected BIGNUMs with a zero value. This behavior indirectly caused failures when converting a point at infinity through EC_POINT_point2hex() and then back to a point with EC_POINT_hex2point(). With this change such BIGNUMs are treated like any other and exported to an octet buffer filled with zero. It is then EC_POINT_oct2point() (either the default implementation or the custom one in group->meth->oct2point) to determine if such encoding maps to a valid point (generally the point at infinity is encoded as 0x00). Fixes #10258 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10329) (cherry picked from commit d47c10875656790d146f62ac3c437db54c58dbf7) * Add self-test for EC_POINT_hex2point Adds tests for each curve to ensure that encodings obtained through EC_POINT_hex2point() can be fed to EC_POINT_point2hex() yielding a point identical to the one from which the encoding is generated. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10329) (cherry picked from commit 35ed029b5a488924890fda2487c87f664361a33b) * Extend docs for EC_POINT conversion functions Add more explicit documentation about the relation between EC_POINT_point2oct(), EC_POINT_point2hex(), EC_POINT_point2bn() and their reverse. In particular highlight that EC_POINT_point2oct() and EC_POINT_oct2point() conform to, respectively, Sec. 2.3.3 and Sec. 2.3.4 of the SECG SEC 1 standard (which is the normative reference for the already mentioned RFC 5480), highlighting with a note how this affect the encoding/decoding of the point at infinity (which in contrast with any other valid generic point of a curve is assigned an exceptional fixed octet string encoding, i.e., 0x00). Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10329) (cherry picked from commit 3cc26f2eba8a8c16ac559e68c05c094d7ea6bd8b) * chacha_enc.c: fix for EBCDIC platforms Signed-off-by: Joerg Schmidbauer <jschmidb@de.ibm.com> Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10417) (cherry picked from commit c31950b964a2f3f7b9e6ad98076954178ee1e77d) * testutil/init.c rename to testutil/testutil_init.c Avoid conflicts with some linkers. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10439) (cherry picked from commit e74b5dcf16dfd7c91d9f9a7e69c447f00d778e17) Conflicts: test/build.info * travis.yml: add arch s390x target Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10446) (cherry picked from commit 985412f8c14853b9936852bc7ef4d9438db27b88) * Add missing EVP_PKEY_METHOD accessors for digestsign and digestverify Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10388) (cherry picked from commit 2555285fa5e4248ad4a5a0bc14ae4606443856c2) * s390x assembly pack: fix bn_mul_comba4 Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10454) (cherry picked from commit 97a986f78289fef71bf8778dc4763458e983750c) * Allow specifying the tag after AAD in CCM mode (2) In addition to 67c81ec3 which introduced this behavior in CCM mode docs but only implemented it for AES-CCM. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10331) (cherry picked from commit f7382fbbd846dd3bdea6b8c03b6af22faf0ab94f) Conflicts: test/recipes/30-test_evp_data/evpciph.txt * Fix sha512_block_data_order_avx2 backtrace info We store a secondary frame pointer info for the debugger in the red zone. Fixes #8853 [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9624) (cherry picked from commit 9ce91035bcf7d74fe15c94650f3bc1f89b7c0f07) * ECDSA: don't clear free memory after verify. Verifications are public, there is no need to clear the used storage before freeing it. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10475) (cherry picked from commit cff7d199e0dc51ae939de5fb7702aab2a9ef30fc) * Engine: Add NULL check. Add NULL check for return from pkey_asn1_meths. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10473) (cherry picked from commit 9bada854de16bcc1a9dc199b4b352b19ab6897fc) * EVP p_lib: Add NULL check to EVP_PKEY_missing_parameters. Check for NULL and return error if so. This can possibly be called from apps/ca.c with a NULL argument. Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/10474) (cherry picked from commit ab5c77b4766e0992751d86560193ca42b49cf316) * Fix a race condition in SNI handling As was done for ciphers, supported groups, and EC point formats in https://github.com/openssl/openssl/pull/9162, only write the negotiated SNI hostname value to the session object when not resuming, even for TLS 1.3 resumptions. Otherwise, when using a stateful session cache (as is done by default when 0-RTT data is enabled), we can have multiple SSLs active using the same in-memory session object, which leads to double-frees and similar race conditions in the SNI handler prior to this commit. Fortunately, since draft-ietf-tls-tls13-22, there is no requirement that the SNI hostname be preserved across TLS 1.3 resumption, and thus not a need to continually update the session object with the "current" value (to be used when producing session tickets, so that the subsequent resumption can be checked against the current value). So we can just relax the logic and only write to the session object for initial handshakes. This still leaves us in a somewhat inconsistent state, since if the SNI value does change across handshakes, the session object will continue to record the initial handshake's value, even if that bears no relation to the current handshake. The current SSL_get_servername() implementation prefers the value from the session if s->hit, but a more complete fix for that and related issues is underway in https://github.com/openssl/openssl/pull/10018; there is no need to wait for the complete fix for SNI name handling in order to close the race condition and avoid runtime crashes. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10441) (cherry picked from commit 2a5385511051d33be8d2b20d7669d8b1862fe510) * main: avoid a NULL dereference on initialisation. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10495) (cherry picked from commit acc7b9fb5c162c2ca522e5e1e09d1efbde8dc6a0) * UI_UTIL_wrap_read_pem_callback(): when |cb| is NULL, use PEM_def_callback Fixes #10444 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10447) (cherry picked from commit 72a5412b4858cc7c5627a121f78685a2a4065521) * doc/man7/proxy-certificates.pod: New guide for proxy certificates This replaces doc/HOWTO/proxy_certificates.txt Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10507) (cherry picked from commit 2a03823606b2d7e73e5dc890c3202e186511151f) * i2b_PVK(): Use Encrypt, not Decrypt We used EVP_EncryptInit_ex() to initialise, but EVP_DecryptUpdate() and EVP_DecryptFinal_ex() to actually perform encryption. This worked long ago, when the Encrypt and Decrypt variants were the same, but doesn't now (actually haven't for a very long time). This shows how seldom PVK is actually used. Fixes #9338 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10521) * Fix L<EVP_MD_CTX_set_pkey_ctx> links Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10420) * apps/ocsp.c: sock_timeout -> socket_timeout It appears that 'sock_timeout' is defined at least with DJGPP, so we rename our symbol and hope the new name isn't taken. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10515) (cherry picked from commit e9b95e42fbae668cb605287fa462a0d5f58b9caf) * EVP_*Update: ensure that input NULL with length 0 isn't passed Even with custom ciphers, the combination in == NULL && inl == 0 should not be passed down to the backend cipher function. The reason is that these are the values passed by EVP_*Final, and some of the backend cipher functions do check for these to see if a "final" call is made. An exception is made for CCM mode which has special handling for the case where inl == 0: this may mean the total plaintext or ciphertext length is 0. This is based on an original commit by Richard Levitte. Fixes #8675 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9057) * Add a test for NULL chunks in encrypt/decrypt Issue #8675 describes a problem where calling EVP_DecryptUpdate() with an empty chunk causes the result to be different compared to if you do not use an empty chunk. This adds a test for that case. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9057) * Update NOTES.ANDROID for newer NDK versions + small fixes. Fixes #8941 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10478) (cherry picked from commit d3a27c5ee45a29edd9c0d60ad5929f67996f89fd) * Remove spurious space from file. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10562) (cherry picked from commit 7ba46774b7f1b2e83d44323a8831b615a49f9f37) * Fix exit issue in travisci Ungraceful 'exit' probably causes unexpeced error on background activity. So replace 'exit' with recommended 'travis_terminate'. Also see https://travis-ci.community/t/exit-0-cannot-exit-successfully-on-arm/5731/4 Change-Id: I382bd93a3e15ecdf305bab23fc4adefbf0348ffb Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10561) (cherry picked from commit 6df44cf65fbc7e150965149d7e681ac3e22d11d8) * Fix an overflow bug in rsaz_512_sqr There is an overflow bug in the x64_64 Montgomery squaring procedure used in exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a result of this defect would be very difficult to perform and are not believed likely. Attacks against DH512 are considered just feasible. However, for an attack the target would have to re-use the DH512 private key, which is not recommended anyway. Also applications directly using the low level API BN_mod_exp may be affected if they use BN_FLG_CONSTTIME. CVE-2019-1551 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10575) * Improve the overflow handling in rsaz_512_sqr We have always a carry in %rcx or %rbx in range 0..2 from the previous stage, that is added to the result of the 64-bit square, but the low nibble of any square can only be 0, 1, 4, 9. Therefore one "adcq $0, %rdx" can be removed. Likewise in the ADX code we can remove one "adcx %rbp, $out" since %rbp is always 0, and carry is also zero, therefore that is a no-op. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10575) * Add a test case for rsaz_512_sqr overflow handling [extended tests] Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10575) * Add a CHANGES entry for CVE-2019-1551 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10575) * Difference between EVP_CipherInit and EVP_CipherInit_ex Fixes #10455 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10550) * Fix some typos Reported-by: misspell-fixer <https://github.com/vlajos/misspell-fixer> CLA: trivial Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10544) (cherry picked from commit 79c44b4e3044aee9dc9618850d4f1ce067757b4b) * Fix docs for CRYPTO_secure_allocated Fixes #9300 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10523) (cherry picked from commit 20c09f00346aec3a20ceacc9c9d44c5f050e13dd) * Enrich arm64 tests in Travis matrix 1, Remove simple test just with --strict-warnings enabled. 2, Share the three common envs with amd64. 3, Add matrix item running test in bionic(default xenial) for arm64. 4, Enable MSan test on arm64 for extended test. 5, Enable UBSan test on arm64 for extended test. Change-Id: Ic1f2c5e39ee6fbafed6ede74a925301121463520 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10519) (cherry picked from commit 77fedcdc8cf5446354a1e7ff9123d8ada5b79b06) * Check return value after loading config file CLA: trivial Reviewed-by: Paul Yang <kaishen.yy@antfin.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10607) (cherry picked from commit dd0139f416257ec5632414ed3ad8c61d07ba07ec) * Parse large GOST ClientKeyExchange messages Large GOST ClientKeyExchange messages are sent by VipNet CSP, one of Russian certified products implementing GOST TLS, when a server certificate contains 512-bit keys. This behaviour was present in 1.0.2 branch and needs to be restored. Backport of #10376 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10376) * util/mkerr.pl: revert accidental change of header guards This change was backported accidentally from master in commit fbbfd128c9aa. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10623) * rand_lib.c: fix null pointer dereferences after RAND_get_rand_method() failure RAND_get_rand_method() can return a NULL method pointer in the case of a malloc failure, so don't dereference it without a check. Reported-by: Zu-Ming Jiang (detected by FIFUZZ) Fixes #10480 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10490) * Return 1 when openssl req -addext kv is duplicated CLA: trivial Fixes #10273 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10578) (cherry picked from commit 1aeec3dbc2d62f902698b1eba9ed31cbd436f9dc) * Ensure EVP_PKEY_set1_DH detects X9.42 keys OpenSSL supports both PKCS#3 and X9.42 DH keys. By default we use PKCS#3 keys. The function `EVP_PKEY_set1_DH` was assuming that the supplied DH key was a PKCS#3 key. It should detect what type of key it is and assign the correct type as appropriate. Fixes #10592 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10593) (cherry picked from commit 32c869ffaba67822602ea9fec611272ff8e8db58) * Test that EVP_PKEY_set1_DH() correctly identifies the DH type Provide a test to check tat when we assign a DH object we know whether we are dealing with PKCS#3 or X9.42 DH keys. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10593) (cherry picked from commit e295de1d8433ed07092845cb6c56aa424ff35c6d) * Backport the RSA_get0_pss_params() function from master This is a missing accessor in order to obtain PSS parameters from an RSA key, which should also be available in 1.1.1. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10568) * Update the HISTORY entry for RSA_get0_pss_params() Make a note of when this function was first introduced Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10568) * apps/speed.c: Fix eddsa sign and verify output with -multi option Fixes #10261 CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10285) (cherry picked from commit 1ac7e15375be39c8f03171c02658cf703f58217a) * Fix unwind info for some trivial functions While stack unwinding works with gdb here, the function _Unwind_Backtrace gives up when something outside .cfi_startproc/.cfi_endproc is found in the call stack, like OPENSSL_cleanse, OPENSSL_atomic_add, OPENSSL_rdtsc, CRYPTO_memcmp and other trivial functions which don't save anything in the stack. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10635) (cherry picked from commit 8913378a552e470c66277c47b19699f20b84aa3b) * Disable devcryptoeng on newer OpenBSD versions It's reported that /dev/crypto support has been dropped in OpenBSD 5.7. Fixes #10552 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565) * Configuration: compute openssl_other_defines and related info later The computation of macros and configdata.pm related data from %disabled was done much too early, leaving later disablings without real support. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565) * Fix regression on x509 keyform argument In OpenSSL pre 1.1.0, 'openssl x509 -keyform engine' was possible and supported. In 1.1.0, type of keyform argument is OPT_FMT_PEMDER which doesn't support engine. This changes type of keyform argument to OPT_FMT_PDE which means PEM, DER or engine and updates the manpage including keyform and CAkeyform. This restores the pre 1.1.0 behavior. This issue is very similar than https://github.com/openssl/openssl/issues/4366 CLA: trivial Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10609) (cherry picked from commit 0ab6fc79a9a63370be1a615729dc2a6ed0d6c89b) * Add some missing cfi frame info in camellia-x86_64.pl Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10642) (cherry picked from commit 6b913be708f98b1d971586d38e608218ee6de6fa) * Add some missing cfi frame info in x86_64-mont5.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10651) (cherry picked from commit 0190c52ab8b4cdf5fe577b3d924576167c892a15) * Add some missing cfi frame info in rsaz-x86_64 Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10652) (cherry picked from commit 013c2e8d1a272df444f47b8b54de1d51bc499887) * Add some missing cfi frame info in aesni-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10653) (cherry picked from commit a5fe7825b970a6c937118a4f707f9ad367413794) * Add some missing cfi frame info in keccak1600-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10654) (cherry picked from commit 95bbe6eff7aadc681e282ec957379b49d6f80ca8) * Add some missing cfi frame info in aesni-sha and sha-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10655) (cherry picked from commit b0d3442efc10b635863b915c2d014345f6e5a219) * Fix evp_extra_test with no-dh The new DH test in evp_extra_test.c broke the no-dh build so we add some guards to fix it. Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10644) (cherry picked from commit 501fcfb8cfc1aa114ffde437039c2dc2827554ae) * Add some missing cfi frame info in ecp_nistz256-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10672) (cherry picked from commit eff5076a78502d1ac04669e44127d4bd7c0a9ce7) * Fix aesni_cbc_sha256_enc_avx2 backtrace info We store a secondary frame pointer info for the debugger in the red zone. This fixes a crash in the unwinder when this function is interrupted. Additionally the missing cfi function annotation is added to aesni_cbc_sha256_enc_shaext. [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10674) (cherry picked from commit 665de4d48aef2507022a7d74f5c7f6e339d5e6bc) * Add some missing cfi frame info in x25519-x86_64.pl Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10676) (cherry picked from commit 9d079f2744b9b624c6fe75f95fc0f766ef88ffcf) * Add some missing cfi frame info in aesni-gcm-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10677) (cherry picked from commit 275a048ffc1585a731e39d7e8e3f53766e8f48d7) * Add some missing cfi frame info in poly1305-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10678) (cherry picked from commit 048fa13e5ef4ccd730561f79a6c91f38365994d1) * Add some missing cfi frame info in rc4-md5-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10679) (cherry picked from commit b2a00f62209add348deb8283c588ddbd572dc216) * Fix a race condition in the speed command The timer alarm sets run = 0, while the benchmark does run = 1 in the initialization code. That is a race condition, if the timer goes off too early the benchmark runs forever. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10680) (cherry picked from commit f3fdfbf78c6bfc97abf9c70b03859a28ebf6b66d) * Update the krb5 submodule Bring us up to date with upstream's 1.17.1 release. Among other things, it includes commit c2497d46b4bad473e164943d67b58cd1ae261c3a which fixes several issues that affect running the test suite under Travis CI. Hopefully those will work transitively for us as well. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 3e73f558af600ea068bb2132988c31ddb444e13e) Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10690) * Temporarily disable external pyca tests The pyca-cryptography external test has been failing for a long time. It looks like upstream needs to make some changes to adapt to 1.1.1. Backported from #10689 [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10722) * Update tls13_enc.c Fix double + in hkdflabel declaration (FIXES #10675) CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10700) (cherry picked from commit 2de5a5fbdd14f514e962cccfe90482c37786c183) * Run make update The New Year has caused various files to appear out of date to "make update". This causes Travis to fail. Therefore we update those files. Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10739) * Fix potential SCA vulnerability in some EC_METHODs This commit addresses a potential side-channel vulnerability in the internals of some elliptic curve low level operations. The side-channel leakage appears to be tiny, so the severity of this issue is rather low. The issue was reported by David Schrammel and Samuel Weiser. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 3cb914c463ed1c9e32cfb773d816139a61b6ad5f) * Avoid leaking intermediate states in point doubling special case. Cherry picked from https://github.com/google/boringssl/commit/12d9ed670da3edd64ce8175cfe0e091982989c18 Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 2baea7c7e0896658b74956cac6084dd7e82e8c1b) * Fix side channel in ecp_nistz256-x86.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 0de3399b691f025153c8001045d5eeb0909dfd7a) * Fix side channel in ecp_nistz256-armv4.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 3d139746ca72f0906c036d0a4a3e176c7b61ed1b) * Improve side channel fix in ecp_nistz256-x86_64.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit e9fe87950db2e6169029b2ecf3ed09d64265bc9c) * Fix side channel in the ecp_nistz256.c reference implementation This is only used if configured with ./config -DECP_NISTZ256_REFERENCE_IMPLEMENTATION Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 7d4716648e8348dea862e198b9395478fae01907) * Fix side channel in ecp_nistz256-armv8.pl This change addresses a potential side-channel vulnerability in the internals of nistz256 low level operations for armv8. Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit f5a659b6dfcc735a62c712dcca64d116d2289b97) * Fix disabled ecdsa in apps/speed This came from f3fdfbf78c6b. run = 1 should be done in pkey_print_message as well, otherwise other tests printed with pkey_print_message won't run. Change-Id: I0ba0b05256ad6509ada4735b26d10f8a73fd89ec Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10710) (cherry picked from commit 6e49b514067a2b6a30d064d2ae1fdfd8050c184b) * Fix incorrect return code on ECDSA key verification ECDSA_do_verify() is a function that verifies a ECDSA signature given a hash and a public EC key. The function is supposed to return 1 on valid signature, 0 on invalid signature and -1 on error. Previously, we returned 0 if the key did not have a verify_sig method. This is actually an error case and not an invalid signature. Consequently, this patch updates the return code to -1. Fixes #8766 Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10693) (cherry picked from commit 26583f6aa8dc28e3598e61db66e54e2fdf8b195f) * Don't store an HMAC key for longer than we need The HMAC_CTX structure stores the original key in case the ctx is reused without changing the key. However, HMAC_Init_ex() checks its parameters such that the only code path where the stored key is ever used is in the case where HMAC_Init_ex is called with a NULL key and an explicit md is provided which is the same as the md that was provided previously. But in that case we can actually reuse the pre-digested key that we calculated last time, so we can refactor the code not to use the stored key at all. With that refactor done it is no longer necessary to store the key in the ctx at all. This means that long running ctx's will not keep the key in memory for any longer than required. Note though that the digested key *is* still kept in memory for the duration of the life of the ctx. Fixes #10743 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10763) * Revert "Move random-related defines from e_os.h to rand_unix.c" This reverts commit 7b18d1a53f932391bbc599a4717d6f98a597849c, which moved the DEVRANDOM and DEVRANDOM_EGD defines into rand_unix.c. That change introduced the regression that the compiler complains about missing declarations in apps/version.c when OpenSSL is configured using `--with-rand-seed=devrandom` (resp. `--with-rand-seed=egd`): apps/version.c:173:42: error: 'DEVRANDOM' undeclared static const char *dev[] = { DEVRANDOM, NULL }; ^~~~~~~~~ Fixes #10759 Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from htt…
dstebila
pushed a commit
to open-quantum-safe/openssl
that referenced
this pull request
Oct 7, 2020
* Fix aesni_cbc_sha256_enc_avx2 backtrace info We store a secondary frame pointer info for the debugger in the red zone. This fixes a crash in the unwinder when this function is interrupted. Additionally the missing cfi function annotation is added to aesni_cbc_sha256_enc_shaext. [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10674) (cherry picked from commit 665de4d48aef2507022a7d74f5c7f6e339d5e6bc) * Add some missing cfi frame info in x25519-x86_64.pl Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10676) (cherry picked from commit 9d079f2744b9b624c6fe75f95fc0f766ef88ffcf) * Add some missing cfi frame info in aesni-gcm-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10677) (cherry picked from commit 275a048ffc1585a731e39d7e8e3f53766e8f48d7) * Add some missing cfi frame info in poly1305-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10678) (cherry picked from commit 048fa13e5ef4ccd730561f79a6c91f38365994d1) * Add some missing cfi frame info in rc4-md5-x86_64.pl Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/10679) (cherry picked from commit b2a00f62209add348deb8283c588ddbd572dc216) * Fix a race condition in the speed command The timer alarm sets run = 0, while the benchmark does run = 1 in the initialization code. That is a race condition, if the timer goes off too early the benchmark runs forever. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10680) (cherry picked from commit f3fdfbf78c6bfc97abf9c70b03859a28ebf6b66d) * Update the krb5 submodule Bring us up to date with upstream's 1.17.1 release. Among other things, it includes commit c2497d46b4bad473e164943d67b58cd1ae261c3a which fixes several issues that affect running the test suite under Travis CI. Hopefully those will work transitively for us as well. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 3e73f558af600ea068bb2132988c31ddb444e13e) Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10690) * Temporarily disable external pyca tests The pyca-cryptography external test has been failing for a long time. It looks like upstream needs to make some changes to adapt to 1.1.1. Backported from #10689 [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10722) * Update tls13_enc.c Fix double + in hkdflabel declaration (FIXES #10675) CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10700) (cherry picked from commit 2de5a5fbdd14f514e962cccfe90482c37786c183) * Run make update The New Year has caused various files to appear out of date to "make update". This causes Travis to fail. Therefore we update those files. Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10739) * Fix potential SCA vulnerability in some EC_METHODs This commit addresses a potential side-channel vulnerability in the internals of some elliptic curve low level operations. The side-channel leakage appears to be tiny, so the severity of this issue is rather low. The issue was reported by David Schrammel and Samuel Weiser. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 3cb914c463ed1c9e32cfb773d816139a61b6ad5f) * Avoid leaking intermediate states in point doubling special case. Cherry picked from https://github.com/google/boringssl/commit/12d9ed670da3edd64ce8175cfe0e091982989c18 Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 2baea7c7e0896658b74956cac6084dd7e82e8c1b) * Fix side channel in ecp_nistz256-x86.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 0de3399b691f025153c8001045d5eeb0909dfd7a) * Fix side channel in ecp_nistz256-armv4.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 3d139746ca72f0906c036d0a4a3e176c7b61ed1b) * Improve side channel fix in ecp_nistz256-x86_64.pl Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit e9fe87950db2e6169029b2ecf3ed09d64265bc9c) * Fix side channel in the ecp_nistz256.c reference implementation This is only used if configured with ./config -DECP_NISTZ256_REFERENCE_IMPLEMENTATION Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit 7d4716648e8348dea862e198b9395478fae01907) * Fix side channel in ecp_nistz256-armv8.pl This change addresses a potential side-channel vulnerability in the internals of nistz256 low level operations for armv8. Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/9239) (cherry picked from commit f5a659b6dfcc735a62c712dcca64d116d2289b97) * Fix disabled ecdsa in apps/speed This came from f3fdfbf78c6b. run = 1 should be done in pkey_print_message as well, otherwise other tests printed with pkey_print_message won't run. Change-Id: I0ba0b05256ad6509ada4735b26d10f8a73fd89ec Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10710) (cherry picked from commit 6e49b514067a2b6a30d064d2ae1fdfd8050c184b) * Fix incorrect return code on ECDSA key verification ECDSA_do_verify() is a function that verifies a ECDSA signature given a hash and a public EC key. The function is supposed to return 1 on valid signature, 0 on invalid signature and -1 on error. Previously, we returned 0 if the key did not have a verify_sig method. This is actually an error case and not an invalid signature. Consequently, this patch updates the return code to -1. Fixes #8766 Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10693) (cherry picked from commit 26583f6aa8dc28e3598e61db66e54e2fdf8b195f) * Don't store an HMAC key for longer than we need The HMAC_CTX structure stores the original key in case the ctx is reused without changing the key. However, HMAC_Init_ex() checks its parameters such that the only code path where the stored key is ever used is in the case where HMAC_Init_ex is called with a NULL key and an explicit md is provided which is the same as the md that was provided previously. But in that case we can actually reuse the pre-digested key that we calculated last time, so we can refactor the code not to use the stored key at all. With that refactor done it is no longer necessary to store the key in the ctx at all. This means that long running ctx's will not keep the key in memory for any longer than required. Note though that the digested key *is* still kept in memory for the duration of the life of the ctx. Fixes #10743 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10763) * Revert "Move random-related defines from e_os.h to rand_unix.c" This reverts commit 7b18d1a53f932391bbc599a4717d6f98a597849c, which moved the DEVRANDOM and DEVRANDOM_EGD defines into rand_unix.c. That change introduced the regression that the compiler complains about missing declarations in apps/version.c when OpenSSL is configured using `--with-rand-seed=devrandom` (resp. `--with-rand-seed=egd`): apps/version.c:173:42: error: 'DEVRANDOM' undeclared static const char *dev[] = { DEVRANDOM, NULL }; ^~~~~~~~~ Fixes #10759 Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10764) * Fix pkeyutl -verifyrecover When performing a pkeyutl -verifyrecover operation the input file is not a hash - it is the signature itself. Therefore don't do the check to make sure it looks like a hash. Fixes #9658 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9731) (cherry picked from commit 5ffc33244cd4d66e47dfa66ce89cb38d0f3074cc) * fix a glitch in the documentation of OCSP_sendreq_bio() Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10713) * Configure: use $list_separator_re only for defines and includes This regexp was used a bit too uncontrolled, which had it split flag values where it should not have. Fixes #10792 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10793) (cherry picked from commit bbe486cf6154df3d3aaedbae6c5b82d4ed31a5f8) * Avoid leak in error path of asn1_parse2 CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10794) (cherry picked from commit 6a165fab239ec5b00b3cd68169a63b509207177d) * Fix documentation of return value for EVP_Digest{Sign,Verify}Init() They never returned the negative values that the documentation stated. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10847) * Update SSL_CTX_sess_set_new_cb(3) docs for refcounts The existing documentation for the new-session callback was unclear about the requirements on the callback with respect to reference-handling of the session object being created. Be more explicit about the (non-)requirements on the callback code for "success" (1) and "ignore" (0) return values. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10848) (cherry picked from commit 188d4ec82a9b0085ac5841cce3eda95efb94f2b4) * For all assembler scripts where it matters, recognise clang > 9.x Fixes #10853 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10857) * Fix unwind info in crypto/rc4/asm/rc4-x86_64.pl Move .cfi_startproc to the right place for RC4. Add missing .cfi_startproc and .cfi_endproc to RC4_options. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/10872) (cherry picked from commit 967ef73013becef2aec3439f8c45204b24121018) * Fix TLS not using aes_cbc_hmac_sha ciphers AES_ASM was repaced by AESNI_ASM, so use that. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10892) * Remove remaining references to crypto/include Configure creates an empty crypto/include which gets not cleaned up with make distclean. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10893) * openssl-config: add example libssl system-defaults Provide a "simple" example for affecting the systemwide default behavior of libssl. The large number of mandatory nested sections makes this less simple than the main description might suggest. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10937) (cherry picked from commit 3472082b4b6d73e0803a7c47f03e96ec0a69f77b) * Replace apps/server.pem with certificate with a sha256 signature. It replaces apps/server.pem that used a sha1 signature with a copy of test/certs/servercert.pem that is uses sha256. This caused the dtlstest to start failing. It's testing connection sbetween a dtls client and server. In particular it was checking that if we drop a record that the handshake recovers and still completes successfully. The test iterates a number of times. The first time through it drops the first record. The second time it drops the second one, and so on. In order to do this it has a hard-coded value for the expected number of records it should see in a handshake. That's ok because we completely control both sides of the handshake and know what records we expect to see. Small changes in message size would be tolerated because that is unlikely to have an impact on the number of records. Larger changes in message size however could increase or decrease the number of records and hence cause the test to fail. This particular test uses a mem bio which doesn't have all the CTRLs that the dgram BIO has. When we are using a dgram BIO we query that BIO to determine the MTU size. The smaller the MTU the more fragmented handshakes become. Since the mem BIO doesn't report an MTU we use a rather small default value and get quite a lot of records in our handshake. This has the tendency to increase the likelihood of the number of records changing in the test if the message size changes. It so happens that the new server certificate is smaller than the old one. AFAICT this is probably because the DNs for the Subject and Issuer are significantly shorter than previously. The result is that the number of records used to transmit the Certificate message is one less than it was before. This actually has a knock on impact for subsequent messages and how we fragment them resulting in one less ServerKeyExchange record too (the actual size of the ServerKeyExchange message hasn't changed, but where in that message it gets fragmented has). In total the number of records used in the handshake has decreased by 2 with the new server.pem file. Reviewed-by: Paul Dale <paul.dale@oracle.com> GH: #10784 (cherry picked from commit 5fd72d96a592c3c4ef28ff11c6ef334a856b0cd1) * Check that the default signature type is allowed TLS < 1.2 has fixed signature algorithms: MD5+SHA1 for RSA and SHA1 for the others. TLS 1.2 sends a list of supported ciphers, but allows not sending it in which case SHA1 is used. TLS 1.3 makes sending the list mandatory. When we didn't receive a list from the client, we always used the defaults without checking that they are allowed by the configuration. Reviewed-by: Paul Dale <paul.dale@oracle.com> GH: #10784 (cherry picked from commit b0031e5dc2c8c99a6c04bc7625aa00d3d20a59a5) * OpenSSL::Test: bring back the relative paths Because there was a bug in File::Spec::Unix' abs2rel when it was given relative paths as both PATH and BASE arguments, the directories we deal with were made to be all absolute. Unfortunately, this meant getting paths in our verbose test output which are difficult to use anywhere else (such as a separate test build made for comparison), due to the constant need to edit all the paths all the time. We're therefore getting back the relative paths, by doing an extra abs2rel() in __srctop_file, __srctop_dir, __bldtop_file and __bldtop_dir, with a 'Cwd::getcwd' call as BASE argument. Fixes #10628 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10913) (cherry picked from commit 612539e8a678c6099131dfd0e5e4b85fa774eb1a) * Fix type name typo in d2i/i2d documentation. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10933) (cherry picked from commit 68229aebce159ecea7b887d6a0edd47d881a659b) * Fix SSL_get_servername() and SNI behaviour The SNI behaviour for TLSv1.3 and the behaviour of SSL_get_servername() was not quite right, and not entirely consistent with the RFC. The TLSv1.3 RFC explicitly says that SNI is negotiated on each handshake and the server is not required to associate it with the session. This was not quite reflected in the code so we fix that. Additionally there were some additional checks around early_data checking that the SNI between the original session and this session were consistent. In fact the RFC does not require any such checks, so they are removed. Finally the behaviour of SSL_get_servername() was not quite right. The behaviour was not consistent between resumption and normal handshakes, and also not quite consistent with historical behaviour. We clarify the behaviour in various scenarios and also attempt to make it match historical behaviour as closely as possible. Fixes #8822 Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10018) (cherry picked from commit 7955c1f16e72dc944677fd1dbf4b1300e75f1c84) * Test that SSL_get_servername returns what we expect Test this on both the client and the server after a normal handshake, and after a resumption handshake. We also test what happens if an inconsistent SNI is set between the original handshake and the resumption handshake. Finally all of this is also tested in TLSv1.2 and TLSv1.3. Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10018) (cherry picked from commit 49ef3d0719f132629ab76d4bcb4ab0c1e016277a) * Provide better documentation for SSL_get_servername() The behaviour of SSL_get_servername() is quite complicated and depends on numerous factors such as whether it is called on the client or the server, whether it is called before or after the handshake, what protocol version was negotiated, and whether a resumption was attempted or was successful. We attempt to document the behavior more clearly. Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10018) (cherry picked from commit 0dc7c8e8314f27ac093b2d7bc8f13d0dfd302bdb) * Don't acknowledge a servername following warning alert in servername cb If the servername cb decides to send back a warning alert then the handshake continues, but we should not signal to the client that the servername has been accepted. Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10018) (cherry picked from commit cd624ccd41ac3ac779c1c7a7a1e63427ce9588dd) * config: ensure the perl Configure run is the last statement Running any statement after Configure means we lose its exit code Fixes #10951 Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/10953) (cherry picked from commit 4bf3e989fef9268507ba02744e7f71ee5637681c) * Create a new embeddedSCTs1 that's signed using SHA256 Reviewed-by: Viktor Dukhovni <viktor@openssl.org> GH: #10786 (cherry picked from commit 4d9e8c95544d7a86765e6a46951dbe17b801875a) * Stop accepting certificates signed using SHA1 at security level 1 Reviewed-by: Viktor Dukhovni <viktor@openssl.org> GH: #10786 (cherry picked from commit b744f915ca8bb37631909728dd2529289bda8438) * Fix small misspelling in doc for OCSP_response_status CLA: trivial Reviewed-by: Paul Yang <kaishen.yy@antfin.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10810) (cherry picked from commit 924d041fe0c650a79449217f81880a6384ff06b2) * doc: Fix typo in EVP_DigestSignInit manpage CLA: trivial Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10841) (cherry picked from commit 099a398268a298557be784528ac1d94f0f44c97c) * Prevent compiler warning for unused static function. Prepend missing ossl_unused in front of lh_type_new to make the compiler happy. CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10946) (cherry picked from commit 7b6a746721170a21519c38798041be8101e7361f) * Fix misspelling errors and typos reported by codespell Fixes #10998 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11000) * Coverity CID 1444960: Error handling issues Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8888) (cherry picked from commit a05bf83c7964bb3928b323fe356b9f70f105036d) * Avoid leak in error path of PKCS5_PBE_keyivgen CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10816) (cherry picked from commit adc9086beb21a91ca59aaf0c619b38b82c223f9b) * Appveyor: update to Visual Studio 2017. Default image was currently "Visual Studio 2015" Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10327) (cherry picked from commit b03de7a9207645c72e22627b10709f15eed211bf) * Fix no-tls1_3 The hostname_cb in sslapitest.c was originally only defined if TLSv1.3 was enabled. A recently added test now uses this unconditionally, so we move the function implementation earlier in the file, and always compile it in. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11014) (cherry picked from commit 104a733df65dfd8c3dd110de9bd56f6ebfc8f2f6) * Forgotten GOST2012 support in non-vital places Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/11072) * Adjust minimal build config in 1.1.1 branch Backport of improvements from #9982 to 1.1.1 branch. Adds some more exclusions which were previously missed. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11059) * VMS: Adapt descrip.mms template to the changed inclustion dirs Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11088) * VMS: Correct error reporting in crypto/rand/rand_vms.c The future style that's coming with OpenSSL 3.0 was used, we need to revert that back to "traditional" style. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11088) * DOC: document in more detail what a BIO_read_ex() via BIO_f_buffer() does The BIO_f_buffer() documentation tells in enough detail how it affects BIO_gets(), but not how it affects BIO_read_ex(). This change remedies that. Fixes #10859 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10890) (cherry picked from commit 9a4fd80ee0ad1833879b6a55c9c4673eeb8446a3) * Generate new Ed488 certificates Create a whole chain of Ed488 certificates so that we can use it at security level 4 (192 bit). We had an 2048 bit RSA (112 bit, level 2) root sign the Ed488 certificate using SHA256 (128 bit, level 3). Reviewed-by: Matt Caswell <matt@openssl.org> GH: #10785 (cherry picked from commit 77c4d3972400adf1bcb76ceea359f5453cc3e8e4) * Check that ed25519 and ed448 are allowed by the security level Signature algorithms not using an MD weren't checked that they're allowed by the security level. Reviewed-by: Tomáš Mráz <tmraz@fedoraproject.org> GH: #11062 * Do not silently truncate files on perlasm errors If one of the perlasm xlate drivers crashes, OpenSSL's build will currently swallow the error and silently truncate the output to however far the driver got. This will hopefully fail to build, but better to check such things. Handle this by checking for errors when closing STDOUT (which is a pipe to the xlate driver). This is the OpenSSL 1.1.1 version of https://github.com/openssl/openssl/pull/10883 and https://github.com/openssl/openssl/pull/10930. Reviewed-by: Mark J. Cox <mark@awe.com> Reviewed-by: Paul Dale David Benjamin <davidben@google.com> (Merged from https://github.com/openssl/openssl/pull/10931) * Handle max_fragment_length overflow for DTLS Allow for encryption overhead in early DTLS size check and send overflow if validated record is too long Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11096) (cherry picked from commit cc0663f697b05ed121a728241f0502250429802d) * Add *.d.tmp files to .gitignore These are temporary files generated by the build process that should not be checked in. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11122) (cherry picked from commit 7b5108dff4cfde059ca278147a188fb6254603d1) * Detect EOF while reading in libssl If we hit an EOF while reading in libssl then we will report an error back to the application (SSL_ERROR_SYSCALL) but errno will be 0. We add an error to the stack (which means we instead return SSL_ERROR_SSL) and therefore give a hint as to what went wrong. Contains a partial fix for #10880 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/10882) * Teach more BIOs how to handle BIO_CTRL_EOF Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/10882) * config: Drop linux-alpha-gcc+bwx Its entry in Configuration/10-main.conf was dropped in commit 7ead0c89185c ("Configure: fold related configurations more aggressively and clean-up.") probably because all but one of its bn_ops were removed (RC4_CHAR remained). Benchmarks on an Alpha EV7 indicate that RC4_INT is better than RC4_CHAR so rather than restoring the configuation, remove it from config. CLA: trivial Bug: https://bugs.gentoo.org/697840 (cherry picked from commit 19ded1a717b6c72c3db241f06787a353f1190755) Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11130) * VMS: mitigate for the C++ compiler that doesn't understand certain pragmas This only affects __DECC_INCLUDE_EPILOGUE.H and __DECC_INCLUDE_PROLOGUE.H, which are used automatically by HP and VSI C/C++ compilers. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/11159) * apps x509: restrict CAkeyform option to OPT_FMT_PDE CAkeyform may be set to PEM, DER or ENGINE, but the current options are not using the proper optionformat 'E' (OPT_FMT_PDE) for this. Set the valtype for CAkeyform to 'E' and use OPT_FMT_PDE when extracting the option value. This amends bf4006a6f9 ("Fix regression on x509 keyform argument") which did the same thing for keyform and changed the manpage synopsis entries for both keyform and CAkeyform but did not change the option section. Hence, change the option section. CLA: trivial Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11172) * Fix comment placement in ecp_nistp256.ci CLA: trivial Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/11175) (cherry picked from commit c590be6f12d0b725863961e41bc64a81c8cf30d6) * This works around a gcc-9 crash It happens when configured with ./config -ftest-coverage see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94029 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11246) * aes-s390x.pl: fix stg offset caused by typo in perlasm Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11234) (cherry picked from commit 7b2ce4a6e817e4385ff77fea0c6e349294c7b756) * crypto/ec/curve448/eddsa.c: fix EBCDIC platforms Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11229) (cherry picked from commit af7f656cd91d99d62567e2b20c61f07cb4d81d0b) * DOC: Add documentation related to X509_LOOKUPs Most of all, the base X509_LOOKUP functionality is now documented. Furthermore, the names X509_LOOKUP_METHOD and X509_STORE are added for reference. Some functions were moved from X509_LOOKUP_meth_new.pod Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11120) * DOC: Fixups of X509_LOOKUP.pod Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11120) * Clarify the usage of EVP_PKEY_get_raw_[private|public]_key() EVP_PKEY_get_raw_private_key() and EVP_PKEY_get_raw_public_key() expect the size of the key buffer to be populated in the |*len| parameter on entry - but the docs made no mention of this. Fixes #11245 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11254) (cherry picked from commit f529fc7d53bf4228fae61cb1efe73d97fe3eb35f) * apps x509: passing PKCS#11 URL as -signkey OpenSSL 1.1.0 has extended option checking, and rejects passing a PKCS#11 engine URL to "-signkey" option. The actual code is ready to take it. Change the option parsing to allow an engine URL to be passed and modify the manpage accordingly. CLA: trivial (cherry picked from commit 16d560439d8b1be5082228a87576a8f79b3525ac) Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11173) * DOC: New file for EVP_PKEY_size(), EVP_PKEY_bits() and EVP_PKEY_security_bits() We change the description to be about the key rather than the signature. How the key size is related to the signature is explained in the description of EVP_SignFinal() anyway. Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (cherry picked from commit 6942a0d6feb8d3dcbbc6a1ec6be9de7ab2df1530) Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/11232) * DOC: Make EVP_SignInit.pod conform with man-pages(7) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (cherry picked from commit 03d65ca2095777cf6314ad813eb7de5779c9b93d) Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/11232) * docs: fix typo in SSL functions CLA: trivial Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Paul Yang <kaishen.yy@antfin.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11253) (cherry picked from commit 9f44e96e245993c8e7aaa9fadf1d6713c9c60915) * Revert "Stop accepting certificates signed using SHA1 at security level 1" This reverts commit 68436f0a8964e911eb4f864bc8b31d7ca4d29585. The OMC did not vote in favour of backporting this to 1.1.1, so this change should be reverted. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11282) * Revert "Create a new embeddedSCTs1 that's signed using SHA256" This reverts commit b98efebeb2d4265bd6638d5947fe365500121e03. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11282) * doc: document that 'openssl rand' is cryptographically secure (cherry picked from commit 88398d2a358f) Additionally, remove an outdated paragraph mentioning the .rnd file, which is obsolete in 1.1.1 since the RANDFILE entry was removed from openssl.cnf in commit 1fd6afb571e8. Also borrow some text from 'openssl(1)/Random State Options' on master (commit a397aca43598) to emphasize that it is not necessary anymore to restore and save the RNG state using the '-rand' and '-writerand' options. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11251) * doc: Update the reference from draft to RFC CLA: trivial Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11299) (cherry picked from commit c08dea30d4d127412097b39d9974ba6090041a7c) * Additional updates to SSL_CTX_sess_set_get_cb.pod Generally modernize the language. Refer to TLS instead of SSL/TLS, and try to have more consistent usage of commas and that/which. Reword some descriptions to avoid implying that a list of potential reasons for behavior is an exhaustive list. Clarify how get_session_cb() is only called on servers (i.e., in general, and that it's given the session ID proposed by the client). Clarify the semantics of the get_cb()'s "copy" argument. The behavior seems to have changed in commit 8876bc054802b043a3ec95554b6c5873291770be, though the behavior prior to that commit was not to leave the reference-count unchanged if *copy was not written to -- instead, libssl seemed to assume that the callback already had incremented the reference count. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943) (cherry picked from commit 06f876837a8ec76b28c42953731a156c0c3700e2) * doc: fix spelling of TYPE_get_ex_new_index The generated macros are TYPE_get_ex_new_index() (to match CRYPTO_get_ex_new_index()), not TYPE_get_new_ex_index(), even though the latter spelling seems more natural. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943) (cherry picked from commit fe41c06e69613b1a4814b3e3cdbf460f2678ec99) * Fix whitespace nit in ssl_generate_master_secret() Use a space after a comma. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943) (cherry picked from commit 1866a0d380fc361d9be2ca0509de0f2281505db5) * Don't write to the session when computing TLS 1.3 keys TLS 1.3 maintains a separate keys chedule in the SSL object, but was writing to the 'master_key_length' field in the SSL_SESSION when generating the per-SSL master_secret. (The generate_master_secret SSL3_ENC_METHOD function needs an output variable for the master secret length, but the TLS 1.3 implementation just uses the output size of the handshake hash function to get the lengths, so the only natural-looking thing to use as the output length was the field in the session. This would potentially involve writing to a SSL_SESSION object that was in the cache (i.e., resumed) and shared with other threads, though. The thread-safety impact should be minimal, since TLS 1.3 requires the hash from the original handshake to be associated with the resumption PSK and used for the subsequent connection. This means that (in the resumption case) the value being written would be the same value that was previously there, so the only risk would be on architectures that can produce torn writes/reads for aligned size_t values. Since the value is essentially ignored anyway, just provide the address of a local dummy variable to generate_master_secret() instead. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943) (cherry picked from commit d74014c4b8740f28a54b562f799ad1e754b517b9) * Code to thread-safety in ChangeCipherState The server-side ChangeCipherState processing stores the new cipher in the SSL_SESSION object, so that the new state can be used if this session gets resumed. However, writing to the session is only thread-safe for initial handshakes, as at other times the session object may be in a shared cache and in use by another thread at the same time. Reflect this invariant in the code by only writing to s->session->cipher when it is currently NULL (we do not cache sessions with no cipher). The code prior to this change would never actually change the (non-NULL) cipher value in a session object, since our server enforces that (pre-TLS-1.3) resumptions use the exact same cipher as the initial connection, and non-abbreviated renegotiations have produced a new session object before we get to this point. Regardless, include logic to detect such a condition and abort the handshake if it occurs, to avoid any risk of inadvertently using the wrong cipher on a connection. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943) (cherry picked from commit 2e3ec2e1578977fca830a47fd7f521e290540e6d) * Add test that changes ciphers on CCS The TLS (pre-1.3) ChangeCipherState message is usually used to indicate the switch from the unencrypted to encrypted part of the handshake. However, it can also be used in cases where there is an existing session (such as during resumption handshakes) or when changing from one cipher to a different one (such as during renegotiation when the cipher list offered by the client has changed). This test serves to exercise such situations, allowing us to detect whether session objects are being modified in cases when they must remain immutable for thread-safety purposes. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10943) (cherry picked from commit 3cd14e5e65011660ad8e3603cf871c8366b565fd) * sslapitest: don't leak the SSL_CTX pair We have no need for a new set of SSL_CTXs in test_ccs_change_cipher(), so just keep using the original ones. Also, fix a typo in a comment. [extended tests] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11336) (cherry picked from commit b3e6d666e351d45e93d29fe3813245b92a0f5815) * Update NEWS for the new release Reviewed-by: Mark J. Cox <mark@awe.com> (Merged from https://github.com/openssl/openssl/pull/11342) * Update CHANGES for the new release Reviewed-by: Mark J. Cox <mark@awe.com> (Merged from https://github.com/openssl/openssl/pull/11342) * Update copyright year Reviewed-by: Paul Yang <kaishen.yy@antfin.com> (Merged from https://github.com/openssl/openssl/pull/11344) * Prepare for 1.1.1e release Reviewed-by: Paul Yang <kaishen.yy@antfin.com> * Prepare for 1.1.1f-dev Reviewed-by: Paul Yang <kaishen.yy@antfin.com> * Add a parameter to probable_prime if we look for a safe prime Currently probable_prime makes sure that p-1 does not have any prime factors from 3..17863, which is useful for safe primes, but not necessarily for the general case. Issue was initially reported here: MIRONOV, I. Factoring RSA Moduli II. https://windowsontheory.org/2012/05/17/factoring-rsa-moduli-part-ii/ Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9387) * Merge probable_prime_dh_safe with bn_probable_prime_dh This should avoid half of the trial divisions in probable_prime_dh_safe and avoid bn_probable_prime_dh generating primes with special properties. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9387) * Update documentation of BN_generate_prime_ex Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9387) * Add a CHANGES entry for BN_generate_prime_ex BN_generate_prime_ex no longer avoids factors 3..17863 in p-1 when not computing safe primes. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/9387) * Coverity: fix two minor NPD issues. Found by Coverity. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8274) (cherry picked from commit 23dc8feba817560485da00d690d7b7b9e5b15682) * Fix error handling in x509v3_cache_extensions and related functions Basically we use EXFLAG_INVALID for all kinds of out of memory and all kinds of parse errors in x509v3_cache_extensions. [extended tests] Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10756) * Use ctx2 instead ctx. CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/11372) (cherry picked from commit 402b00d57921a0c8cd641b190d36bf39ea5fb592) * Partially revert "Detect EOF while reading in libssl" This partially reverts commit db943f43a60d1b5b1277e4b5317e8f288e7a0a3a. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11400) * Document the revert of the proper reporting of an unexpected EOF Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11400) * fix generated Makefile for Windows builds made on *nix (1.1.1d) The fix consists of putting all destination directories between double-quotes to make the default (and any custom) prefixes containing spaces to work when doing 'make install'. Also enable CI test with x86 mingw cross-build. [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/11434) * Update copyright year Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11445) * Prepare for 1.1.1f release Reviewed-by: Richard Levitte <levitte@openssl.org> * Prepare for 1.1.1g-dev Reviewed-by: Richard Levitte <levitte@openssl.org> * [test] Make sm2_internal_test less fragile to changes in the ec module Since these are KATs, the trailing randomness consumed by the ec module does not really matter. So make the fake random buffer circular. (cherry picked from commit 09736245b174a37abb87fb7ceb55462d940ff2bb) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/11435) * [crypto/ec] Ladder tweaks - Convert to affine coords on ladder entry. This lets us use more efficient ladder step formulae. - Convert to affine coords on ladder exit. This prevents the current code awkwardness where conversion happens twice during serialization: first to fetch the buffer size, then again to fetch the coords. - Instead of projectively blinding the input point, blind both accumulators independently. (cherry picked from commit a4a93bbfb0e679eaa249f77c7c4e7e823ca870ef) Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/11435) * Expand the XTS documentation Explain that XTS does not support streaming, and that the IV value is the tweak. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11461) (cherry picked from commit 70d80ef9898ddbe03841efd2df2f526b71829d7f) * Allow certificates with Basic Constraints CA:false, pathlen:0 Do not mark such certificates with EXFLAG_INVALID although they violate the RFC 5280, they are syntactically correct and openssl itself can produce such certificates without any errors with command such as: openssl x509 -req -signkey private.pem -in csr.pem -out cert.pem \ -extfile <(echo "basicConstraints=CA:FALSE,pathlen:0") With the commit ba4356ae4002a04e28642da60c551877eea804f7 the EXFLAG_INVALID causes openssl to not consider such certificate even as leaf self-signed certificate which is breaking existing installations. Fixes: #11456 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11463) (cherry picked from commit 428cf5ff83a48d0b51c97476586b2cbd053b6302) * Set X509_V_ERR_INVALID_EXTENSION error for invalid basic constraints If we encounter certificate with basic constraints CA:false, pathlen present and X509_V_FLAG_X509_STRICT is set we set X509_V_ERR_INVALID_EXTENSION error. Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11463) (cherry picked from commit fa86e2ee3533bb7fa9f3c62c38920cf960e9fec0) * Add test cases for the non CA certificate with pathlen:0 Accept verification without -x509_strict and reject it with it. Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11463) (cherry picked from commit 3cb55fe47c3398b81956e4fe20c4004524d47519) * Ensure ECDSA_size always returns >= 0 Fixes #10484 Signed-off-by: William Brawner <me@wbrawner.com> Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11472) * Fix the error handling in EC_POINTs_mul This was pointed out by a false-positive -fsanitizer warning ;-) However from the cryptographical POV the code is wrong: A point R^0 on the wrong curve is infinity on the wrong curve. [extended tests] Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (Merged from https://github.com/openssl/openssl/pull/11475) (cherry picked from commit 1eb9b54af7e00fa12196411964ce742ea8677766) * [crypto/ec] blind coordinates in ec_wNAF_mul for robustness Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Nicola Tuveri <nicola.tuveri@ibm.com> (Merged from https://github.com/openssl/openssl/pull/11439) (cherry picked from commit c61ced5ec50fc68707c7cea79f7df1d170f03f13) * Integer overflow in ASN1_STRING_set. Addressing a potential integer overflow condition. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11473) (cherry picked from commit 96218269f4c2da82f143727fb7697d572c190bc5) * AES CTR-DRGB: do not leak timing information Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11147) (cherry picked from commit 069165d10646a22000c596095cc04d43bbf1f807) * Fix AES-CTR_DRBG on 1.1.1. The backport of the timing information leak fix uses u32 which is defined in crypto/modes/modes_local.h in 1.1.1 and include/crypto/modes.h for 3.0. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11489) * Update RAND_METHOD definition in man page The `add` and `seed` callbacks were changed to return `int` instead of `void` in b6dcdbfc94c482f6c15ba725754fc9e827e41851 (first included in tag OpenSSL_1_1_0-pre1). The `add` callback was changed to take a `double` instead of an `int` in 853f757ecea74a271a7c5cdee3f3b5fe0d3ae863. CLA: trivial Fixes: #10199 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11486) (cherry picked from commit ae3254287ff87e484c7fd8f757cad1440ee8f5ff) * Add manpage entry for X509_check_purpose() Fixes #10263 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10301) (cherry picked from commit eacd30a703b52f5b3e8e70b58f99bd1128458c7c) * Don't compile commands if disabled Rather than wrapping whole files in "ifndef OPENSSL_NO_xxx" we handle the changes in build.info Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/11518) * BIO_do_accept: correct error return value `BIO_do_accept` was returning incorrect values when unable to bind to a port. Fixes #7717 CLA: trivial Reviewed-by: Viktor Dukhovni <viktor@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11505) (cherry picked from commit 0437435a960123be1ced766d18d715f939698345) * Windows: Add type casting in CRYPTO_atomic_add to remove warning CLA: trivial Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11337) (cherry picked from commit 7da7b27eec58d1efc7012f002c45ddbdd61a5e79) * INSTALL: document 'no-ui-console' rather than 'no-ui' The UI interface itself is never disabled, but the console backend may be. 'no-ui' is a deprecated backward compatibility alias for 'no-ui-console'. Fixes #11551 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11554) * s_time: Allow using -CAfile option as in other commands The s_time command in difference from all the other similar commands supported -cafile option instead of -CAfile. Add the -CAfile option and keep -cafile only for backwards compatibility. Fixes #11552 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11555) * Add AES consttime code for no-asm configurations This adds optional constant time support for AES when building openssl for no-asm. Enable with: ./config no-asm -DOPENSSL_AES_CONST_TIME [extended tests] Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (Merged from https://github.com/openssl/openssl/pull/11411) * Add a CHANGES entry for AES constant time Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (Merged from https://github.com/openssl/openssl/pull/11411) * Update CHANGES and NEWS for release of 1.1.1g Reviewed-by: Richard Levitte <levitte@openssl.org> * Add test for CVE-2020-1967 Add to test_sslsigalgs a TLSProxy test that injects a "signature_algorithms_cert" extension that contains an unallocated codepoint. The test currently fails, since s_server segfaults instead of ignoring the unrecognized value. Since "signature_algorithms" and "signature_algorithms_cert" are very similar, also add the analogous test for "signature_algorithms". Reviewed-by: Matt Caswell <matt@openssl.org> * Fix NULL dereference in SSL_check_chain() for TLS 1.3 In the tls1_check_sig_alg() helper function, we loop through the list of "signature_algorithms_cert" values received from the client and attempt to look up each one in turn in our internal table that maps wire codepoint to string-form name, digest and/or signature NID, etc., in order to compare the signature scheme from the peer's list against what is used to sign the certificates in the certificate chain we're checking. Unfortunately, when the peer sends a value that we don't support, the lookup returns NULL, but we unconditionally dereference the lookup result for the comparison, leading to an application crash triggerable by an unauthenticated client. Since we will not be able to say anything about algorithms we don't recognize, treat NULL return from lookup as "does not match". We currently only apply the "signature_algorithm_cert" checks on TLS 1.3 connections, so previous TLS versions are unaffected. SSL_check_chain() is not called directly from libssl, but may be used by the application inside a callback (e.g., client_hello or cert callback) to verify that a candidate certificate chain will be acceptable to the client. CVE-2020-1967 Reviewed-by: Matt Caswell <matt@openssl.org> * Update copyright year Reviewed-by: Richard Levitte <levitte@openssl.org> * Prepare for 1.1.1g release Reviewed-by: Richard Levitte <levitte@openssl.org> * Prepare for 1.1.1h-dev Reviewed-by: Richard Levitte <levitte@openssl.org> * Add setter equivalents to X509_REQ_get0_signature Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/10563) (cherry picked from commit c72e59349f50ee00a1bf8605ada17dfccb8b3b1a) * [EC] Constify internal EC_KEY pointer usage A pair of internal functions related to EC_KEY handling could benefit from declaring `EC_KEY *` variables as `const`, providing clarity for callers and readers of the code, in addition to enlisting the compiler in preventing some mistakes. (cherry picked from commit cd701de96a147260c2290d85af8a0656120a8ff8) In master `id2_ECParameters` and most of the ASN1 public functions have been properly constified in their signature. Unfortunately this has been deemed not doable in a patch release for 1.1.1 as, in subtle ways, this would break API compatibility. See the discussion at https://github.com/openssl/openssl/pull/9347 for more details about this. This constification commit should still be portable w.r.t. our criteria, as the constification happens only on internal functions. The fix here is to explicitly discard the const qualifier before the call to `i2d_ECParameters`, which should be safe anyway because we can expect `i2d_ECParameters()` to treat the first argument as if it was const. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11127) * [EC] harden EC_KEY against leaks from memory accesses We should never leak the bit length of the secret scalar in the key, so we always set the `BN_FLG_CONSTTIME` flag on the internal `BIGNUM` holding the secret scalar. This is important also because `BN_dup()` (and `BN_copy()`) do not propagate the `BN_FLG_CONSTTIME` flag from the source `BIGNUM`, and this brings an extra risk of inadvertently losing the flag, even when the called specifically set it. The propagation has been turned on and off a few times in the past years because in some conditions has shown unintended consequences in some code paths, so at the moment we can't fix this in the BN layer. In `EC_KEY_set_private_key()` we can work around the propagation by manually setting the flag after `BN_dup()` as we know for sure that inside the EC module the `BN_FLG_CONSTTIME` is always treated correctly and should not generate unintended consequences. Setting the `BN_FLG_CONSTTIME` flag alone is never enough, we also have to preallocate the `BIGNUM` internal buffer to a fixed public size big enough that operations performed during the processing never trigger a realloc which would leak the size of the scalar through memory accesses. Fixed Length ------------ The order of the large prime subgroup of the curve is our choice for a fixed public size, as that is generally the upper bound for generating a private key in EC cryptosystems and should fit all valid secret scalars. For preallocating the `BIGNUM` storage we look at the number of "words" required for the internal representation of the order, and we preallocate 2 extra "words" in case any of the subsequent processing might temporarily overflow the order length. Future work ----------- A separate commit addresses further hardening of `BN_copy()` (and indirectly `BN_dup()`). (cherry picked from commit 0401d766afcd022748763f5614188301c9856c6e) Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11127) * [BN] harden `BN_copy()` against leaks from memory accesses `BN_copy()` (and indirectly `BN_dup()`) do not propagate the `BN_FLG_CONSTTIME` flag: the propagation has been turned on and off a few times in the past years, because in some conditions it has shown unintended consequences in some code paths. Without turning the propagation on once more, we can still improve `BN_copy()` by avoiding to leak `src->top` in case `src` is flagged with `BN_FLG_CONSTTIME`. In this case we can instead use `src->dmax` as the number of words allocated for `dst` and for the `memcpy` operation. Barring compiler or runtime optimizations, if the caller provides `src` flagged as const time and preallocated to a public size, no leak should happen due to the copy operation. (cherry picked from commit 2d9167ed0b588dacbdd0303fb6041ffe1d8b3a92) Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11127) * Fix typo from #10631 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11595) (cherry picked from commit 4692e98bdbaebb6f078e89a75c54395839e68b24) * Fix type cast in SSL_CTX_set1_groups macro The macro casts the glist parameter to char* instead of (int *) like the documentation of the function suggest. Also the function tls1_set_groups that is called from SSL_CTX_ctrl takes an int * argument. This looks like a copy&paste error from SSL_CTX_set1_groups_list function. CLA: trivial Signed-off-by: Arne Schwabe <arne@rfc2549.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11614) (cherry picked from commit 7ffce852372799b6cd856b711db21332f0048314) * i2b_PVK_bio: don't set PEM_R_BIO_WRITE_FAILURE in case of success but in case of an error CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11380) (cherry picked from commit 80b94a5adb461f94629d36db351a051b0a890856) * fuzz/asn1.c: Add missing #include <openssl/dsa.h> gets included via ts.h... except when 'no-ts' has been configured. Fixes #11597 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11640) (cherry picked from commit 60ebc0ca5a829e2ae939a9ab13658af202b6dfc7) * sslapitest: only compile test when it will be used The test_ccs_change_cipher() test routine is used only when TLS 1.2 is enabled; to fix the strict-warnings build we should not try to compile it when TLS 1.2 is disabled, either. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11458) (cherry picked from commit fb121631e702352d47049ac8e2e709b11c3318e4) * Update dgst.pod Removed "Use the B<pkeyutl> command instead for this." from lines 97-98 Fixes #11633 CLA: trivial Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11636) * rand_unix.c: Include correct headers for sysctl() on NetBSD This allows sysctl(KERN_ARND) to be detected properly. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11689) (cherry picked from commit e2e4b784e65eaafb133a7db3d344446c43112d41) * rand_unix.c: Only enable hack for old FreeBSD versions on FreeBSD Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11689) (cherry picked from commit 0c27ce7322e15a7e0733d48aaf9c8e1d1249541f) * rand_unix.c: Ensure requests to KERN_ARND don't exceed 256 bytes. Requests for more than 256 bytes will fail. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11689) (cherry picked from commit 7421f085005e0d7a1dd2fe61b991ff23cef91c22) * Improve SSL_shutdown documentation. Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11531) (cherry picked from commit e307e616f25a6b7b0f343fc1e62a35b2cba888f3) * Fix use-after-free in BIO_C_SET_SSL callback Since the BIO_SSL structure was renewed by `ssl_free(b)/ssl_new(b)`, the `bs` pointer needs to be updated before assigning to `bs->ssl`. Thanks to @suishixingkong for reporting the issue and providing a fix. Closes #10539 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11746) (cherry picked from commit 73d6b4efe6835a6c97ce61df6bf339b0903e5b7a) * Remove AES bitsliced S-box implementation from Boyar and Peralta [extended tests] Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11626) * Fix PEM certificate loading that sometimes fails As described in https://github.com/openssl/openssl/issues/9187, the loading of PEM certificates sometimes fails if a line of base64 content has the length of a multiple of 254. The problem is in get_header_and_data(). When such a line with a length of 254 (or a multiple) has been read, the next read will only read a newline. Due to this get_header_and_data() expects to be in the header not in the data area. This commit fixes that by checking if lines have been read completely or only partially. In case of a previous partial read, a newline will be ignored. Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/11741) (cherry picked from commit 0324ffc5d5d393111288eca2c9d67f2141ed65f5) * Replace misleading error message when loading PEM The error message "short header" when the end line of PEM data cannot be identified is misleading. Replace it with already existing "bad end line" error. Fixes #8815 Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/11793) (cherry picked from commit f523ca66612e6712f287aa4b4ed722a5f2d4d960) * Fix rsa8192.pem Q: How did I do that? A: That's a long story. Precondition: I used sage 8.1 for the math, it could probably done with simple python as well but I did not try. First I extract numbers from rsa8192.pem: openssl rsa -in rsa8192.pem -noout -t…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
approval: ready to merge
The 24 hour grace period has passed, ready to merge
branch: 1.1.1
Merge to OpenSSL_1_1_1-stable branch
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The pyca-cryptography external test has been failing for a long time.
It looks like upstream needs to make some changes to adapt to 1.1.1.
Backported from #10689
[extended tests]