mbedtls/tests/suites
Gilles Peskine b99bd39b4e Merge mbed-crypto into mbedtls: the merge commit
Merge `unremove-non-crypto` into `mbedtls/development`. The branch
`unremove-non-crypto` was obtained by starting from `mbed-crypto/development`,
then reverting many commits that removed X.509 and TLS functionality when Mbed
Crypto forked from Mbed TLS (the “unremoval”), then make a few tweaks to
facilitate the merge.

The unremoval step restored old versions of some tls files. If a file doesn't
exist in mbed-crypto, check out the mbedtls version, regardless of what
happened during the unremoval of tls files in the crypto tree. Also
unconditionally take the mbedtls version of a few files where the
modifications are completely project-specific and are not relevant in
mbed-crypto:

* `.github/issue_template.md`: completely different. We may want to reconcile
  them independently as a follow-up.
* `.travis.yml`: would only be reverted to an earlier tls version.
* `README.md`: completely different. We may want to reconcile them
  independently as a follow-up.
* `doxygen/input/doc_mainpage.h`: the changes in crypto were minimal and not
  relevant except as a stopgap as mbed-crypto did not have its own product
  versioning in the Doxygen documentation.
* `tests/.jenkins/Jenkinsfile`: completely different.
* `tests/data_files/Makefile`: there were no changes in mbed-crypto,
  but the unremoval step restored an old version.

Shell script for everything to do after the merge apart from the conflict
resolution:
```
tls_files=($(comm -23 <(git ls-tree -r --name-only HEAD) <(git ls-tree -r --name-only $(git merge-base upstream-crypto/development MERGE_HEAD))))
tls_files+=($tls_files .github/issue_template.md .travis.yml README.md doxygen/input/doc_mainpage.h tests/.jenkins/Jenkinsfile tests/data_files/Makefile)
git checkout --theirs HEAD -- $tls_files
git add -- $tls_files
```

Resolve the remaining conflicts:

* `library/CMakeLists.txt`:
    * Keep the TLS definition of `src_crypto`
    * `USE_SHARED_MBEDTLS_LIBRARY`: keep all three libraries, with both
      `include` and `crypto/include` in `target_include_directories`, all with
      version `2.21.0`.
* `programs/Makefile`:
    * Reconcile the APPS lists (add/add from a differently-formatted common
      ancestor): insert the `psa/*` from crypto into the tls list.
    * Keep the `fuzz` target defined only in tls version.
    * Keep the recipe (only in tls version) cleaning `ssl_pthread_server`
      stuff for the `clean` target.
* `scripts/config.py`:
    * `include_in_full`: add/add conflict. Keep both.
* `tests/scripts/all.sh`:
    * `component_test_no_use_psa_crypto_full_cmake_asan`: partially old
      version in crypto. Take the tls version.
    * `component_test_malloc_0_null` and more: take
      `component_test_malloc_0_null` from crypto (with `config.py` rather than
      `config.pl`, and with `$ASAN_FLAGS` rather than an explicit list), but
      add the call to `ssl-opt.sh` from tls. Take the other components from
      crypto.

With this commit, building and running the unit tests with both `make ` and
`cmake` work in the default configuration on Linux. Other platforms, build
systems and configurations are likely not to work, and there is some
regression in test coverage.

There is some loss of functionality because the unremoval step restored older
versions of tls content. This commit contains the latest tls version of
tls-only files, but some changes from the tls side in files that existed on
both sides have regressed. Most problematic changes are hunks that remove some
tls-specific feature and contain either a C preprocessor symbol identifying a
tls-specific module or option, or the name of a tls-specific file. Hunks
that remove a tls-specific preprocessor symbol can be identified with the
regular expression `^-.*MBEDTLS_(ERR_)?(PKCS11|X509|NET|SSL)_`.

