Commit Graph

300996 Commits

Author SHA1 Message Date
rillig 6b94bf57da tests/make: demonstrate parse bug in :gmtime and :localtime modifiers 2023-05-09 08:26:14 +00:00
christos ebc1b23201 Deal with OpenSSL-3.x 2023-05-09 02:31:02 +00:00
christos f403516638 deal with OpenSSL-3.x 2023-05-09 02:30:21 +00:00
christos ac172e9e3f deal with OpenSSL-3.x 2023-05-09 02:19:32 +00:00
christos 95d57831bc Accomodate OpenSLL-3.x 2023-05-09 02:08:31 +00:00
christos bbe2f6f754 accommodate OpenSSL-3.x 2023-05-09 01:47:21 +00:00
christos dfe7b6ae9d accommodate OpenSSL-3.x 2023-05-09 01:21:09 +00:00
christos 0f4c02b710 handle OpenSSL-3.x 2023-05-09 00:14:44 +00:00
christos 616ffa0105 Handle OpenSSL-3.x 2023-05-08 23:45:52 +00:00
christos b7e32b3484 handle OpenSSL-3 deprecations 2023-05-08 22:17:36 +00:00
christos 50dfd7d5ed Elide OpenSSL-3 deprecation warning 2023-05-08 21:20:29 +00:00
skrll 64e2e8792e RISC-V: enabled GDB 2023-05-08 20:58:17 +00:00
skrll be56099062 RISC-V mknative and build support for gdb.old 2023-05-08 20:57:34 +00:00
skrll 06dfa8449c RISC-V mknative and build support. 2023-05-08 20:56:19 +00:00
skrll a84fd9ea4a Don't expose vaddr_t or register_t to userland. The gdb configure script
needs this so it can detect struct lwp correctly.
2023-05-08 20:51:53 +00:00
andvar e171cef674 fix the grammar in comments reported by Jim Spath in misc/57397. 2023-05-08 19:23:45 +00:00
christos baf3398b43 put back ssl.h in libcrypto it is also in libssl 2023-05-08 19:14:28 +00:00
nia 8a9c1dc111 doc: Add recent changes. 2023-05-08 18:39:36 +00:00
christos 59a49c3ac2 make tests support both 1.x and 3.x.
Lot of work needed to add all the 3.x tests, but that can wait until all
is switched
2023-05-08 17:46:06 +00:00
christos 7bcea16228 Allow linking against archives like PROGDPLIBS does. 2023-05-08 14:31:43 +00:00
christos ea33b0e454 remove stuff accidentally committed 2023-05-08 14:31:08 +00:00
christos 5314239046 make legacy.so work 2023-05-08 14:30:33 +00:00
rillig 36f24c2b4f make: disallow characters like '$' in variable names in .for loops
Fixes PR 53146.
2023-05-08 10:24:07 +00:00
skrll 64ea3e1f07 Google goldfish config goop 2023-05-08 10:18:03 +00:00
skrll baf487ef7a Set ac_cv_func_sigprocmask=yes as the symbol renaming confuses the
configure script on architectures that don't provide a compatibilty
symbol, e.g. RISC-V
2023-05-08 09:47:20 +00:00
rillig e997dbfa68 tests/make: add more tests for unusual variable names in .for loops 2023-05-08 09:24:42 +00:00
rillig 34f7aa2d4b make: fix parsing of unusual line continuations in .for loops 2023-05-08 09:01:20 +00:00
skrll 2cf8f174ba Ugly hack to fix the builds. 2023-05-08 08:26:11 +00:00
skrll cafafc1be8 Remove some #if 0'ed code 2023-05-08 08:07:36 +00:00
skrll 3400fe2f9f KNF 2023-05-08 07:56:08 +00:00
skrll 2ee8bb11b6 RISC-V: Add the Google Goldfish RTC to the GENERIC.common 2023-05-08 07:52:55 +00:00
skrll f4806a4269 Add a Google Goldfish RTC driver 2023-05-08 07:51:44 +00:00
skrll 528da60089 Missed a file in the RISC-V support commit 2023-05-08 07:38:48 +00:00
christos c563a46740 fix cross references (from Anon Ymous) 2023-05-08 01:28:35 +00:00
manu a804834721 Remove XXX todo marker left by mistake 2023-05-08 00:40:50 +00:00
christos 79f27b9d8a Provide a hook to link in libraries statically in PROGDPLIBS.
OpenSSL protects the symbols in the shared object via a linker
script, but programs and tests need those protected symbols, so
they either must link against the archive, or I need to expose the
symbols. For now, I chose to expose the symbols.  Note that we
cannot use -Bstatic -Lpath -llibrary -Bdynamic because this seems
to be broken with collect2 and so we use the path directly.
2023-05-07 23:24:51 +00:00
christos f88177bd0d regen man pages 2023-05-07 20:06:17 +00:00
christos 59d862a1ed misc cleanups 2023-05-07 19:13:15 +00:00
christos d59d657492 merge the rest of the changes, this now builds on x86_64. 2023-05-07 18:41:34 +00:00
christos 8fbed61efd merge conflicts between 1.1.1t and 3.0.8 2023-05-07 18:40:14 +00:00
christos b0d1725196 Import OpenSSL 3.0.8, last import was 1.1.1t
### Major changes between OpenSSL 3.0.7 and OpenSSL 3.0.8 [7 Feb 2023]

  * Fixed NULL dereference during PKCS7 data verification ([CVE-2023-0401])
  * Fixed X.400 address type confusion in X.509 GeneralName ([CVE-2023-0286])
  * Fixed NULL dereference validating DSA public key ([CVE-2023-0217])
  * Fixed Invalid pointer dereference in d2i_PKCS7 functions ([CVE-2023-0216])
  * Fixed Use-after-free following BIO_new_NDEF ([CVE-2023-0215])
  * Fixed Double free after calling PEM_read_bio_ex ([CVE-2022-4450])
  * Fixed Timing Oracle in RSA Decryption ([CVE-2022-4304])
  * Fixed X.509 Name Constraints Read Buffer Overflow ([CVE-2022-4203])
  * Fixed X.509 Policy Constraints Double Locking ([CVE-2022-3996])

