|
1 | 1 | mbed TLS ChangeLog (Sorted per branch, date)
|
2 | 2 |
|
| 3 | += mbed TLS 2.26.0 branch released 2021-03-08 |
| 4 | + |
| 5 | +API changes |
| 6 | + * Renamed the PSA Crypto API output buffer size macros to bring them in line |
| 7 | + with version 1.0.0 of the specification. |
| 8 | + * The API glue function mbedtls_ecc_group_of_psa() now takes the curve size |
| 9 | + in bits rather than bytes, with an additional flag to indicate if the |
| 10 | + size may have been rounded up to a whole number of bytes. |
| 11 | + * Renamed the PSA Crypto API AEAD tag length macros to bring them in line |
| 12 | + with version 1.0.0 of the specification. |
| 13 | + |
| 14 | +Default behavior changes |
| 15 | + * In mbedtls_rsa_context objects, the ver field was formerly documented |
| 16 | + as always 0. It is now reserved for internal purposes and may take |
| 17 | + different values. |
| 18 | + |
| 19 | +New deprecations |
| 20 | + * PSA_KEY_EXPORT_MAX_SIZE, PSA_HASH_SIZE, PSA_MAC_FINAL_SIZE, |
| 21 | + PSA_BLOCK_CIPHER_BLOCK_SIZE, PSA_MAX_BLOCK_CIPHER_BLOCK_SIZE and |
| 22 | + PSA_ALG_TLS12_PSK_TO_MS_MAX_PSK_LEN have been renamed, and the old names |
| 23 | + deprecated. |
| 24 | + * PSA_ALG_AEAD_WITH_DEFAULT_TAG_LENGTH and PSA_ALG_AEAD_WITH_TAG_LENGTH |
| 25 | + have been renamed, and the old names deprecated. |
| 26 | + |
| 27 | +Features |
| 28 | + * The PSA crypto subsystem can now use HMAC_DRBG instead of CTR_DRBG. |
| 29 | + CTR_DRBG is used by default if it is available, but you can override |
| 30 | + this choice by setting MBEDTLS_PSA_HMAC_DRBG_MD_TYPE at compile time. |
| 31 | + Fix #3354. |
| 32 | + * Automatic fallback to a software implementation of ECP when |
| 33 | + MBEDTLS_ECP_xxx_ALT accelerator hooks are in use can now be turned off |
| 34 | + through setting the new configuration flag MBEDTLS_ECP_NO_FALLBACK. |
| 35 | + * The PSA crypto subsystem can now be configured to use less static RAM by |
| 36 | + tweaking the setting for the maximum amount of keys simultaneously in RAM. |
| 37 | + MBEDTLS_PSA_KEY_SLOT_COUNT sets the maximum number of volatile keys that |
| 38 | + can exist simultaneously. It has a sensible default if not overridden. |
| 39 | + * Partial implementation of the PSA crypto driver interface: Mbed TLS can |
| 40 | + now use an external random generator instead of the library's own |
| 41 | + entropy collection and DRBG code. Enable MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG |
| 42 | + and see the documentation of mbedtls_psa_external_get_random() for details. |
| 43 | + * Applications using both mbedtls_xxx and psa_xxx functions (for example, |
| 44 | + applications using TLS and MBEDTLS_USE_PSA_CRYPTO) can now use the PSA |
| 45 | + random generator with mbedtls_xxx functions. See the documentation of |
| 46 | + mbedtls_psa_get_random() for details. |
| 47 | + * In the PSA API, the policy for a MAC or AEAD algorithm can specify a |
| 48 | + minimum MAC or tag length thanks to the new wildcards |
| 49 | + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC and |
| 50 | + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG. |
| 51 | + |
| 52 | +Security |
| 53 | + * Fix a security reduction in CTR_DRBG when the initial seeding obtained a |
| 54 | + nonce from entropy. Applications were affected if they called |
| 55 | + mbedtls_ctr_drbg_set_nonce_len(), if they called |
| 56 | + mbedtls_ctr_drbg_set_entropy_len() with a size that was 3/2 times the key |
| 57 | + length, or when the entropy module uses SHA-256 and CTR_DRBG uses AES-256. |
| 58 | + In such cases, a random nonce was necessary to achieve the advertised |
| 59 | + security strength, but the code incorrectly used a constant instead of |
| 60 | + entropy from the nonce. |
| 61 | + Found by John Stroebel in #3819 and fixed in #3973. |
| 62 | + * Fix a buffer overflow in mbedtls_mpi_sub_abs() when calculating |
| 63 | + |A| - |B| where |B| is larger than |A| and has more limbs (so the |
| 64 | + function should return MBEDTLS_ERR_MPI_NEGATIVE_VALUE). Only |
| 65 | + applications calling mbedtls_mpi_sub_abs() directly are affected: |
| 66 | + all calls inside the library were safe since this function is |
| 67 | + only called with |A| >= |B|. Reported by Guido Vranken in #4042. |
| 68 | + * Fix an errorneous estimation for an internal buffer in |
| 69 | + mbedtls_pk_write_key_pem(). If MBEDTLS_MPI_MAX_SIZE is set to an odd |
| 70 | + value the function might fail to write a private RSA keys of the largest |
| 71 | + supported size. |
| 72 | + Found by Daniel Otte, reported in #4093 and fixed in #4094. |
| 73 | + * Fix a stack buffer overflow with mbedtls_net_poll() and |
| 74 | + mbedtls_net_recv_timeout() when given a file descriptor that is |
| 75 | + beyond FD_SETSIZE. Reported by FigBug in #4169. |
| 76 | + * Guard against strong local side channel attack against base64 tables by |
| 77 | + making access aceess to them use constant flow code. |
| 78 | + |
| 79 | +Bugfix |
| 80 | + * Fix use-after-scope error in programs/ssl/ssl_client2.c and ssl_server2.c |
| 81 | + * Fix memory leak that occured when calling psa_close_key() on a |
| 82 | + wrapped key with MBEDTLS_PSA_CRYPTO_SE_C defined. |
| 83 | + * Fix an incorrect error code if an RSA private operation glitched. |
| 84 | + * Fix a memory leak in an error case in psa_generate_derived_key_internal(). |
| 85 | + * Fix a resource leak in CTR_DRBG and HMAC_DRBG when MBEDTLS_THREADING_C |
| 86 | + is enabled, on platforms where initializing a mutex allocates resources. |
| 87 | + This was a regression introduced in the previous release. Reported in |
| 88 | + #4017, #4045 and #4071. |
| 89 | + * Ensure that calling mbedtls_rsa_free() or mbedtls_entropy_free() |
| 90 | + twice is safe. This happens for RSA when some Mbed TLS library functions |
| 91 | + fail. Such a double-free was not safe when MBEDTLS_THREADING_C was |
| 92 | + enabled on platforms where freeing a mutex twice is not safe. |
| 93 | + * Fix a resource leak in a bad-arguments case of mbedtls_rsa_gen_key() |
| 94 | + when MBEDTLS_THREADING_C is enabled on platforms where initializing |
| 95 | + a mutex allocates resources. |
| 96 | + * Fixes a bug where, if the library was configured to include support for |
| 97 | + both the old SE interface and the new PSA driver interface, external keys were |
| 98 | + not loaded from storage. This was fixed by #3996. |
| 99 | + * This change makes 'mbedtls_x509write_crt_set_basic_constraints' |
| 100 | + consistent with RFC 5280 4.2.1.9 which says: "Conforming CAs MUST |
| 101 | + include this extension in all CA certificates that contain public keys |
| 102 | + used to validate digital signatures on certificates and MUST mark the |
| 103 | + extension as critical in such certificates." Previous to this change, |
| 104 | + the extension was always marked as non-critical. This was fixed by |
| 105 | + #3698. |
| 106 | + |
| 107 | +Changes |
| 108 | + * A new library C file psa_crypto_client.c has been created to contain |
| 109 | + the PSA code needed by a PSA crypto client when the PSA crypto |
| 110 | + implementation is not included into the library. |
| 111 | + * On recent enough versions of FreeBSD and DragonFlyBSD, the entropy module |
| 112 | + now uses the getrandom syscall instead of reading from /dev/urandom. |
| 113 | + |
3 | 114 | = mbed TLS 2.25.0 branch released 2020-12-11
|
4 | 115 |
|
5 | 116 | API changes
|
|
0 commit comments