Hanno Becker
20376d631d
Don't promise that passing NULL input to Blowfish works
...
It seems to work, but we don't test it currently,
so we shouldn't promise it.
2018-12-19 12:52:59 +00:00
Hanno Becker
3d9a3490f8
Improve Blowfish documentation
2018-12-19 12:52:59 +00:00
Hanno Becker
49acc64c69
Minor improvements to Blowfish documentation and tests
2018-12-19 12:52:59 +00:00
Hanno Becker
3b4d6c6925
Document parameter preconditions for Blowfish module
2018-12-19 12:52:59 +00:00
Hanno Becker
938a15e584
Leave behaviour on NULL input unspecified in ARIA
...
We allow a NULL input buffer if the input length is zero,
but we don't test it. As long as that's the case, we shouldn't
promise to support it.
2018-12-19 12:51:00 +00:00
Hanno Becker
2f87504cb7
Minor ARIA documentation improvements
2018-12-19 12:51:00 +00:00
Hanno Becker
02d524c05c
Minor ARIA documentation improvements
2018-12-19 12:51:00 +00:00
Hanno Becker
139d8313d9
Document parameter preconditions for the ARIA module
2018-12-19 12:51:00 +00:00
Hanno Becker
1e2f3ed08f
Remove merge artifact
2018-12-19 12:47:55 +00:00
Hanno Becker
bdb7cd4840
Don't promise that passing NULL input to Camellia works
2018-12-19 12:47:55 +00:00
Hanno Becker
c7579ecb17
Improve Camellia documentation
2018-12-19 12:47:55 +00:00
Hanno Becker
af4b83bb2a
Minor improvements to CAMELLIA documentation
2018-12-19 12:47:55 +00:00
Hanno Becker
e939de7247
Minor fixes to Camellia parameter validation
2018-12-19 12:47:55 +00:00
Hanno Becker
f10905a6a7
Use full sentences in documentation of CAMELLIA preconditions
2018-12-19 12:47:55 +00:00
Hanno Becker
b4b7fb7504
Implement parameter validation for CAMELLIA module
2018-12-19 12:47:55 +00:00
Hanno Becker
7a16aaddba
Document parameter preconditions in CAMELLIA module
2018-12-19 12:47:55 +00:00
Hanno Becker
bb186f89fc
Weaken preconditions for mbedtls[_internal]_sha512_process()
2018-12-19 10:27:24 +00:00
Hanno Becker
fbf67770d8
Improve ECJPAKE documentation
2018-12-19 10:14:43 +00:00
Hanno Becker
185e516309
Minor fixes to ECJPAKE parameter validation
2018-12-19 09:48:50 +00:00
Simon Butcher
54b789aa74
Merge remote-tracking branch 'public/pr/2298' into development
2018-12-19 08:08:14 +00:00
Gilles Peskine
a310b41ebe
Add null-pointer support information to init/free
2018-12-19 00:51:21 +01:00
Hanno Becker
035c6baefe
Fix documentation bug in ECDSA module
2018-12-18 23:35:53 +00:00
Hanno Becker
c81cfece8f
Minor fixes to parameter validation in ECDH module
2018-12-18 23:32:42 +00:00
Hanno Becker
3f1f4ad9bd
Weaken preconditions on mbedtls_[internal_]sha256_process()
2018-12-18 23:19:37 +00:00
Hanno Becker
79b9e39732
Weaken preconditions for mbedtls[_internal]_sha1_process()
2018-12-18 23:17:49 +00:00
Hanno Becker
d01ff493e5
Minor improvements in bignum documentation
2018-12-18 23:10:28 +00:00
Hanno Becker
3f2d1ef169
Fix typo in SHA512 documentation
2018-12-18 18:41:40 +00:00
Hanno Becker
42f783d3b7
Fix minor issues in SHA1 documentation
2018-12-18 18:39:32 +00:00
Hanno Becker
d73101266d
Don't promise that passing a NULL to mbedtls_mpi_read_string works
2018-12-18 18:12:13 +00:00
Hanno Becker
01c3c10640
Fix typos in documentation of bignum module
...
Found by doxygen.sh
2018-12-18 18:12:13 +00:00
Hanno Becker
e118504a5f
Numerous minor improvements to bignum documentation
2018-12-18 18:12:13 +00:00
Hanno Becker
8282c2f070
Minor improvements to bignum documentation
2018-12-18 18:12:13 +00:00
Hanno Becker
c23483ed8c
Document preconditions on parameters in public bignum API
2018-12-18 18:12:13 +00:00
Hanno Becker
974ca0d947
Fix documentation bug on necessity of RNG in RSA PKCS v1.5
2018-12-18 18:03:24 +00:00
Hanno Becker
2f660d047d
Forbid passing NULL input buffers to RSA encryption routines
2018-12-18 17:07:30 +00:00
Hanno Becker
9171c6e9ec
Leave behaviour on NULL buffers to SHA-1 unspecified for now
...
We deal correctly with NULL being passed alongside a zero length
argument, but don't have tests for it, so we shouldn't promise
that it works.
2018-12-18 17:01:58 +00:00
Hanno Becker
6c5c45f400
Document parameter preconditions in DHM module
2018-12-18 16:59:09 +00:00
Hanno Becker
ca6f4585c7
Fix parameter validation in SHA-512 module
2018-12-18 16:36:26 +00:00
Hanno Becker
fc2a0b2e67
Minor SHA-256 documentation improvement
2018-12-18 16:32:50 +00:00
Hanno Becker
77886af63e
Improve SHA-256 documentation on parameter preconditions
2018-12-18 16:30:36 +00:00
Hanno Becker
ad7581fac5
Minor improvements to ChaCha20/Poly1305/ChaChaPoly documentation
2018-12-18 15:30:30 +00:00
Hanno Becker
e463c42902
Minor improvements
2018-12-18 15:30:30 +00:00
Hanno Becker
b3c10b348b
Add documentation on parameter preconditions to ChaChaPoly modules
2018-12-18 15:30:30 +00:00
Hanno Becker
b5c99f5c72
Improve documentation of SHA-512 parameter preconditions
2018-12-18 15:29:32 +00:00
Andres Amaya Garcia
ff1052e6b0
Document valid function params for SHA-512 functions
2018-12-18 15:06:39 +00:00
Andres Amaya Garcia
ba519b94a5
Add parameter validation to SHA-512 module
2018-12-18 15:06:39 +00:00
Hanno Becker
a9020f2107
Clarify the need for a PRNG in various RSA operations
2018-12-18 14:45:45 +00:00
Hanno Becker
e2e509ca5d
Document parameter preconditions in ECDSA module
2018-12-18 14:31:50 +00:00
Hanno Becker
8ce3d939be
Fix typo in documentation of ECJPAKE module
2018-12-18 14:31:18 +00:00
Hanno Becker
c4e5aa5746
Document parameter preconditions for ECJPAKE module
2018-12-18 14:31:18 +00:00
Hanno Becker
60b65044ac
Fix parameter name in documentation of ECDH module
2018-12-18 14:30:39 +00:00
Hanno Becker
e77ef2ad33
Document parameter preconditions in ECH module
2018-12-18 14:30:39 +00:00
Hanno Becker
5bdfca926f
Further RSA documentation improvements
2018-12-18 13:59:28 +00:00
Hanno Becker
f66f294e2e
Improve documentation in RSA module
2018-12-18 13:38:05 +00:00
Hanno Becker
0118d4190a
Document that RSA public exponent must be odd
2018-12-18 13:38:05 +00:00
Hanno Becker
385ce91592
Minor improvements
2018-12-18 13:38:05 +00:00
Hanno Becker
9a46777d66
Document parameter preconditions in RSA module
2018-12-18 13:38:05 +00:00
Hanno Becker
486f1b33d7
Improve wording in ECP documentation
2018-12-18 13:00:48 +00:00
Hanno Becker
5edcfa529f
Improve ECP documentation
2018-12-18 13:00:48 +00:00
Hanno Becker
ebffa7995b
Document parameter preconditions in ECP module
2018-12-18 13:00:48 +00:00
Hanno Becker
03f2ffa7bc
Undo documentation change in ARIA, Blowfish, Camellia modules
2018-12-18 12:45:06 +00:00
Andres Amaya Garcia
0152f1e948
Document valid function params for SHA-256 functions
2018-12-18 11:41:20 +00:00
Andres Amaya Garcia
79e593f617
Add parameter validation to SHA-256 module
2018-12-18 11:41:20 +00:00
Hanno Becker
5359ca8a54
Improve SHA-1 documentation
2018-12-18 11:37:28 +00:00
Andres Amaya Garcia
c523e011e0
Document valid function params for SHA-1 functions
2018-12-18 11:37:28 +00:00
Andres Amaya Garcia
a685d4f28d
Add MBEDTLS_ERR_SHA1_BAD_INPUT_DATA to error.{h,c}
2018-12-18 11:37:28 +00:00
Andres Amaya Garcia
f7c43b3145
Add parameter validation to SHA-1
2018-12-18 11:37:28 +00:00
Manuel Pégourié-Gonnard
b66e7dbcc1
Fix some documentation markup/wording issues
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
ad54c49e75
Document AES accelerator functions as internal
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
2bc535be86
Add parameter validation for AES-CTR
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
8e41eb7187
Add parameter validation for AES-OFB
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
1677cca54b
Add parameter validation for AES-CFB functions
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
191af1313a
Add param validation for mbedtls_aes_crypt_xts()
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
3178d1a997
Add param validation for mbedtls_aes_crypt_cbc()
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
1aca260571
Add parameter validation for mbedtls_aes_crypt_ecb()
2018-12-18 12:22:40 +01:00
Manuel Pégourié-Gonnard
68e3dff3f1
Add parameter validation XTS setkey functions
2018-12-18 12:22:40 +01:00
Hanno Becker
6640b0d9a3
Undo deprecation of MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH
2018-12-18 09:53:14 +00:00
Hanno Becker
a034369eca
Undo deprecation of MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH
2018-12-18 09:53:11 +00:00
Hanno Becker
938f9e9bdb
Undo deprecation of MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH
...
Merging MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH and
MBEDTLS_ERR_CAMELLIA_INVALID_KEY_LENGTH is an API break.
2018-12-18 09:50:57 +00:00
Hanno Becker
9dbefa1793
Fix conflict between constant deprecation and check-names.sh
...
The previous introduction of constant deprecation macros
in platform_util.h lead to failure of tests/scrips/check-names.sh
because the regular expressions in the latter choked on the brackets
in the part `__attribute__((deprecated))` of the definition of the
helper type `mbedtls_deprecated_{numeric|string}_constant_t`.
Postponing any further study and potential robustness improvements
in check-names.sh to another time, this commit circumvents this
problem by temporarily abbreviating `__attribute__((deprecated))`
as `MBEDTLS_DEPRECATED`, which doesn't lead to problems with
check-names.sh.
2018-12-17 22:49:13 +00:00
Hanno Becker
4fb258a868
Remove mentioning of deprecated error codes
2018-12-17 16:09:15 +00:00
Hanno Becker
d2f3a00062
Introduce single BLOWFISH error code for bad input data
...
Deprecate the old specific error codes
* MBEDTLS_ERR_BLOWFISH_INVALID_KEY_LENGTH
* MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH
2018-12-17 13:26:37 +00:00
Hanno Becker
4c029d09be
Introduce single CAMELLIA error code for bad input data
...
Deprecate the old specific error codes
* MBEDTLS_ERR_CAMELLIA_INVALID_KEY_LENGTH
* MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH
2018-12-17 13:26:33 +00:00
Hanno Becker
2f47550018
Introduce single ARIA error code for bad input data
...
Deprecate the old specific error codes
* MBEDTLS_ERR_ARIA_INVALID_KEY_LENGTH
* MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH
2018-12-17 13:26:28 +00:00
Manuel Pégourié-Gonnard
548cecdd2c
Discourage making MBEDTLS_PARAM_FAILED() empty.
2018-12-17 13:13:30 +01:00
Hanno Becker
6d0816a8ae
Introduce macros to deprecate constants in the API
...
This commit introduces macros
* MBEDTLS_DEPRECATED_STRING_CONSTANT
* MBEDTLS_DEPRECATED_NUMERIC_CONSTANT
to platform_util.h which can be used to deprecate public macro constants.
Their definition is essentially taken from dhm.h where the
MBEDTLS_DEPRECATED_STRING_CONSTANT was used to deprecate
insecure hardcoded DHM primes.
2018-12-17 11:39:38 +00:00
Manuel Pégourié-Gonnard
e7306d30a9
Improve some documentation and ChangeLog entry
2018-12-13 09:45:49 +01:00
Manuel Pégourié-Gonnard
cd2b29cd12
Improve wording in documentation and ChangeLog
2018-12-12 10:23:57 +01:00
Manuel Pégourié-Gonnard
ed459e6995
Fix content and style of constraints documentation
...
- Be specific about the constraints: be a readable/writable buffer of length
X, be an initialized context, be a context initialized and bound to a key...
- Always use full sentences with all the required pronouns.
2018-12-12 10:20:33 +01:00
Manuel Pégourié-Gonnard
35acb099d6
Fix some documentation typos/markup/duplication.
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
9b8ea89ae5
Fix a few style / whitespace issues
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
22028a0b8d
Fix a typo in documentation
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
0e17cc93c6
Avoid stringifying condition too early
...
It's better if the macro receives the condition as an expression rather than a
string - that way it can choose to use it as is or stringify it. Also, the
documentation states that the parameter is an expression, not a string.
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
44c5d58d05
Document AES functions and fix free() functions
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
0e9cddbf1a
Introduce generic validation macros
...
Avoid duplicating source code for each module.
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
a967626753
Make MBEDTLS_CHECK_PARAMS disabled by default
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
ab588529e1
Rework documentation.
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
a2b0e27378
Skip param validation tests if custom macro used
...
The test framework for validation of parameters depends on the macro
MBEDTLS_PARAM_FAILED() being set to its default value when building the
library. So far the test framework attempted to define this macro but this was
the wrong place - this definition wouldn't be picked by the library.
Instead, a different approach is taken: skip those tests when the macro is
defined in config.h, as in that case we have no way to know if it will indeed
end up calling mbedtls_param_failed() as we need it to.
This commit was tested by manually ensuring that aes_invalid_params:
- passes (and is not skipped) in the default configuration
- is skipped when MBEDTLS_PARAM_FAILED() is defined in config.h
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
3ef6a6dc5c
Fix const-ness in mbedtls_param_failed()
...
The previous prototype gave warnings are the strings produced by #cond and
__FILE__ are const, so we shouldn't implicitly cast them to non-const.
While at it modifying most example programs:
- include the header that has the function declaration, so that the definition
can be checked to match by the compiler
- fix whitespace
- make it work even if PLATFORM_C is not defined:
- CHECK_PARAMS is not documented as depending on PLATFORM_C and there is
no reason why it should
- so, remove the corresponding #if defined in each program...
- and add missing #defines for mbedtls_exit when needed
The result has been tested (make all test with -Werror) with the following
configurations:
- full with CHECK_PARAMS with PLATFORM_C
- full with CHECK_PARAMS without PLATFORM_C
- full without CHECK_PARAMS without PLATFORM_C
- full without CHECK_PARAMS with PLATFORM_C
Additionally, it has been manually tested that adding
mbedtls_aes_init( NULL );
near the normal call to mbedtls_aes_init() in programs/aes/aescrypt2.c has the
expected effect when running the program.
2018-12-11 12:28:56 +01:00
Manuel Pégourié-Gonnard
8e661bf6a8
Fix arity of the PARAM_FAILED() macro and function
...
It was inconsistent between files: sometimes 3 arguments, sometimes one.
Align to 1 argument for the macro and 3 for the function, because:
- we don't need 3 arguments for the macro, it can add __FILE__ and __LINE__
in its expansion, while the function needs them as parameters to be correct;
- people who re-defined the macro should have flexibility, and 3 arguments
can give the impression they they don't have as much as they actually do;
- the design document has the macro with 1 argument, so let's stick to that.
2018-12-11 12:28:56 +01:00