This document is temporary; it lists tasks to achieve G2 as described in strategy.md
while the strategy is being reviewed - once that's done, corresponding github issues will be created and this document removed.
For all of the tasks here, specific testing (integration and unit test depending on the task) is required, see testing.md
.
RSA Signature operations
In PK
Modify existing PK_OPAQUE
type to allow for RSA keys
- the following must work and be tested:
mbedtls_pk_get_type()
, mbedtls_pk_get_name()
, mbedtls_pk_get_bitlen()
, mbedtls_pk_get_len()
, mbedtls_pk_can_do()
. - most likely adapt
pk_psa_genkey()
in test_suite_pk.function
. - all other function (sign, verify, encrypt, decrypt, check pair, debug) will return
MBEDTLS_ERR_PK_TYPE_MISMATCH
and this will be tested too.
Modify mbedtls_pk_wrap_as_opaque()
to work with RSA.
- OK to have policy hardcoded on signing with PKCS1v1.5, or allow more if available at this time
Modify mbedtls_pk_write_pubkey_der()
to work with RSA-opaque.
- OK to just test that a generated key (with
pk_psa_genkey()
) can be written, without checking for correctness of the result - this will be tested as part of another task
Make mbedtls_pk_sign()
work with RSA-opaque.
- testing may extend
pk_psa_sign()
in test_suite_pk_function
by adding selector for ECDSA/RSA.
In X.509
Test using RSA-opaque for CSR generation
- similar to what's already done with ECDSA-opaque
Test using opaque keys for Certificate generation
- similar to what's done with testing CSR generation
- should test both RSA and ECDSA as ECDSA is not tested yet
- might require slight code adaptations, even if unlikely
In TLS
Test using RSA-opaque for TLS client auth
- similar to what's already done with ECDSA-opaque
Test using RSA-opaque for TLS server auth
- similar to what's already done with ECDSA-opaque
- key exchanges: ECDHE-RSA and DHE-RSA
RSA decrypt
Extend PK_OPAQUE
to allow RSA decryption (PKCS1 v1.5)
Test using that in TLS for RSA and RSA-PSK key exchange.
Support opaque PSKs for “mixed-PSK” key exchanges
See PSA-limitations.md
.
Possible split:
- one task to extend PSA (see
PSA-limitations.md
) - then one task per handshake: DHE-PSK, ECDHE-PSK, RSA-PSK (with tests for each)