./security/mbedtls, Lightweight, modular cryptographic and SSL/TLS library (2.x branch)

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.28.8, Package name: mbedtls-2.28.8, Maintainer: nia

mbed TLS (formerly known as PolarSSL) makes it trivially easy for
developers to include cryptographic and SSL/TLS capabilities in
their (embedded) products, facilitating this functionality with a
minimal coding footprint.

This package contains the old stable major 2 version of the library.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 3944.316 KB

Version history: (Expand)


CVS history: (Expand)


   2024-08-25 08:19:21 by Thomas Klausner | Files touched by this commit (575)
Log message:
*: replace CMAKE_ARGS with CMAKE_CONFIGURE_ARGS
   2024-08-15 19:37:26 by Izumi Tsutsui | Files touched by this commit (3) | Package updated
Log message:
mbedtls: update to 2.28.8.

pkgsrc changes:
- comment out python dependencies that seem required only for tests
  already disabled in pkgsrc
- pkglint

Upstream changes (from ChangeLog):

= Mbed TLS 2.28.8 branch released 2024-03-28

Features
   * AES-NI is now supported in Windows builds with clang and clang-cl.
     Resolves #8372.
   * Add pc files for pkg-config, e.g.:
     pkg-config --cflags --libs (mbedtls|mbedcrypto|mbedx509)

