Commit graph

4432 commits

Author SHA1 Message Date
Simon Butcher e3241670b1 Remove redundant test certificates and clarify ChangeLog 2016-03-01 21:46:36 +00:00
Janos Follath 855ec587a4 X509: Fix bug triggered by future CA among trusted
Fix an issue that caused valid certificates being rejected whenever an
expired or not yet valid version of the trusted certificate was before the
valid version in the trusted certificate list.
2016-03-01 21:46:36 +00:00
Janos Follath f4a65d66bf X509: Future CA among trusted: add more tests 2016-03-01 21:46:36 +00:00
Janos Follath a155afb9d7 X509: Future CA among trusted: add unit tests 2016-03-01 21:46:36 +00:00
Simon Butcher e919f76e0d Fix typos and add copyright statement to generate_code.pl 2016-03-01 21:46:36 +00:00
SimonB 32ff13ae3d Refactored test suite template code
Restructed test suite helper and main code to support tests suite helper
functions, changed C++ comments to C-style, and made the generated
source code more navigable.
2016-03-01 21:46:36 +00:00
SimonB 16177a4033 Added support for per test suite helper functions
Added to generate_code.pl:
    - support for per test suite helper functions
    - description of the structure of the files the script uses to construct
      the test suite file
    - delimiters through the source code to make the machine generated code
      easier to understand
2016-03-01 21:46:36 +00:00
SimonB 26f9a7098a Clarified purpose and usage of generate_code.pl
Added comments to explain purpose and usage of generate_code.pl
2016-03-01 21:46:36 +00:00
Simon Butcher f51f088656 Added script to split the test case data files
Script generate-afl-tests.sh will split the test suite data files into
individual test case files, suitable for fuzzing.
2016-03-01 21:46:36 +00:00
Simon Butcher 3990f62669 Parameterised the test suite applications
All test suites can now take an arbitrary test file.
2016-03-01 21:46:35 +00:00
Simon Butcher bc32e4a151 Use the SSL IO and time callback typedefs consistently
The callback typedefs defined for mbedtls_ssl_set_bio() and
mbedtls_ssl_set_timer_cb() were not used consistently where the callbacks were
referenced in structures or in code.
2016-03-01 21:46:35 +00:00
Simon Butcher 36567e3437 Fix some minor typos in comments
Fix spelling mistakes and typos.
2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard b2d3011774 x509: remove obsolete TODO comment
- basicContraints checks are done during verification
- there is no need to set extensions that are not present to default values,
  as the code using the extension will check if it was present using
ext_types. (And default values would not make sense anyway.)
2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard db1ae1ea01 x509:
-
2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard 5a793b74a0 ssl: ignore CertificateRequest's content for real
- document why we made that choice
- remove the two TODOs about checking hash and CA
- remove the code that parsed certificate_type: it did nothing except store
  the selected type in handshake->cert_type, but that field was never accessed
afterwards. Since handshake_params is now an internal type, we can remove that
field without breaking the ABI.
2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard 9d79c1ba95 Remove unnecessary TODO comment
We don't implement anonymous key exchanges, and we don't intend to, so it can
never happen that an unauthenticated server requests a certificate from us.
2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard e66dd1dcef Clarify documentation about missing CRLs
Also tune up some working while at it.
2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard a6062607f1 Update note about hardcoded verify_data_length 2016-03-01 21:46:35 +00:00
Manuel Pégourié-Gonnard 28124dba07 Remove unused code.
After the record contents are decompressed, in_len is no longer
accessed directly, only in_msglen is accessed. in_len is only read by
ssl_parse_record_header() which happens before ssl_prepare_record_contents().

This is also made clear by the fact that in_len is not touched after
decrypting anyway, so if it was accessed after that it would be wrong unless
decryption is used - as this is not the case, it show in_len is not accessed.
2016-03-01 21:46:34 +00:00
Manuel Pégourié-Gonnard e6a4846435 Add note about not implementing PSK id_hint 2016-03-01 21:46:34 +00:00
Manuel Pégourié-Gonnard d47c4335b8 Give better error messages for semi-portable parts
Previously it was failing with errors about headers not found, which is
suboptimal in terms of clarity. Now give a clean error with pointer to the
documentation.

