Commit Graph

4686 Commits

Author SHA1 Message Date
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
Manuel Pégourié-Gonnard
4b17e53c72 Fix Unix detection in mini_client
fixes #398
2016-03-01 00:35:41 +00:00