### Major changes between OpenSSL 3.0.6 and OpenSSL 3.0.7 [1 Nov 2022]

  * Added RIPEMD160 to the default provider.
  * Fixed regressions introduced in 3.0.6 version.
  * Fixed two buffer overflows in punycode decoding functions.
    ([CVE-2022-3786]) and ([CVE-2022-3602])

### Major changes between OpenSSL 3.0.5 and OpenSSL 3.0.6 [11 Oct 2022]

  * Fix for custom ciphers to prevent accidental use of NULL encryption
    ([CVE-2022-3358])

### Major changes between OpenSSL 3.0.4 and OpenSSL 3.0.5 [5 Jul 2022]

  * Fixed heap memory corruption with RSA private key operation
    ([CVE-2022-2274])
  * Fixed AES OCB failure to encrypt some bytes on 32-bit x86 platforms
    ([CVE-2022-2097])

### Major changes between OpenSSL 3.0.3 and OpenSSL 3.0.4 [21 Jun 2022]

  * Fixed additional bugs in the c_rehash script which was not properly
    sanitising shell metacharacters to prevent command injection
    ([CVE-2022-2068])

### Major changes between OpenSSL 3.0.2 and OpenSSL 3.0.3 [3 May 2022]

  * Fixed a bug in the c_rehash script which was not properly sanitising shell
    metacharacters to prevent command injection ([CVE-2022-1292])
  * Fixed a bug in the function `OCSP_basic_verify` that verifies the signer
    certificate on an OCSP response ([CVE-2022-1343])
  * Fixed a bug where the RC4-MD5 ciphersuite incorrectly used the
    AAD data as the MAC key ([CVE-2022-1434])
  * Fix a bug in the OPENSSL_LH_flush() function that breaks reuse of the memory
    occuppied by the removed hash table entries ([CVE-2022-1473])

### Major changes between OpenSSL 3.0.1 and OpenSSL 3.0.2 [15 Mar 2022]

  * Fixed a bug in the BN_mod_sqrt() function that can cause it to loop forever
    for non-prime moduli ([CVE-2022-0778])

### Major changes between OpenSSL 3.0.0 and OpenSSL 3.0.1 [14 Dec 2021]

  * Fixed invalid handling of X509_verify_cert() internal errors in libssl
    ([CVE-2021-4044])
  * Allow fetching an operation from the provider that owns an unexportable key
    as a fallback if that is still allowed by the property query.