Security
   * Passing buffers that are stored in untrusted memory as arguments
     to PSA functions is now secure by default.
     The PSA core now protects against modification of inputs or exposure
     of intermediate outputs during operations. This is currently implemented
     by copying buffers.
     This feature increases code size and memory usage. If buffers passed to
     PSA functions are owned exclusively by the PSA core for the duration of
     the function call (i.e. no buffer parameters are in shared memory),
     copying may be disabled by setting MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS.
     Note that setting this option will cause input-output buffer overlap to
     be only partially supported (#3266).
     Fixes CVE-2024-28960.

Bugfix
   * Fix the build with CMake when Everest is enabled through
     a user configuration file or the compiler command line. Fixes #8165.
   * Fix an inconsistency between implementations and usages of `__cpuid`,
     which mainly causes failures when building Windows target using
     mingw or clang. Fixes #8334 & #8332.
   * Correct initial capacities for key derivation algorithms: TLS12_PRF,
     TLS12_PSK_TO_MS.
   * Fix mbedtls_pk_get_bitlen() for RSA keys whose size is not a
     multiple of 8. Fixes #868.
   * Avoid segmentation fault caused by releasing not initialized
     entropy resource in gen_key example. Fixes #8809.
   * Fix missing bitflags in SSL session serialization headers. Their absence
     allowed SSL sessions saved in one configuration to be loaded in a
     different, incompatible configuration.
   * Fix the restoration of the ALPN when loading serialized connection with
     the mbedtls_ssl_context_load() API.
   * Fully support arbitrary overlap between inputs and outputs of PSA
     functions. Note that overlap is still only partially supported when
     MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS is set (#3266).

Changes
   * Use heap memory to allocate DER encoded public/private key.
     This reduces stack usage significantly for writing a public/private
     key to a PEM string.
   * cmake: Use GnuInstallDirs to customize install directories
     Replace custom LIB_INSTALL_DIR variable with standard CMAKE_INSTALL_LIBDIR
     variable. For backward compatibility, set CMAKE_INSTALL_LIBDIR if
     LIB_INSTALL_DIR is set.

= Mbed TLS 2.28.7 branch released 2024-01-26

Security
   * Fix a timing side channel in private key RSA operations. This side channel
     could be sufficient for an attacker to recover the plaintext. A local
     attacker or a remote attacker who is close to the victim on the network
     might have precise enough timing measurements to exploit this. It requires
     the attacker to send a large number of messages for decryption. For
     details, see "Everlasting ROBOT: the Marvin Attack", Hubert \ 
Kario. Reported
     by Hubert Kario, Red Hat.
   * Fix a failure to validate input when writing x509 extensions lengths which
     could result in an integer overflow, causing a zero-length buffer to be
     allocated to hold the extension. The extension would then be copied into
     the buffer, causing a heap buffer overflow.

= Mbed TLS 2.28.6 branch released 2023-11-06

Changes
   *  Mbed TLS is now released under a dual Apache-2.0 OR GPL-2.0-or-later
      license. Users may choose which license they take the code under.

= Mbed TLS 2.28.5 branch released 2023-10-05

Features
   * The documentation of mbedtls_ecp_group now describes the optimized
     representation of A for some curves. Fixes #8045.

Security
   * Developers using mbedtls_pkcs5_pbes2() or mbedtls_pkcs12_pbe() should
     review the size of the output buffer passed to this function, and note
     that the output after decryption may include CBC padding. Consider moving
     to the new functions mbedtls_pkcs5_pbes2_ext() or mbedtls_pkcs12_pbe_ext()
     which checks for overflow of the output buffer and reports the actual
     length of the output.
   * Improve padding calculations in CBC decryption, NIST key unwrapping and
     RSA OAEP decryption. With the previous implementation, some compilers
     (notably recent versions of Clang and IAR) could produce non-constant
     time code, which could allow a padding oracle attack if the attacker
     has access to precise timing measurements.
   * Fix a buffer overread when parsing short TLS application data records in
     ARC4 or null-cipher cipher suites. Credit to OSS-Fuzz.

Bugfix
   * Fix x509 certificate generation to conform to RFC 5480 / RFC 5758 when
     using ECC key. The certificate was rejected by some crypto frameworks.
     Fixes #2924.
   * Fix some cases where mbedtls_mpi_mod_exp, RSA key construction or ECDSA
     signature can silently return an incorrect result in low memory conditions.
   * Fix IAR compiler warnings. Fixes #7873, #4300.
   * Fix an issue when parsing an otherName subject alternative name into a
     mbedtls_x509_san_other_name struct. The type-id of the otherName was not
     copied to the struct. This meant that the struct had incomplete
     information about the otherName SAN and contained uninitialized memory.
   * Fix the detection of HardwareModuleName otherName SANs. These were being
     detected by comparing the wrong field and the check was erroneously
     inverted.
   * Fix an error when MBEDTLS_ECDSA_SIGN_ALT is defined but not
     MBEDTLS_ECDSA_VERIFY_ALT, causing ecdsa verify to fail. Fixes #7498.
   * Functions in the ssl_cache module now return a negative MBEDTLS_ERR_xxx
     error code on failure. Before, they returned 1 to indicate failure in
     some cases involving a missing entry or a full cache.

Changes
   * In configurations with ARIA or Camellia but not AES, the value of
     MBEDTLS_CIPHER_BLKSIZE_MAX was 8, rather than 16 as the name might
     suggest. This did not affect any library code, because this macro was
     only used in relation with CMAC which does not support these ciphers.
     Its value is now 16 if ARIA or Camellia are present. This may affect
     application code that uses this macro.

= Mbed TLS 2.28.4 branch released 2023-08-04

Features
   * Allow MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE to be set by
     setting the CMake variable of the same name at configuration time.

Bugfix
   * Fix crypt_and_hash decryption fail when used with a stream cipher
     mode of operation, due to the input not being a multiple of the block
     size. Resolves #7417.
   * Fix a bug where mbedtls_x509_string_to_names() would return success
     when given a invalid name string, if it did not contain '=' or ','.
   * Fix missing PSA initialization in sample programs when
     MBEDTLS_USE_PSA_CRYPTO is enabled.
   * Fix clang and armclang compilation error when targeting certain Arm
     M-class CPUs (Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M23,
     SecurCore SC000). Fixes #1077.
   * Fixed an issue that caused compile errors when using CMake and the IAR
     toolchain.
   * Fix the build with MBEDTLS_PSA_INJECT_ENTROPY. Fixes #7516.
   * Fix builds on Windows with clang.
   * Fix compilation warnings in aes.c for certain combinations
     of configuration options.
   * Fix a compilation error on some platforms when including mbedtls/ssl.h
     with all TLS support disabled. Fixes #6628.

Changes
   * Update test data to avoid failures of unit tests after 2023-08-07, and
     update expiring certififcates in the certs module.
   2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247)
Log message:
*: recursive bump for Python 3.11 as new default
   2023-07-13 15:49:17 by Nia Alarie | Files touched by this commit (11)
Log message:
*: Remove all instances of GCC_REQD where my name is the most recent
in 'cvs annotate' (part 2)
   2023-04-26 01:23:01 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
mbedtls: update to 2.28.3.

= Mbed TLS 2.28.3 branch released 2023-03-28

Features
   * Use HOSTCC (if it is set) when compiling C code during generation of the
     configuration-independent files. This allows them to be generated when
     CC is set for cross compilation.
   * AES-NI is now supported with Visual Studio.
   * AES-NI is now supported in 32-bit builds, or when MBEDTLS_HAVE_ASM
     is disabled, when compiling with GCC or Clang or a compatible compiler
     for a target CPU that supports the requisite instructions (for example
     gcc -m32 -msse2 -maes -mpclmul). (Generic x86 builds with GCC-like
     compilers still require MBEDTLS_HAVE_ASM and a 64-bit target.)

Security
   * MBEDTLS_AESNI_C, which is enabled by default, was silently ignored on
     builds that couldn't compile the GCC-style assembly implementation
     (most notably builds with Visual Studio), leaving them vulnerable to
     timing side-channel attacks. There is now an intrinsics-based AES-NI
     implementation as a fallback for when the assembly one cannot be used.

Bugfix
   * Fix a build issue on Windows where the source and build directory could
     not be on different drives (#5751).
   * Fix possible integer overflow in mbedtls_timing_hardclock(), which
     could cause a crash for certain platforms & compiler options.
   * Fix IAR compiler warnings. Fixes #6924.
   * Fix a bug in the build where directory names containing spaces were
     causing generate_errors.pl to error out resulting in a build failure.
     Fixes issue #6879.
   * Fix compile error where MBEDTLS_RSA_C and MBEDTLS_X509_CRT_WRITE_C are
     defined, but MBEDTLS_PK_RSA_ALT_SUPPORT is not defined. Fixes #3174.
   * Fix a build issue when defining MBEDTLS_TIMING_ALT and MBEDTLS_SELF_TEST.
     The library would not link if the user didn't provide an external self-test
     function. The self-test is now provided regardless of the choice of
     internal/alternative timing implementation. Fixes #6923.
   * mbedtls_x509write_crt_set_serial() now explicitly rejects serial numbers
     whose binary representation is longer than 20 bytes. This was already
     forbidden by the standard (RFC5280 - section 4.1.2.2) and now it's being
     enforced also at code level.
   * Fix potential undefined behavior in mbedtls_mpi_sub_abs().  Reported by
     Pascal Cuoq using TrustInSoft Analyzer in #6701; observed independently by
     Aaron Ucko under Valgrind.
   * Fix behavior of certain sample programs which could, when run with no
     arguments, access uninitialized memory in some cases. Fixes #6700 (which
     was found by TrustInSoft Analyzer during REDOCS'22) and #1120.
   * Fix build errors in test programs when MBEDTLS_CERTS_C is disabled.
     Fixes #6243.
   * Fix parsing of X.509 SubjectAlternativeName extension. Previously,
     malformed alternative name components were not caught during initial
     certificate parsing, but only on subsequent calls to
     mbedtls_x509_parse_subject_alt_name(). Fixes #2838.
   * Fix bug in conversion from OID to string in
     mbedtls_oid_get_numeric_string(). OIDs such as 2.40.0.25 are now printed
     correctly.
   * Reject OIDs with overlong-encoded subidentifiers when converting
     them to a string.
   * Reject OIDs with subidentifier values exceeding UINT_MAX.  Such
     subidentifiers can be valid, but Mbed TLS cannot currently handle them.
   * Reject OIDs that have unterminated subidentifiers, or (equivalently)
     have the most-significant bit set in their last byte.
   * Silence a warning about an unused local variable in bignum.c on
     some architectures. Fixes #7166.
   * Silence warnings from clang -Wdocumentation about empty \retval
     descriptions, which started appearing with Clang 15. Fixes #6960.
   * Fix undefined behavior in mbedtls_ssl_read() and mbedtls_ssl_write() if
     len argument is 0 and buffer is NULL.

Changes
   * The C code follows a new coding style. This is transparent for users but
     affects contributors and maintainers of local patches. For more
     information, see
     \ 
https://mbed-tls.readthedocs.io/en/latest/kb/how-to/rewrite-branch-for-coding-style/
   * Changed the default MBEDTLS_ECP_WINDOW_SIZE from 6 to 2.
     As tested in issue 6790, the correlation between this define and
     RSA decryption performance has changed lately due to security fixes.
     To fix the performance degradation when using default values the
     window was reduced from 6 to 2, a value that gives the best or close
     to best results when tested on Cortex-M4 and Intel i7.
   2023-01-24 19:36:36 by Thomas Klausner | Files touched by this commit (103)
Log message:
*: convert to cmake/build.mk
   2023-01-03 13:47:51 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
mbedtls: update to 2.28.2.

= Mbed TLS 2.28.2 branch released 2022-12-14

Security
   * Fix potential heap buffer overread and overwrite in DTLS if
     MBEDTLS_SSL_DTLS_CONNECTION_ID is enabled and
     MBEDTLS_SSL_CID_IN_LEN_MAX > 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX.
   * An adversary with access to precise enough information about memory
     accesses (typically, an untrusted operating system attacking a secure
     enclave) could recover an RSA private key after observing the victim
     performing a single private-key operation if the window size used for the
     exponentiation was 3 or smaller. Found and reported by Zili KOU,
     Wenjian HE, Sharad Sinha, and Wei ZHANG. See "Cache Side-channel Attacks
     and Defenses of the Sliding Window Algorithm in TEEs" - Design, Automation
     and Test in Europe 2023.

Bugfix
   * Fix a long-standing build failure when building x86 PIC code with old
     gcc (4.x). The code will be slower, but will compile. We do however
     recommend upgrading to a more recent compiler instead. Fixes #1910.
   * Fix support for little-endian Microblaze when MBEDTLS_HAVE_ASM is defined.
     Contributed by Kazuyuki Kimura to fix #2020.
   * Use double quotes to include private header file psa_crypto_cipher.h.
     Fixes 'file not found with <angled> include' error
     when building with Xcode.
   * Fix handling of broken symlinks when loading certificates using
     mbedtls_x509_crt_parse_path(). Instead of returning an error as soon as a
     broken link is encountered, skip the broken link and continue parsing
     other certificate files. Contributed by Eduardo Silva in #2602.
   * Fix a compilation error when using CMake with an IAR toolchain.
     Fixes #5964.
   * Fix bugs and missing dependencies when building and testing
     configurations with only one encryption type enabled in TLS 1.2.
   * Provide the missing definition of mbedtls_setbuf() in some configurations
     with MBEDTLS_PLATFORM_C disabled. Fixes #6118, #6196.
   * Fix compilation errors when trying to build with
     PSA drivers for AEAD (GCM, CCM, Chacha20-Poly1305).
   * Fix memory leak in ssl_parse_certificate_request() caused by
     mbedtls_x509_get_name() not freeing allocated objects in case of error.
     Change mbedtls_x509_get_name() to clean up allocated objects on error.
   * Fix checks on PK in check_config.h for builds with PSA and RSA. This does
     not change which builds actually work, only moving a link-time error to
     an early check.
   * Fix ECDSA verification, where it was not always validating the
     public key. This bug meant that it was possible to verify a
     signature with an invalid public key, in some cases. Reported by
     Guido Vranken using Cryptofuzz in #4420.
   * Fix a possible null pointer dereference if a memory allocation fails
     in TLS PRF code. Reported by Michael Madsen in #6516.
   * Fix a bug in which mbedtls_x509_crt_info() would produce non-printable
     bytes when parsing certificates containing a binary RFC 4108
     HardwareModuleName as a Subject Alternative Name extension. Hardware
     serial numbers are now rendered in hex format. Fixes #6262.
   * Fix bug in error reporting in dh_genprime.c where upon failure,
     the error code returned by mbedtls_mpi_write_file() is overwritten
     and therefore not printed.
   * In the bignum module, operations of the form (-A) - (+A) or (-A) - (-A)
     with A > 0 created an unintended representation of the value 0 which was
     not processed correctly by some bignum operations. Fix this. This had no
     consequence on cryptography code, but might affect applications that call
     bignum directly and use negative numbers.
   * Fix undefined behavior (typically harmless in practice) of
     mbedtls_mpi_add_mpi(), mbedtls_mpi_add_abs() and mbedtls_mpi_add_int()
     when both operands are 0 and the left operand is represented with 0 limbs.
   * Fix undefined behavior (typically harmless in practice) when some bignum
     functions receive the most negative value of mbedtls_mpi_sint. Credit
     to OSS-Fuzz. Fixes #6597.
   * Fix undefined behavior (typically harmless in practice) in PSA ECB
     encryption and decryption.
   2022-08-11 08:46:43 by Thomas Klausner | Files touched by this commit (2)
Log message:
mbedtls: mark this as the 'old stable 2.x branch'