Hanno Becker
1b831fe1c5
Clarify guarantees made by rsa_deduce_moduli/private/crt
2017-10-02 13:06:47 +01:00
Hanno Becker
bdefff1dde
Change signature of mbedtls_rsa_deduce_private
...
Make input arguments constant and adapt the implementation to use a temporary instead of in-place operations.
2017-10-02 09:59:48 +01:00
Hanno Becker
ba5b755f1a
Change signature and semantics of mbedtls_rsa_deduce_moduli
...
Input arguments are marked as constant. Further, no double-checking is performed when a factorization of the modulus has
been found.
2017-10-02 09:55:49 +01:00
Hanno Becker
56bae95e1d
Improve style and documentation, fix typo
2017-09-29 15:43:49 +01:00
Hanno Becker
4b2f691691
Doxygen: Use typewriter font for variables in rsa.h documentation
2017-09-29 13:36:54 +01:00
Hanno Becker
ed20361321
Increase readability of Doxygen output
...
Multiple lists were not properly recognized as such.
2017-09-29 13:34:25 +01:00
Hanno Becker
91c194dabb
Add and document an RSA-specific error code for unsupported exports
...
E.g., a private key on an external chip might not be exportable to RAM.
2017-09-29 12:50:12 +01:00
Hanno Becker
bead71752e
Correct typo in rsa.c
2017-09-29 12:41:06 +01:00
Hanno Becker
e1582a832b
Add expectation when testing RSA key import/export
...
This commit adds a flag to the RSA import/export tests indicating whether it is
expected that a full RSA keypair can be set up from the provided parameters.
Further, the tests of `mbedtls_rsa_import` and `mbedtls_rsa_import_raw` are
expanded to perform key checks and an example encryption-decryption.
2017-09-29 11:54:05 +01:00
Hanno Becker
4d6e83406c
Improve readability of test for mbedtls_rsa_import
2017-09-29 11:54:05 +01:00
Hanno Becker
5063cd2cca
Deprecate direct manipulation of structure fields in RSA context
2017-09-29 11:54:05 +01:00
Hanno Becker
ba1ba11a98
Check that length is properly set in mbedtls_rsa_check_pubkey
2017-09-29 11:54:05 +01:00
Hanno Becker
2f8f06aa25
Don't always recompute context length in mbedtls_rsa_get_len
...
This commit changes the implementation of `mbedtls_rsa_get_len` to return
`ctx->len` instead of always re-computing the modulus' byte-size via
`mbedtls_mpi_size`.
2017-09-29 11:54:05 +01:00
Hanno Becker
54cfc585cd
Add test cases for mbedtls_rsa_import[_raw] where N is missing
2017-09-29 11:54:05 +01:00
Hanno Becker
2cca6f3290
Always deduce N from P, Q in mbedtls_rsa_complete
...
Previously, a parameter set of (-, P, Q, -, E) was completed, but (-, P, Q, D,
E) wasn't - this is odd.
2017-09-29 11:54:05 +01:00
Hanno Becker
45037ceac5
Add check for presence of relevant parameters in mbedtls_rsa_private
...
If CRT is used, check for the presence N, P, Q, D, E, DP, DQ and QP. If CRT is
not used, check for N, P, Q, D, E only.
2017-09-14 08:02:14 +01:00
Hanno Becker
603b8c62c4
Clarify guarantees made by successful mbedtls_rsa_complete call
2017-08-25 11:03:07 +01:00
Hanno Becker
b269a8584a
Change mbedtls_rsa_check_privkey to use new helper functions
2017-08-25 08:35:09 +01:00
Hanno Becker
d9431a7817
Minor comments improvement
2017-08-25 08:35:09 +01:00
Hanno Becker
d363799a9d
Add mbedtls_rsa_validate_crt
...
This commit adds the function mbedtls_rsa_validate_crt for validating a set of CRT parameters. The function
mbedtls_rsa_check_crt is simplified accordingly.
2017-08-25 08:35:09 +01:00
Hanno Becker
d56d83a7f3
Remove double-checking code from rsa_deduce_moduli and rsa_complete
2017-08-25 08:35:08 +01:00
Hanno Becker
750e8b4596
Rename rsa_check_params->rsa_validate_params and change error codes
2017-08-25 08:34:55 +01:00
Hanno Becker
fb81c0ec2e
Guard primality checks in RSA module by MBEDTLS_GENPRIME
...
Primality testing is guarded by the configuration flag MBEDTLS_GENPRIME and used in the new RSA helper functions. This
commit adds a corresponding preprocessor directive.
2017-08-24 06:55:11 +01:00
Hanno Becker
b0c5edcc2f
Correct typo in rsa.h
2017-08-23 22:16:10 +01:00
Hanno Becker
ab3773123c
Add support for alternative RSA implementations
...
Alternative RSA implementations can be provided by defining MBEDTLS_RSA_ALT in
config.h, defining an mbedtls_rsa_context struct in a new file rsa_alt.h and
re-implementing the RSA interface specified in rsa.h.
Through the previous reworkings, the adherence to the interface is the only
implementation obligation - in particular, implementors are free to use a
different layout for the RSA context structure.
2017-08-23 16:24:51 +01:00
Hanno Becker
bf37b10370
Add test run for RSA_NO_CRT to all.sh
2017-08-23 16:17:28 +01:00
Hanno Becker
6345dd33b9
Adapt rsa_check_privkey to deal with NO_CRT option
2017-08-23 16:17:28 +01:00
Hanno Becker
bee3aaeb50
Adapt rsa_gen_key to deal with RSA_NO_CRT option
2017-08-23 16:17:28 +01:00
Hanno Becker
dc95c890ad
Adapt rsa_deduce_crt to deal with RSA_NO_CRT option
2017-08-23 16:17:28 +01:00
Hanno Becker
33c30a0c7e
Adapt rsa_copy and rsa_free to deal with RSA_NO_CRT option
2017-08-23 16:17:28 +01:00
Hanno Becker
23344b5fcc
Adapt rsa_complete to deal with RSA_NO_CRT option
2017-08-23 16:17:28 +01:00
Hanno Becker
131134fa1a
Adapt RSA test suite to deal with RSA_NON_CRT option
2017-08-23 16:17:28 +01:00
Hanno Becker
1a59e791e5
Remove CRT fields from RSA context if RSA_NO_CRT is defined
2017-08-23 16:17:28 +01:00
Hanno Becker
f073de0c25
Adapt rsa_genkey example program to use new RSA interface
2017-08-23 16:17:28 +01:00
Hanno Becker
0c2639386e
Adapt rsa_encrypt example program to new RSA interface
2017-08-23 16:17:28 +01:00
Hanno Becker
d6ba5e3d8b
Adapt rsa_sign example program to new RSA interface
2017-08-23 16:17:28 +01:00
Hanno Becker
ccef18c2ff
Adapt rsa_decrypt example program to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
40371ec783
Adapt key_app_writer example program to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
54ebf9971d
Adapt key_app example program to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
83aad1fa86
Adapt gen_key example program to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
c95fad3566
Adapt dh_server example program to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
ceb7a9ddb3
Adapt RSA test suites to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
6326a6da7f
Adapt PKCS v21 test suite to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
6d43f9e0a4
Adapt PKCS v15 test suite to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
d71dc159a6
Adapt PK test suite to use new interface
2017-08-23 16:17:27 +01:00
Hanno Becker
15f81fa21c
Adapt pkwrite.c to new RSA interface
2017-08-23 16:17:27 +01:00
Hanno Becker
d58c5b2d16
Adapt pkparse.c to new RSA interface
2017-08-23 16:17:24 +01:00
Hanno Becker
6a1e7e5f4c
Adapt pk_wrap.c to new RSA interface
...
This commit replaces direct manipulation of RSA context structure fields by
calls to the extended RSA interface in pk_wrap.c.
2017-08-23 15:07:40 +01:00
Hanno Becker
3a701161ff
Adapt RSA selftest to new RSA interface
...
This commit replaces direct manipulation of structure fields in the RSA selftest
by calls to the extended interface.
2017-08-23 15:07:40 +01:00
Hanno Becker
ce00263bd2
Add tests for rsa_check_params
...
This commit adds test for the new library function mbedtls_rsa_check_params for
checking a set of RSA core parameters. There are some toy example tests with
small numbers that can be verified by hand, as well as tests with real world
numbers. Complete, partial and corrupted data are tested, as well the check for
primality exactly if a PRNG is provided.
2017-08-23 15:07:39 +01:00