### Major changes between OpenSSL 1.1.1 and OpenSSL 3.0.0 [7 sep 2021]

  * Enhanced 'openssl list' with many new options.
  * Added migration guide to man7.
  * Implemented support for fully "pluggable" TLSv1.3 groups.
  * Added suport for Kernel TLS (KTLS).
  * Changed the license to the Apache License v2.0.
  * Moved all variations of the EVP ciphers CAST5, BF, IDEA, SEED, RC2,
    RC4, RC5, and DES to the legacy provider.
  * Moved the EVP digests MD2, MD4, MDC2, WHIRLPOOL and RIPEMD-160 to the legacy
    provider.
  * Added convenience functions for generating asymmetric key pairs.
  * Deprecated the `OCSP_REQ_CTX` type and functions.
  * Deprecated the `EC_KEY` and `EC_KEY_METHOD` types and functions.
  * Deprecated the `RSA` and `RSA_METHOD` types and functions.
  * Deprecated the `DSA` and `DSA_METHOD` types and functions.
  * Deprecated the `DH` and `DH_METHOD` types and functions.
  * Deprecated the `ERR_load_` functions.
  * Remove the `RAND_DRBG` API.
  * Deprecated the `ENGINE` API.
  * Added `OSSL_LIB_CTX`, a libcrypto library context.
  * Added various `_ex` functions to the OpenSSL API that support using
    a non-default `OSSL_LIB_CTX`.
  * Interactive mode is removed from the 'openssl' program.
  * The X25519, X448, Ed25519, Ed448, SHAKE128 and SHAKE256 algorithms are
    included in the FIPS provider.
  * X509 certificates signed using SHA1 are no longer allowed at security
    level 1 or higher. The default security level for TLS is 1, so
    certificates signed using SHA1 are by default no longer trusted to
    authenticate servers or clients.
  * enable-crypto-mdebug and enable-crypto-mdebug-backtrace were mostly
    disabled; the project uses address sanitize/leak-detect instead.
  * Added a Certificate Management Protocol (CMP, RFC 4210) implementation
    also covering CRMF (RFC 4211) and HTTP transfer (RFC 6712).
    It is part of the crypto lib and adds a 'cmp' app with a demo configuration.
    All widely used CMP features are supported for both clients and servers.
  * Added a proper HTTP client supporting GET with optional redirection, POST,
    arbitrary request and response content types, TLS, persistent connections,
    connections via HTTP(s) proxies, connections and exchange via user-defined
    BIOs (allowing implicit connections), and timeout checks.
  * Added util/check-format.pl for checking adherence to the coding guidelines.
  * Added OSSL_ENCODER, a generic encoder API.
  * Added OSSL_DECODER, a generic decoder API.
  * Added OSSL_PARAM_BLD, an easier to use API to OSSL_PARAM.
  * Added error raising macros, ERR_raise() and ERR_raise_data().
  * Deprecated ERR_put_error(), ERR_get_error_line(), ERR_get_error_line_data(),
    ERR_peek_error_line_data(), ERR_peek_last_error_line_data() and
    ERR_func_error_string().
  * Added OSSL_PROVIDER_available(), to check provider availibility.
  * Added 'openssl mac' that uses the EVP_MAC API.
  * Added 'openssl kdf' that uses the EVP_KDF API.
  * Add OPENSSL_info() and 'openssl info' to get built-in data.
  * Add support for enabling instrumentation through trace and debug
    output.
  * Changed our version number scheme and set the next major release to
    3.0.0
  * Added EVP_MAC, an EVP layer MAC API, and a generic EVP_PKEY to EVP_MAC
    bridge.  Supported MACs are: BLAKE2, CMAC, GMAC, HMAC, KMAC, POLY1305
    and SIPHASH.
  * Removed the heartbeat message in DTLS feature.
  * Added EVP_KDF, an EVP layer KDF and PRF API, and a generic EVP_PKEY to
    EVP_KDF bridge.  Supported KDFs are: HKDF, KBKDF, KRB5 KDF, PBKDF2,
    PKCS12 KDF, SCRYPT, SSH KDF, SSKDF, TLS1 PRF, X9.42 KDF and X9.63 KDF.
  * All of the low-level MD2, MD4, MD5, MDC2, RIPEMD160, SHA1, SHA224,
    SHA256, SHA384, SHA512 and Whirlpool digest functions have been
    deprecated.
  * All of the low-level AES, Blowfish, Camellia, CAST, DES, IDEA, RC2,
    RC4, RC5 and SEED cipher functions have been deprecated.
  * All of the low-level DH, DSA, ECDH, ECDSA and RSA public key functions
    have been deprecated.
  * SSL 3, TLS 1.0, TLS 1.1, and DTLS 1.0 only work at security level 0,
    except when RSA key exchange without SHA1 is used.
  * Added providers, a new pluggability concept that will replace the
    ENGINE API and ENGINE implementations.

