mbedtls/tests/suites
Hanno Becker 6ccfb18ab1 Always return a high-level error code from X.509 module
Some functions within the X.509 module return an ASN.1 low level
error code where instead this error code should be wrapped by a
high-level X.509 error code as in the bulk of the module.

Specifically, the following functions are affected:
- mbedtls_x509_get_ext()
- x509_get_version()
- x509_get_uid()

This commit modifies these functions to always return an
X.509 high level error code.

Care has to be taken when adapting `mbetls_x509_get_ext()`:
Currently, the callers `mbedtls_x509_crt_ext()` treat the
return code `MBEDTLS_ERR_ASN1_UNEXPECTED_TAG` specially to
gracefully detect and continue if the extension structure is not
present. Wrapping the ASN.1 error with
`MBEDTLS_ERR_X509_INVALID_EXTENSIONS` and adapting the check
accordingly would mean that an unexpected tag somewhere
down the extension parsing would be ignored by the caller.

The way out of this is the following: Luckily, the extension
structure is always the last field in the surrounding structure,
so if there is some data remaining, it must be an Extension
structure, so we don't need to deal with a tag mismatch gracefully
in the first place.

We may therefore wrap the return code from the initial call to
`mbedtls_asn1_get_tag()` in `mbedtls_x509_get_ext()` by
`MBEDTLS_ERR_X509_INVALID_EXTENSIONS` and simply remove
the special treatment of `MBEDTLS_ERR_ASN1_UNEXPECTED_TAG`
in the callers `x509_crl_get_ext()` and `x509_crt_get_ext()`.

This renders `mbedtls_x509_get_ext()` unsuitable if it ever
happened that an Extension structure is optional and does not
occur at the end of its surrounding structure, but for CRTs
and CRLs, it's fine.

The following tests need to be adapted:
- "TBSCertificate v3, issuerID wrong tag"
  The issuerID is optional, so if we look for its presence
  but find a different tag, we silently continue and try
  parsing the subjectID, and then the extensions. The tag '00'
  used in this test doesn't match either of these, and the
  previous code would hence return LENGTH_MISMATCH after
  unsucessfully trying issuerID, subjectID and Extensions.
  With the new code, any data remaining after issuerID and
  subjectID _must_ be Extension data, so we fail with
  UNEXPECTED_TAG when trying to parse the Extension data.
- "TBSCertificate v3, UIDs, invalid length"
  The test hardcodes the expectation of
  MBEDTLS_ERR_ASN1_INVALID_LENGTH, which needs to be
  wrapped in MBEDTLS_ERR_X509_INVALID_FORMAT now.