Do the checks in the .c files rather than check_config.h as it keeps them
closer to the platform-specific implementations.
2016-03-01 21:46:34 +00:00
Manuel Pégourié-Gonnard 7a0cf2ef3c Improve documentation of some SSL callbacks
The previous documentation was not explicit about what was expected of the
callbacks - the user had to infer that from the descriptions in net.h or
timing.h, and it was not clear what was part of the calling convention and
what was specific to our implementation.
2016-03-01 21:46:34 +00:00
Manuel Pégourié-Gonnard 840046aa8c Fix Unix detection in mini_client
fixes #398
2016-03-01 21:46:34 +00:00
Simon Butcher b3e014cffc Clarified mbedtls_ssl_conf_alpn_protocols() doc
Clarified the lifetime of the protos parameter passed in the
function mbedtls_ssl_conf_alpn_protocols().
2016-03-01 21:46:34 +00:00
Janos Follath 9ee7f6cf6d Removing 'if' branch from the fix.
This new error shouldn't be distinguishable from other padding errors.
Updating 'bad' instead of adding a new 'if' branch.
2016-03-01 21:46:34 +00:00
Janos Follath 69db3bc738 Add tests for the bug IOTSSL-619.
The main goal with these tests is to test the bug in question and
they are not meant to test the entire PKCS#1 v1.5 behaviour. To
achieve full test coverage, further test cases are needed.
2016-03-01 21:46:34 +00:00
Janos Follath 8ac04de42b Add Changelog entry for current branch 2016-03-01 21:46:34 +00:00
Janos Follath b39b710e42 Length check added 2016-03-01 21:45:54 +00:00
Simon Butcher a418ff8eb5 Remove redundant test certificates and clarify ChangeLog 2016-03-01 20:26:16 +00:00
Janos Follath c72d642595 X509: Fix bug triggered by future CA among trusted
Fix an issue that caused valid certificates being rejected whenever an
expired or not yet valid version of the trusted certificate was before the
valid version in the trusted certificate list.
2016-03-01 19:13:48 +00:00
Janos Follath 884b4fc2e9 X509: Future CA among trusted: add more tests 2016-03-01 19:13:48 +00:00
Janos Follath ede75f06c5 X509: Future CA among trusted: add unit tests 2016-03-01 19:13:48 +00:00
Simon Butcher f18e02c22e Fix typos and add copyright statement to generate_code.pl 2016-03-01 18:37:49 +00:00
SimonB beff85aaee Refactored test suite template code
Restructed test suite helper and main code to support tests suite helper
functions, changed C++ comments to C-style, and made the generated
source code more navigable.
2016-03-01 18:37:49 +00:00
SimonB 6fb9db3afd Added support for per test suite helper functions
Added to generate_code.pl:
    - support for per test suite helper functions
    - description of the structure of the files the script uses to construct
      the test suite file
    - delimiters through the source code to make the machine generated code
      easier to understand
2016-03-01 18:37:49 +00:00
SimonB 718548d5c9 Clarified purpose and usage of generate_code.pl
Added comments to explain purpose and usage of generate_code.pl
2016-03-01 18:37:49 +00:00
Simon Butcher 2bed20d670 Added script to split the test case data files
Script generate-afl-tests.sh will split the test suite data files into
individual test case files, suitable for fuzzing.
2016-03-01 18:37:49 +00:00
Simon Butcher 6c545a87c2 Parameterised the test suite applications
All test suites can now take an arbitrary test file.
2016-03-01 18:37:49 +00:00
Simon Butcher 1b6044ded2 Use the SSL IO and time callback typedefs consistently
The callback typedefs defined for mbedtls_ssl_set_bio() and
mbedtls_ssl_set_timer_cb() were not used consistently where the callbacks were
referenced in structures or in code.
2016-03-01 17:37:12 +00:00
Simon Butcher a766576a74 Fix some minor typos in comments
Fix spelling mistakes and typos.
2016-03-01 17:37:12 +00:00
Manuel Pégourié-Gonnard 347700ebe2 x509: remove obsolete TODO comment
- basicContraints checks are done during verification
- there is no need to set extensions that are not present to default values,
  as the code using the extension will check if it was present using
ext_types. (And default values would not make sense anyway.)
2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard a0e924fa7b x509:
-
2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard 04d39d2825 ssl: ignore CertificateRequest's content for real
- document why we made that choice
- remove the two TODOs about checking hash and CA
- remove the code that parsed certificate_type: it did nothing except store
  the selected type in handshake->cert_type, but that field was never accessed
afterwards. Since handshake_params is now an internal type, we can remove that
field without breaking the ABI.
2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard b222cd92c1 Remove unnecessary TODO comment
We don't implement anonymous key exchanges, and we don't intend to, so it can
never happen that an unauthenticated server requests a certificate from us.
2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard 0fa5b055c9 Clarify documentation about missing CRLs
Also tune up some working while at it.
2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard 982b9adc96 Update note about hardcoded verify_data_length 2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard fc0e286c0e Remove unused code.
After the record contents are decompressed, in_len is no longer
accessed directly, only in_msglen is accessed. in_len is only read by
ssl_parse_record_header() which happens before ssl_prepare_record_contents().

This is also made clear by the fact that in_len is not touched after
decrypting anyway, so if it was accessed after that it would be wrong unless
decryption is used - as this is not the case, it show in_len is not accessed.
2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard c3cb4c75a5 Add note about not implementing PSK id_hint 2016-03-01 17:37:11 +00:00
Manuel Pégourié-Gonnard 7ff4b774b7 Give better error messages for semi-portable parts
Previously it was failing with errors about headers not found, which is
suboptimal in terms of clarity. Now give a clean error with pointer to the
documentation.

Do the checks in the .c files rather than check_config.h as it keeps them
closer to the platform-specific implementations.
2016-03-01 17:37:10 +00:00
Manuel Pégourié-Gonnard b967c15e40 Improve documentation of some SSL callbacks
The previous documentation was not explicit about what was expected of the
callbacks - the user had to infer that from the descriptions in net.h or
timing.h, and it was not clear what was part of the calling convention and
what was specific to our implementation.
2016-03-01 17:37:10 +00:00