OpenSSL 1.1.1
-------------

### Major changes between OpenSSL 1.1.1k and OpenSSL 1.1.1l [24 Aug 2021]

  * Fixed an SM2 Decryption Buffer Overflow ([CVE-2021-3711])
  * Fixed various read buffer overruns processing ASN.1 strings ([CVE-2021-3712])

### Major changes between OpenSSL 1.1.1j and OpenSSL 1.1.1k [25 Mar 2021]

  * Fixed a problem with verifying a certificate chain when using the
    X509_V_FLAG_X509_STRICT flag ([CVE-2021-3450])
  * Fixed an issue where an OpenSSL TLS server may crash if sent a maliciously
    crafted renegotiation ClientHello message from a client ([CVE-2021-3449])

### Major changes between OpenSSL 1.1.1i and OpenSSL 1.1.1j [16 Feb 2021]

  * Fixed a NULL pointer deref in the X509_issuer_and_serial_hash()
    function ([CVE-2021-23841])
  * Fixed the RSA_padding_check_SSLv23() function and the RSA_SSLV23_PADDING
    padding mode to correctly check for rollback attacks
  * Fixed an overflow in the EVP_CipherUpdate, EVP_EncryptUpdate and
    EVP_DecryptUpdate functions ([CVE-2021-23840])
  * Fixed SRP_Calc_client_key so that it runs in constant time

### Major changes between OpenSSL 1.1.1h and OpenSSL 1.1.1i [8 Dec 2020]

  * Fixed NULL pointer deref in GENERAL_NAME_cmp ([CVE-2020-1971])

### Major changes between OpenSSL 1.1.1g and OpenSSL 1.1.1h [22 Sep 2020]

  * Disallow explicit curve parameters in verifications chains when
    X509_V_FLAG_X509_STRICT is used
  * Enable 'MinProtocol' and 'MaxProtocol' to configure both TLS and DTLS
    contexts
  * Oracle Developer Studio will start reporting deprecation warnings

### Major changes between OpenSSL 1.1.1f and OpenSSL 1.1.1g [21 Apr 2020]

  * Fixed segmentation fault in SSL_check_chain() ([CVE-2020-1967])

### Major changes between OpenSSL 1.1.1e and OpenSSL 1.1.1f [31 Mar 2020]

  * Revert the unexpected EOF reporting via SSL_ERROR_SSL

### Major changes between OpenSSL 1.1.1d and OpenSSL 1.1.1e [17 Mar 2020]

  * Fixed an overflow bug in the x64_64 Montgomery squaring procedure
    used in exponentiation with 512-bit moduli ([CVE-2019-1551])

### Major changes between OpenSSL 1.1.1c and OpenSSL 1.1.1d [10 Sep 2019]

  * Fixed a fork protection issue ([CVE-2019-1549])
  * Fixed a padding oracle in PKCS7_dataDecode and CMS_decrypt_set1_pkey
    ([CVE-2019-1563])
  * For built-in EC curves, ensure an EC_GROUP built from the curve name is
    used even when parsing explicit parameters
  * Compute ECC cofactors if not provided during EC_GROUP construction
    ([CVE-2019-1547])
  * Early start up entropy quality from the DEVRANDOM seed source has been
    improved for older Linux systems
  * Correct the extended master secret constant on EBCDIC systems
  * Use Windows installation paths in the mingw builds ([CVE-2019-1552])
  * Changed DH_check to accept parameters with order q and 2q subgroups
  * Significantly reduce secure memory usage by the randomness pools
  * Revert the DEVRANDOM_WAIT feature for Linux systems

### Major changes between OpenSSL 1.1.1b and OpenSSL 1.1.1c [28 May 2019]

  * Prevent over long nonces in ChaCha20-Poly1305 ([CVE-2019-1543])

