mbedtls/library
Gilles Peskine 377a310da4 Catch failures of AES or DES operations
Declare all AES and DES functions that return int as needing to have
their result checked, and do check the result in our code.

A DES or AES block operation can fail in alternative implementations of
mbedtls_internal_aes_encrypt() (under MBEDTLS_AES_ENCRYPT_ALT),
mbedtls_internal_aes_decrypt() (under MBEDTLS_AES_DECRYPT_ALT),
mbedtls_des_crypt_ecb() (under MBEDTLS_DES_CRYPT_ECB_ALT),
mbedtls_des3_crypt_ecb() (under MBEDTLS_DES3_CRYPT_ECB_ALT).
A failure can happen if the accelerator peripheral is in a bad state.
Several block modes were not catching the error.

This commit does the following code changes, grouped together to avoid
having an intermediate commit where the build fails:

* Add MBEDTLS_CHECK_RETURN to all functions returning int in aes.h and des.h.
* Fix all places where this causes a GCC warning, indicating that our code
  was not properly checking the result of an AES operation:
    * In library code: on failure, goto exit and return ret.
    * In pkey programs: goto exit.
    * In the benchmark program: exit (not ideal since there's no error
      message, but it's what the code currently does for failures).
    * In test code: TEST_ASSERT.
* Changelog entry.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-09-29 20:40:31 +02:00
..
.gitignore
aes.c Catch failures of AES or DES operations 2021-09-29 20:40:31 +02:00
aesni.c
arc4.c
aria.c ARIA: add missing context init/free 2021-05-25 18:45:04 +02:00
asn1parse.c
asn1write.c
base64.c
bignum.c Replace _RR with prec_RR to prevent reserved identifier clashes 2021-07-14 14:30:34 +01:00
blowfish.c
camellia.c CAMELLIA: add missing context init/free 2021-05-25 18:45:04 +02:00
ccm.c
certs.c
chacha20.c
chachapoly.c
check_crypto_config.h
cipher_wrap.c
cipher.c
cmac.c Allow skipping 3DES in CMAC self-test when ALT implemented 2021-04-30 10:09:52 +02:00
CMakeLists.txt Bump SO version for libmbedcrypto 2021-07-02 14:59:26 +01:00
common.h Move MBEDTLS_ERR_ADD macro and functions to error.* 2021-04-13 15:21:43 +01:00
ctr_drbg.c
debug.c Add missing parentheses 2021-06-07 21:42:15 +02:00
des.c Catch failures of AES or DES operations 2021-09-29 20:40:31 +02:00
dhm.c DHM: add notes about leading zeros 2021-06-02 21:39:31 +02:00
ecdh.c
ecdsa.c avoid "maybe-uninitialized" and "free-nonheap-object" errors/warnings with gcc11 2021-05-12 09:37:00 -04:00
ecjpake.c
ecp_curves.c Add prefix to BYTES_TO_T_UINT_* 2021-06-25 14:59:15 +01:00
ecp_invasive.h Move mbedtls_mpi_random to the bignum module 2021-06-02 21:31:24 +02:00
ecp.c Fix unused parameter warning 2021-06-25 15:36:55 +01:00
entropy_poll.c
entropy.c Merge pull request #3616 from militant-daos/bug_3175 2021-03-30 17:33:08 +02:00
error.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
gcm.c
havege.c
hkdf.c
hmac_drbg.c
Makefile Bump SO version for libmbedcrypto 2021-07-02 14:59:26 +01:00
md2.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
md4.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
md5.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
md.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
memory_buffer_alloc.c
mps_common.h Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
mps_error.h Fix Doxygen headers for MPS files 2021-03-29 14:20:18 +01:00
mps_reader.c Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
mps_reader.h Fix Doxygen headers for MPS files 2021-03-29 14:20:18 +01:00
mps_trace.c Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
mps_trace.h Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
net_sockets.c Fix fd range for select on Windows 2021-06-20 23:17:39 +02:00
nist_kw.c Fix null pointer arithmetic in error case 2021-06-01 11:57:18 +02:00
oid.c
padlock.c
pem.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
pk_wrap.c
pk.c pk.c: Ensure hash_len equals hash in pk_hashlen_helper 2021-06-29 09:31:06 -04:00
pkcs5.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
pkcs11.c
pkcs12.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
pkparse.c Remove dead code from pk_parse_key_pkcs8_unencrypted_der 2021-04-28 14:12:07 +01:00
pkwrite.c
platform_util.c
platform.c
poly1305.c
psa_crypto_aead.c Update all uses of old AEAD output size macros 2021-04-15 17:32:06 +02:00
psa_crypto_aead.h psa: aead: Move AEAD driver entry points to psa_crypto_aead.c 2021-04-07 16:03:31 +02:00
psa_crypto_cipher.c Remove obsolete comment 2021-06-30 10:34:28 +02:00
psa_crypto_cipher.h Remove invalid buffer overflow check 2021-06-29 16:39:49 +02:00
psa_crypto_client.c Move the inclusion of crypto_spe.h to psa/crypto_platform.h 2021-06-23 14:45:17 +02:00
psa_crypto_core.h Merge pull request #4357 from gabor-mezei-arm/3267_Implement_psa_sign_message_and_verify 2021-05-17 10:14:46 +02:00
psa_crypto_driver_wrappers.c Fix possible unreachable code 2021-06-25 15:50:35 +02:00
psa_crypto_driver_wrappers.h Dispatch cipher functions through the driver interface 2021-06-24 16:57:29 +02:00
psa_crypto_ecp.c
psa_crypto_ecp.h
psa_crypto_hash.c psa: hash: Fix is_hash_accelerated signature 2021-04-01 10:50:03 +02:00
psa_crypto_hash.h psa: include: Merge crypto_builtin_hash.h and crypto_builtin_cipher.h 2021-04-01 16:54:30 +02:00
psa_crypto_invasive.h
psa_crypto_its.h
psa_crypto_mac.c psa: mac: Add MAC compute builtin implementation 2021-06-22 13:43:13 +02:00
psa_crypto_mac.h Move is_sign and mac_size checking back to PSA core scope 2021-05-11 18:56:01 +02:00
psa_crypto_random_impl.h
psa_crypto_rsa.c Improve psa_rsa_decode_md_type() 2021-06-22 12:57:05 +02:00
psa_crypto_rsa.h
psa_crypto_se.c
psa_crypto_se.h
psa_crypto_slot_management.c Merge pull request #4605 from gabor-mezei-arm/3267_sign_verify_key_policies 2021-06-30 14:51:03 +01:00
psa_crypto_slot_management.h psa: Fix error code when creating/registering a key with invalid id 2021-04-01 14:05:41 +02:00
psa_crypto_storage.c Move the inclusion of crypto_spe.h to psa/crypto_platform.h 2021-06-23 14:45:17 +02:00
psa_crypto_storage.h
psa_crypto.c Merge pull request #4182 from gabor-mezei-arm/3258_implement_one-shot_MAC_and_cipher 2021-06-30 17:04:11 +01:00
psa_its_file.c
ripemd160.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
rsa_internal.c
rsa.c Fix misc issues with unused parameters and check-names.sh 2021-04-13 15:26:59 +01:00
sha1.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
sha256.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
sha512.c Revert "Remove deprecated things from hashing modules" 2021-04-15 12:28:15 +02:00
ssl_cache.c Don't check ciphersuite and compression in SSL session cache lookup 2021-05-19 05:09:56 +01:00
ssl_ciphersuites.c Fix dependencies on SHA384 cipher suites 2021-05-19 16:58:08 +02:00
ssl_cli.c TLS UNSUPPORTED_EXTENSION error code changes 2021-06-29 15:21:44 +01:00
ssl_cookie.c Improve documentation for error code checking 2021-04-22 15:28:56 +01:00
ssl_invasive.h
ssl_msg.c Fix misuse of MD API in SSL constant-flow HMAC 2021-05-19 10:40:02 +02:00
ssl_srv.c Don't check ciphersuite and compression in SSL session cache lookup 2021-05-19 05:09:56 +01:00
ssl_ticket.c
ssl_tls13_keys.c
ssl_tls13_keys.h
ssl_tls.c Fix TLS alert codes 2021-06-29 09:45:08 +01:00
threading.c
timing.c
version_features.c Implement support for MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS 2021-04-15 15:04:26 +02:00
version.c
x509_create.c
x509_crl.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
x509_crt.c Document more precisely what goes into the default profile 2021-06-07 21:24:26 +02:00
x509_csr.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
x509.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
x509write_crt.c avoid "maybe-uninitialized" and "free-nonheap-object" errors/warnings with gcc11 2021-05-12 09:37:00 -04:00
x509write_csr.c avoid "maybe-uninitialized" and "free-nonheap-object" errors/warnings with gcc11 2021-05-12 09:37:00 -04:00
xtea.c