Subsequent commits will revert a few parts of the patch from this merge commit
in order to restore the tls functionality that it removes, ensure that the
test coverage includes what was covered in either branch, and fix test
failures.
2020-03-23 17:54:46 +01:00
..
helpers.function Merge remote-tracking branch 'upstream-public/development' into development 2020-02-03 18:52:36 +01:00
host_test.function Merge remote-tracking branch 'upstream-public/development' into development 2020-02-03 18:52:36 +01:00
main_test.function Document MBEDTLS_TEST_DEPRECATED 2019-11-29 12:17:21 +01:00
target_test.function Fix test assert macro calls 2019-11-29 10:13:32 +00:00
test_suite_aes.cbc.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.cfb.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.ecb.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.ofb.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.rest.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aes.xts.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_arc4.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_arc4.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_aria.data aria: Remove duplicate test cases 2019-09-20 15:58:27 +02:00
test_suite_aria.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_asn1parse.data Merge pull request #350 from gilles-peskine-arm/asn1-tests-parse_prefixes-trailing_garbage 2020-02-05 15:40:22 +00:00
test_suite_asn1parse.function Merge pull request #350 from gilles-peskine-arm/asn1-tests-parse_prefixes-trailing_garbage 2020-02-05 15:40:22 +00:00
test_suite_asn1write.data Add test cases for ASN.1 ENUMERATED tag 2019-10-31 19:17:36 +02:00
test_suite_asn1write.function Add test cases for ASN.1 ENUMERATED tag 2019-10-31 19:17:36 +02:00
test_suite_base64.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_base64.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_blowfish.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_blowfish.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_camellia.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_camellia.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ccm.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ccm.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_chacha20.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_chacha20.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_chachapoly.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_chachapoly.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.aes.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.arc4.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.aria.data Add negative tests for empty buffer decoding for certain ciphers 2019-07-29 17:46:29 +02:00
test_suite_cipher.blowfish.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.camellia.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.ccm.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.chacha20.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.chachapoly.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.des.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.function Merge pull request #166 from k-stachowiak/IOTCRYPT-440-add-missing-dec_empty_buf-tests 2019-09-04 10:18:11 +01:00
test_suite_cipher.gcm.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.misc.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cipher.nist_kw.data Test data: replace "::" by ":" 2019-09-20 16:01:59 +02:00
test_suite_cipher.null.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_cipher.padding.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cmac.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_cmac.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ctr_drbg.data Remove selftest dependency in the test suite 2019-11-21 13:49:20 +01:00
test_suite_ctr_drbg.function CTR_DRBG: define a constant for the default entropy nonce length 2019-10-23 19:47:05 +02:00
test_suite_debug.data Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_debug.function Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_des.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_des.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_dhm.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_dhm.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ecdh.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ecdh.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ecdsa.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_ecdsa.function Add missing return code check on calls to mbedtls_md() 2020-01-21 16:52:08 +01:00
test_suite_ecjpake.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ecjpake.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ecp.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_ecp.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_entropy.data Add tests to ensure that we gather as much entropy as expected 2019-10-08 15:01:34 +02:00
test_suite_entropy.function Fix entropy_threshold when MBEDTLS_TEST_NULL_ENTROPY is enabled 2019-11-25 19:50:54 +01:00
test_suite_error.data
test_suite_error.function
test_suite_gcm.aes128_de.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes128_en.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes192_de.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes192_en.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes256_de.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.aes256_en.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_gcm.camellia.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_gcm.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_gcm.misc.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_hkdf.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_hkdf.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_hmac_drbg.function HMAC_DRBG entropy usage: test the exact amount of consumed entropy 2019-10-23 19:46:56 +02:00
test_suite_hmac_drbg.misc.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_hmac_drbg.no_reseed.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_hmac_drbg.nopr.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_hmac_drbg.pr.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_md.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_md.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_mdx.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_mdx.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_memory_buffer_alloc.data More accurate test case description 2019-10-31 15:07:35 +01:00
test_suite_memory_buffer_alloc.function Enable more test cases without MBEDTLS_MEMORY_DEBUG 2019-10-31 15:07:45 +01:00
test_suite_mpi.data Merge pull request #346 from gilles-peskine-arm/mpi_copy_shrink 2020-02-06 09:52:01 +01:00
test_suite_mpi.function Merge pull request #346 from gilles-peskine-arm/mpi_copy_shrink 2020-02-06 09:52:01 +01:00
test_suite_nist_kw.data Uniquify test case descriptions 2019-09-20 15:59:31 +02:00
test_suite_nist_kw.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_oid.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_oid.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pem.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pem.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pk.data Remove old values of curve encodings 2020-01-31 10:24:21 +01:00
test_suite_pk.function Convert USE_PSA_CRYPTO pk interface to the new PSA EC curve encoding 2020-01-31 10:15:32 +01:00
test_suite_pkcs1_v15.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pkcs1_v15.function Reduce stack usage of test_suite_pkcs1_v15 2019-09-24 11:22:51 +03:00
test_suite_pkcs1_v21.data pkcs1_v21: Fix copypasta in test case 2019-09-20 15:58:54 +02:00
test_suite_pkcs1_v21.function Reduce stack usage of test_suite_pkcs1_v21 2019-09-24 11:22:04 +03:00
test_suite_pkcs5.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_pkcs5.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_pkparse.data Test each failure mode of pk_parse_key_pkcs1_der() 2020-02-18 10:31:29 +01:00
test_suite_pkparse.function Clean up test function pk_parse_key 2020-02-18 10:18:43 +01:00
test_suite_pkwrite.data pk_write test cases with short/long private key 2019-11-05 15:32:53 +01:00
test_suite_pkwrite.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_poly1305.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_poly1305.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_psa_crypto_entropy.data
test_suite_psa_crypto_entropy.function Rename psa_helpers.function to psa_crypto_helpers.h 2019-06-20 12:40:56 +02:00
test_suite_psa_crypto_hash.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_psa_crypto_hash.function Rename psa_helpers.function to psa_crypto_helpers.h 2019-06-20 12:40:56 +02:00
test_suite_psa_crypto_init.data CTR_DRBG: define a constant for the default entropy nonce length 2019-10-23 19:47:05 +02:00
test_suite_psa_crypto_init.function CTR_DRBG: define a constant for the default entropy nonce length 2019-10-23 19:47:05 +02:00
test_suite_psa_crypto_metadata.data Move size-specific curve/group constants to crypto_compat.h 2020-01-31 10:15:32 +01:00
test_suite_psa_crypto_metadata.function Change the encoding of key types to have a parity bit 2020-01-31 10:24:21 +01:00
test_suite_psa_crypto_persistent_key.data Change the encoding of key types to have a parity bit 2020-01-31 10:24:21 +01:00
test_suite_psa_crypto_persistent_key.function Change key types to a 16-bit encoding 2020-01-31 10:24:21 +01:00
test_suite_psa_crypto_se_driver_hal_mocks.data SE driver: call the p_init method during psa_crypto_init() 2019-10-01 15:22:29 +02:00
test_suite_psa_crypto_se_driver_hal_mocks.function Rename some signature-related identifiers 2019-11-26 18:20:59 +01:00
test_suite_psa_crypto_se_driver_hal.data Define EC curve family constants 2020-01-31 10:15:32 +01:00
test_suite_psa_crypto_se_driver_hal.function Define EC curve family constants 2020-01-31 10:15:32 +01:00
test_suite_psa_crypto_slot_management.data Define EC curve family constants 2020-01-31 10:15:32 +01:00
test_suite_psa_crypto_slot_management.function Consolidate invalid-handle tests 2019-10-11 11:44:48 +02:00
test_suite_psa_crypto.data Switch psa_crypto tests to the new curve encoding 2020-01-31 10:24:21 +01:00
test_suite_psa_crypto.function Remove old values of curve encodings 2020-01-31 10:24:21 +01:00
test_suite_psa_its.data Fix copypasta in test data 2019-03-15 11:37:09 +01:00
test_suite_psa_its.function Merge remote-tracking branch 'upstream-crypto/development' into psa-api-1.0-beta-merge_development_20190801 2019-07-31 17:47:49 +02:00
test_suite_rsa.data Improve readability of test dependencies 2020-01-07 10:24:17 +01:00
test_suite_rsa.function Reduce stack usage of test_suite_rsa 2019-09-24 11:21:36 +03:00
test_suite_shax.data Declare test dependencies on !SHA512_NO_SHA384 2020-01-06 11:40:23 +01:00
test_suite_shax.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_ssl.data Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_ssl.function Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_timing.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_timing.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_version.data Bump version to Mbed TLS 2.21.0 2020-02-19 14:35:16 +00:00
test_suite_version.function
test_suite_x509parse.data Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_x509parse.function Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_x509write.data Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_x509write.function Revert "Remove tests that depend on TLS or X.509" 2020-03-19 14:17:54 +01:00
test_suite_xtea.data Remove unused cryptography test files 2019-08-15 15:44:50 +01:00
test_suite_xtea.function Remove unused cryptography test files 2019-08-15 15:44:50 +01:00