### Major changes between OpenSSL 1.1.1a and OpenSSL 1.1.1b [26 Feb 2019]

  * Change the info callback signals for the start and end of a post-handshake
    message exchange in TLSv1.3.
  * Fix a bug in DTLS over SCTP. This breaks interoperability with older
    versions of OpenSSL like OpenSSL 1.1.0 and OpenSSL 1.0.2.

### Major changes between OpenSSL 1.1.1 and OpenSSL 1.1.1a [20 Nov 2018]

  * Timing vulnerability in DSA signature generation ([CVE-2018-0734])
  * Timing vulnerability in ECDSA signature generation ([CVE-2018-0735])

### Major changes between OpenSSL 1.1.0i and OpenSSL 1.1.1 [11 Sep 2018]

  * Support for TLSv1.3 added. The TLSv1.3 implementation includes:
    * Fully compliant implementation of RFC8446 (TLSv1.3) on by default
    * Early data (0-RTT)
    * Post-handshake authentication and key update
    * Middlebox Compatibility Mode
    * TLSv1.3 PSKs
    * Support for all five RFC8446 ciphersuites
    * RSA-PSS signature algorithms (backported to TLSv1.2)
    * Configurable session ticket support
    * Stateless server support
    * Rewrite of the packet construction code for "safer" packet handling
    * Rewrite of the extension handling code
    For further important information, see the [TLS1.3 page](
    https://wiki.openssl.org/index.php/TLS1.3) in the OpenSSL Wiki.

  * Complete rewrite of the OpenSSL random number generator to introduce the
    following capabilities
      * The default RAND method now utilizes an AES-CTR DRBG according to
        NIST standard SP 800-90Ar1.
      * Support for multiple DRBG instances with seed chaining.
      * There is a public and private DRBG instance.
      * The DRBG instances are fork-safe.
      * Keep all global DRBG instances on the secure heap if it is enabled.
      * The public and private DRBG instance are per thread for lock free
      operation
  * Support for various new cryptographic algorithms including:
      * SHA3
      * SHA512/224 and SHA512/256
      * EdDSA (both Ed25519 and Ed448) including X509 and TLS support
      * X448 (adding to the existing X25519 support in 1.1.0)
      * Multi-prime RSA
      * SM2
      * SM3
      * SM4
      * SipHash
      * ARIA (including TLS support)
  * Significant Side-Channel attack security improvements
  * Add a new ClientHello callback to provide the ability to adjust the SSL
  object at an early stage.
  * Add 'Maximum Fragment Length' TLS extension negotiation and support
  * A new STORE module, which implements a uniform and URI based reader of
   stores that can contain keys, certificates, CRLs and numerous other
  objects.
  * Move the display of configuration data to configdata.pm.
  * Allow GNU style "make variables" to be used with Configure.
  * Claim the namespaces OSSL and OPENSSL, represented as symbol prefixes
  * Rewrite of devcrypto engine
2023-05-07 18:29:10 +00:00
lukem 309d990f5b CHANGES: ftp(1) ssl connection timeout 2023-05-07 18:15:38 +00:00
sjg 9c8e40c4fa make.1: lose the trailing blank lines 2023-05-07 16:43:50 +00:00
sjg 5a93219217 make: fix description of .PREFIX
For at least 20 years, the setting of .PREFIX in make
has not matched the documentation.
Since the documented behavior does not match reality or
POSIX make, fix the documentation.

In FindDepsRegularPath str_basename is applied to .PREFIX
this is wrong, but I was unable to verify fixing it
was benign in NetBSD build - my NetBSD box (7.2)
was unable to build known-good src with or without any patches.

For now just document the behavior more accurately.
2023-05-07 16:32:47 +00:00
christos bfed990fa6 Adjust for 3.x 2023-05-07 16:24:28 +00:00
christos f4748aaa01 more checkpointing 2023-05-07 16:22:10 +00:00
christos 325dc460fc more engines and maps for them 2023-05-07 16:21:19 +00:00
christos 0d03387a80 make this link 2023-05-07 16:19:24 +00:00
oster 3e0cc22b37 Don't allow "wgconfig add peer ..." to accept invalid options.
Addresses PR bin/57392 .
2023-05-07 16:05:07 +00:00
martin f0e8611029 Not hacks to use old binutils (2.34 instead of 2.39) on mips64*
(but not mipsn64*).
2023-05-07 12:43:32 +00:00