Fixes #2431.
2019-06-04 13:59:48 +01:00
..
helpers.function Write documentation for TEST_ASSERT 2019-02-15 10:13:35 -05:00
host_test.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
main_test.function psa: Initialize crypto in tests that need to 2019-02-13 07:34:54 -05:00
target_test.function Style fixes 2018-08-06 11:42:56 +01:00
test_suite_aes.cbc.data
test_suite_aes.cfb.data
test_suite_aes.ecb.data
test_suite_aes.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_aes.ofb.data Add test cases for AES OFB block mode 2018-06-11 14:03:22 +01:00
test_suite_aes.rest.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_aes.xts.data tests: Remove NIST AES-XTS test vectors 2018-06-13 12:13:58 +01:00
test_suite_arc4.data
test_suite_arc4.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_aria.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_aria.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_asn1write.data Add tests for (named) bitstring to suite_asn1write 2019-02-28 09:36:30 +00:00
test_suite_asn1write.function Add tests for (named) bitstring to suite_asn1write 2019-02-28 09:36:30 +00:00
test_suite_base64.data
test_suite_base64.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_blowfish.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_blowfish.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_camellia.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_camellia.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ccm.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ccm.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_chacha20.data chacha20: add test for parameter validation 2018-05-24 13:37:31 +02:00
test_suite_chacha20.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_chachapoly.data chachapoly: add test for state flow 2018-05-24 13:37:31 +02:00
test_suite_chachapoly.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_cipher.aes.data Add AES-*-CBC test vectors for PSA-based cipher contexts 2018-11-22 14:03:39 +00:00
test_suite_cipher.arc4.data Add tests for "return plaintext data faster on unpadded decryption" 2018-03-27 19:25:35 -07:00
test_suite_cipher.blowfish.data Add tests for "return plaintext data faster on unpadded decryption" 2018-03-27 19:25:35 -07:00
test_suite_cipher.camellia.data Add tests for "return plaintext data faster on unpadded decryption" 2018-03-27 19:25:35 -07:00
test_suite_cipher.ccm.data Test PSA-based CCM cipher operations 2018-11-22 14:03:39 +00:00
test_suite_cipher.chacha20.data cipher: add stream test vectors for chacha20(poly1305) 2018-05-24 13:37:31 +02:00
test_suite_cipher.chachapoly.data Test PSA-based CCM cipher operations 2018-11-22 14:03:39 +00:00
test_suite_cipher.des.data Add tests for "return plaintext data faster on unpadded decryption" 2018-03-27 19:25:35 -07:00
test_suite_cipher.function Call mbedtls_cipher_free() to reset a cipher context 2019-04-16 16:06:34 +02:00
test_suite_cipher.gcm.data Add missing newline at the end of test_suite_cipher.gcm.data 2018-11-22 14:03:39 +00:00
test_suite_cipher.misc.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_cipher.nist_kw.data Add NIST keywrap as a cipher mode 2019-04-02 10:02:55 -07:00
test_suite_cipher.null.data Add tests for "return plaintext data faster on unpadded decryption" 2018-03-27 19:25:35 -07:00
test_suite_cipher.padding.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_cmac.data
test_suite_cmac.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_ctr_drbg.data Refactor test code for CTR DRBG to clarify test functions 2018-08-29 23:38:57 +03:00
test_suite_ctr_drbg.function test_suite_ctr_drbg: use ctr_drbg_update_ret instead of ctr_drbg_update 2019-02-01 02:53:16 -05:00
test_suite_debug.data Tests: add omitted dependency on MBEDTLS_ECDSA_C in test_suite_debug 2017-09-04 14:17:10 +02:00
test_suite_debug.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_des.data
test_suite_des.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_dhm.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_dhm.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ecdh.data ECDH: Add test vectors for Curve25519 2019-02-22 15:42:03 +00:00
test_suite_ecdh.function Add mbedtls_ecp_read_key 2019-02-22 15:39:03 +00:00
test_suite_ecdsa.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ecdsa.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ecjpake.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ecjpake.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ecp.data ECP: Clarify test descriptions 2019-02-27 14:47:10 +00:00
test_suite_ecp.function Merge remote-tracking branch 'restricted/pr/551' into development 2019-03-27 17:01:24 +00:00
test_suite_entropy.data Move flag indicating presence of strong entropy to test code 2017-07-24 15:31:30 +01:00
test_suite_entropy.function Fix typo in test_suite_entropy.function 2018-08-15 13:55:37 +01:00
test_suite_error.data
test_suite_error.function Intermediate hexify out change 2018-08-06 11:40:57 +01:00
test_suite_gcm.aes128_de.data Fix test functions and data after moving hexify/unhexify out 2018-08-06 11:40:57 +01:00
test_suite_gcm.aes128_en.data fix for issue 1118: check if iv is zero in gcm. 2017-07-27 21:44:33 +01:00
test_suite_gcm.aes192_de.data Fix test functions and data after moving hexify/unhexify out 2018-08-06 11:40:57 +01:00
test_suite_gcm.aes192_en.data fix for issue 1118: check if iv is zero in gcm. 2017-07-27 21:44:33 +01:00
test_suite_gcm.aes256_de.data Fix test functions and data after moving hexify/unhexify out 2018-08-06 11:40:57 +01:00
test_suite_gcm.aes256_en.data fix for issue 1118: check if iv is zero in gcm. 2017-07-27 21:44:33 +01:00
test_suite_gcm.camellia.data Fix test functions and data after moving hexify/unhexify out 2018-08-06 11:40:57 +01:00
test_suite_gcm.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_gcm.misc.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_hkdf.data hkdf: Add negative tests 2018-06-11 13:10:14 +01:00
test_suite_hkdf.function Increase okm_hex buffer to contain null character 2019-01-28 15:18:15 +02:00
test_suite_hmac_drbg.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_hmac_drbg.misc.data
test_suite_hmac_drbg.no_reseed.data
test_suite_hmac_drbg.nopr.data
test_suite_hmac_drbg.pr.data
test_suite_md.data Allow comments in test data files 2017-10-06 11:58:50 +01:00
test_suite_md.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_mdx.data Allow comments in test data files 2017-10-06 11:58:50 +01:00
test_suite_mdx.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_memory_buffer_alloc.data Test corner case uses of memory_buffer_alloc.c 2018-01-23 19:37:44 +00:00
test_suite_memory_buffer_alloc.function Intermediate hexify out change 2018-08-06 11:40:57 +01:00
test_suite_mpi.data Merge remote-tracking branch 'origin/pr/2405' into development 2019-04-05 14:08:49 +01:00
test_suite_mpi.function Merge remote-tracking branch 'origin/pr/2405' into development 2019-04-05 14:08:49 +01:00
test_suite_nist_kw.data Enhance nist_kw with some NULL buffers tests 2018-08-13 14:46:45 +03:00
test_suite_nist_kw.function Fix #2370, minor typos and spelling mistakes 2019-01-24 10:37:40 +01:00
test_suite_oid.data Add a test of the OID->MD map functions 2019-05-06 12:16:18 -04:00
test_suite_oid.function Test the return value in the OID->X.509 map functions 2019-05-06 12:16:32 -04:00
test_suite_pem.data
test_suite_pem.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_pk.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_pk.function psa: Initialize crypto in tests that need to 2019-02-13 07:34:54 -05:00
test_suite_pkcs1_v15.data Fix test data missing some fake-random input 2019-02-19 18:33:57 +01:00
test_suite_pkcs1_v15.function Add tests for RSA encrypt/decrypt with NULL for empty message 2019-02-19 18:33:57 +01:00
test_suite_pkcs1_v21.data Add tests for RSA encrypt/decrypt with NULL for empty message 2019-02-19 18:33:57 +01:00
test_suite_pkcs1_v21.function Add tests for RSA encrypt/decrypt with NULL for empty message 2019-02-19 18:33:57 +01:00
test_suite_pkcs5.data tests/pkcs5/pbkdf2_hmac: add unit tests for additional SHA algorithms 2018-02-08 17:18:19 +08:00
test_suite_pkcs5.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_pkparse.data Change test dependencies to RC4 from DES 2018-07-27 17:15:39 +01:00
test_suite_pkparse.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00
test_suite_pkwrite.data
test_suite_pkwrite.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_poly1305.data poly1305: add test for parameter validation 2018-05-24 13:37:31 +02:00
test_suite_poly1305.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_rsa.data Add support for RSA PKCSv1.5 signatures using RIPEMD-160 2019-05-06 12:15:17 -04:00
test_suite_rsa.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_shax.data Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_shax.function Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
test_suite_ssl.data Fix missing tls version test failures 2019-05-15 14:54:22 +03:00
test_suite_ssl.function Initialize psa_crypto in ssl test 2019-05-15 17:04:33 +03:00
test_suite_timing.data Reduce the timing tests complexity 2019-01-29 10:19:49 +01:00
test_suite_timing.function Correct code formatting in the timing test suites 2019-02-05 09:22:20 +01:00
test_suite_version.data Update library version to 2.17.0 2019-03-19 16:12:55 +00:00
test_suite_version.function Intermediate hexify out change 2018-08-06 11:40:57 +01:00
test_suite_x509parse.data Always return a high-level error code from X.509 module 2019-06-04 13:59:48 +01:00
test_suite_x509parse.function Add test cases exercising successful verification of MD2/MD4/MD5 CRT 2019-06-03 14:45:21 +01:00
test_suite_x509write.data Fix typo in x509write test data 2019-02-28 09:38:03 +00:00
test_suite_x509write.function Add tests for (named) bitstring to suite_asn1write 2019-02-28 09:36:30 +00:00
test_suite_xtea.data
test_suite_xtea.function Rename HexParam_t -> data_t for consistent coding style 2018-08-06 11:42:06 +01:00