mbedtls/library
Jaeden Amero 424fa93efd psa: Support RSA signature without MBEDTLS_GENPRIME
On space-constrained platforms, it is a useful configuration to be able
to import/export and perform RSA key pair operations, but to exclude RSA
key generation, potentially saving flash space. It is not possible to
express this with the PSA_WANT_ configuration system at the present
time. However, in previous versions of Mbed TLS (v2.24.0 and earlier) it
was possible to configure a software PSA implementation which was
capable of making RSA signatures but not capable of generating RSA keys.
To do this, one unset MBEDTLS_GENPRIME.

Since the addition of MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR, this
expressivity was lost. Expressing that you wanted to work with RSA key
pairs forced you to include the ability to generate key pairs as well.

Change psa_crypto_rsa.c to only call mbedtls_rsa_gen_key() if
MBEDTLS_GENPRIME is also set. This restores the configuration behavior
present in Mbed TLS v2.24.0 and earlier versions.

It left as a future exercise to add the ability to PSA to be able to
express a desire for a software or accelerator configuration that
includes RSA key pair operations, like signature, but excludes key pair
generation.

Without this change, linker errors will occur when attempts to call,
which doesn't exist when MBEDTLS_GENPRIME is unset.
    psa_crypto_rsa.c.obj: in function `rsa_generate_key':
    psa_crypto_rsa.c:320: undefined reference to `mbedtls_rsa_gen_key'

Fixes #4512

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2021-05-20 17:08:59 +01:00
..
.gitignore Split libs with make + general make cleanups 2015-06-25 10:59:56 +02:00
aes.c Applying current changes 2021-04-30 00:07:04 +02:00
aesni.c Move aesni.h to library 2021-03-10 12:52:37 +00:00
aesni.h Move aesni.h to library 2021-03-10 12:52:37 +00:00
arc4.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
aria.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
asn1parse.c Add missing const attribute to asn1 api 2021-01-26 13:57:46 +01:00
asn1write.c Add missing const attribute to asn1write api 2021-01-27 15:37:12 +01:00
base64.c Code style fixups 2021-03-04 14:34:50 +00:00
bignum.c Merge pull request #4445 from TRodziewicz/remove_deprecated_things_-_remainder 2021-05-07 10:05:30 +02:00
blowfish.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
bn_mul.h Move bn_mul.h to library/ 2021-03-10 12:52:37 +00:00
camellia.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
ccm.c Fix additional data length field check for CCM 2020-10-08 12:09:44 +02:00
chacha20.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
chachapoly.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
check_crypto_config.h psa: config: Add CAMELLIA to the list of possible CMAC ciphers 2021-03-25 14:25:46 +01:00
cipher.c Applying current changes 2021-04-30 00:07:04 +02:00
cipher_wrap.c Rename <pk/md/cipher>_internal.h to *_wrap.h 2021-03-10 12:52:37 +00:00
cipher_wrap.h Rename <pk/md/cipher>_internal.h to *_wrap.h 2021-03-10 12:52:37 +00:00
cmac.c Allow skipping 3DES in CMAC self-test when ALT implemented 2021-03-02 10:18:08 +01:00
CMakeLists.txt Add boilerplate for dispatching MAC operations 2021-05-07 23:32:32 +02:00
common.h Move MBEDTLS_ERR_ADD macro and functions to error.* 2021-04-13 15:21:43 +01:00
ctr_drbg.c Applying current changes 2021-04-30 00:07:04 +02:00
debug.c Rename MBEDTLS_X509_INFO to !MBEDTLS_X509_REMOVE_INFO 2021-04-27 17:18:52 +01:00
des.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
dhm.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
ecdh.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
ecdsa.c Merge pull request #4445 from TRodziewicz/remove_deprecated_things_-_remainder 2021-05-07 10:05:30 +02:00
ecjpake.c ecjpake_zkp_read() now returns ...BAD_INPUT_DATA when r len == 0 and test follows that 2021-03-17 11:36:31 +01:00
ecp.c Merge pull request #4219 from stevew817/fix_missing_parenthesis 2021-04-28 08:35:00 +02:00
ecp_alt.h Rename ecp_internal.h to ecp_alt.h 2021-03-10 12:52:37 +00:00
ecp_curves.c Fix low-probability arithmetic error in ECC 2021-04-04 01:10:41 +02:00
ecp_invasive.h Clarify some comments 2021-04-09 15:46:51 +02:00
entropy.c Merge remote-tracking branch 'origin/development' into development_new 2021-04-07 16:31:09 +01:00
entropy_poll.c Merge remote-tracking branch 'origin/development' into development_new 2021-04-07 16:31:09 +01:00
entropy_poll.h Move entropy_poll.h to library 2021-03-10 12:52:37 +00:00
error.c Merge pull request #4006 from chris-jones-arm/development 2021-04-28 16:47:29 +02:00
gcm.c Merge remote-tracking branch 'origin/development' into development_new 2021-04-07 16:31:09 +01:00
hkdf.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
hmac_drbg.c Applying current changes 2021-04-30 00:07:04 +02:00
Makefile Add boilerplate for dispatching MAC operations 2021-05-07 23:32:32 +02:00
md.c Merge pull request #4349 from mpg/apply-4334-3.0 2021-04-22 12:42:40 +02:00
md2.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
md4.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
md5.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
md_wrap.h Rename <pk/md/cipher>_internal.h to *_wrap.h 2021-03-10 12:52:37 +00:00
memory_buffer_alloc.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
mps_common.h Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
mps_error.h Fix Doxygen headers for MPS files 2021-03-29 14:20:18 +01:00
mps_reader.c Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
mps_reader.h Fix Doxygen headers for MPS files 2021-03-29 14:20:18 +01:00
mps_trace.c Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
mps_trace.h Capitalise MPS trace macros 2021-04-07 12:45:35 +01:00
net_sockets.c Check if feature macro is defined before define it 2021-05-07 13:17:06 -06:00
nist_kw.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
oid.c Minor style improvements 2021-04-27 17:20:56 +01:00
padlock.c Move padlock.h to library 2021-03-10 12:52:37 +00:00
padlock.h Move padlock.h to library 2021-03-10 12:52:37 +00:00
pem.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
pk.c Merge branch 'development_3.0' into remove_depr_error_codes 2021-04-21 12:31:43 +02:00
pk_wrap.c Merge branch 'development_3.0' into remove_depr_error_codes 2021-04-21 12:31:43 +02:00
pk_wrap.h Rename <pk/md/cipher>_internal.h to *_wrap.h 2021-03-10 12:52:37 +00:00
pkcs5.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
pkcs12.c Apply MBEDTLS_ERROR_ADD to library 2021-04-15 11:19:47 +01:00
pkparse.c Remove dead code from pk_parse_key_pkcs8_unencrypted_der 2021-04-28 14:12:07 +01:00
pkwrite.c Merge branch 'development_3.0' into remove_depr_error_codes 2021-04-21 12:31:43 +02:00
platform.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
platform_util.c Fixes two _POSIX_C_SOURCE typos. 2020-11-13 09:20:18 +00:00
poly1305.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
psa_crypto.c psa: Support RSA signature without MBEDTLS_GENPRIME 2021-05-20 17:08:59 +01:00
psa_crypto_aead.c Update all uses of old AEAD output size macros 2021-04-15 17:32:06 +02:00
psa_crypto_aead.h psa: aead: Move AEAD driver entry points to psa_crypto_aead.c 2021-04-07 16:03:31 +02:00
psa_crypto_cipher.c psa: cipher: Remove cipher_generate_iv driver entry point 2021-03-26 15:58:25 +01:00
psa_crypto_cipher.h psa: cipher: Remove cipher_generate_iv driver entry point 2021-03-26 15:58:25 +01:00
psa_crypto_client.c psa: Make sure MBEDTLS_PSA_CRYPTO_CLIENT is defined 2021-02-09 15:36:08 +01:00
psa_crypto_core.h Make safer_memcmp available to all compile units under PSA 2021-05-07 23:33:50 +02:00
psa_crypto_driver_wrappers.c Add testing of the MAC driver entry points 2021-05-07 23:33:50 +02:00
psa_crypto_driver_wrappers.h Add boilerplate for dispatching MAC operations 2021-05-07 23:32:32 +02:00
psa_crypto_ecp.c Move mbedtls_md_info_from_psa into the mbedtls hash driver 2021-03-15 12:14:40 +01:00
psa_crypto_ecp.h psa: Rework ECDSA sign/verify support in the transparent test driver 2021-02-18 15:45:12 +01:00
psa_crypto_hash.c psa: hash: Fix is_hash_accelerated signature 2021-04-01 10:50:03 +02:00
psa_crypto_hash.h Merge branch 'development' into development_3.0 2021-04-19 10:51:59 +02:00
psa_crypto_invasive.h Rework MAC algorithm / key type validation 2021-03-03 19:58:02 +01:00
psa_crypto_its.h Update documentation 2020-11-25 13:10:50 +01:00
psa_crypto_mac.c Refactor out mac_sign_setup and mac_verify_setup 2021-05-11 11:10:34 +02:00
psa_crypto_mac.h Move is_sign and mac_size checking back to PSA core scope 2021-05-10 11:29:13 +02:00
psa_crypto_random_impl.h Work around MSVC bug with duplicate static declarations 2021-02-16 18:55:05 +01:00
psa_crypto_rsa.c psa: Support RSA signature without MBEDTLS_GENPRIME 2021-05-20 17:08:59 +01:00
psa_crypto_rsa.h psa: Add RSA sign/verify hash support to the transparent test driver 2021-02-18 15:45:06 +01:00
psa_crypto_se.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
psa_crypto_se.h Update documentation 2020-11-25 13:10:50 +01:00
psa_crypto_service_integration.h Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
psa_crypto_slot_management.c Minor code flow improvements 2021-04-16 11:22:17 +02:00
psa_crypto_slot_management.h psa: Fix error code when creating/registering a key with invalid id 2021-04-01 14:05:41 +02:00
psa_crypto_storage.c Merge pull request #3872 from gabor-mezei-arm/3275_use_PSA_ERROR_DATA_INVALID_where_warranted 2021-02-03 20:54:46 +01:00
psa_crypto_storage.h Rename PSA_KEY_SLOT_COUNT to MBEDTLS_PSA_KEY_SLOT_COUNT 2021-02-15 14:26:44 +01:00
psa_its_file.c Correct fix for potential truncation 2021-03-10 17:00:32 +00:00
ripemd160.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
rsa.c Merge pull request #4006 from chris-jones-arm/development 2021-04-28 16:47:29 +02:00
rsa_alt_helpers.c Rename rsa_internal.* to rsa_alt_helpers.* 2021-03-10 12:52:37 +00:00
rsa_alt_helpers.h Rename rsa_internal.* to rsa_alt_helpers.* 2021-03-10 12:52:37 +00:00
sha1.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
sha256.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
sha512.c Remove deprecated things from hashing modules 2021-04-15 12:34:09 +02:00
ssl_cache.c Rename ssl_internal.h to ssl_misc.h 2021-03-10 12:52:37 +00:00
ssl_ciphersuites.c Remove MBEDTLS_ENABLE_WEAK_CIPHERSUITES configuration option 2021-04-27 09:34:14 +02:00
ssl_cli.c Merge pull request #3950 from gilles-peskine-arm/dhm_min_bitlen-bits 2021-04-29 14:55:30 +02:00
ssl_cookie.c Merge pull request #4006 from chris-jones-arm/development 2021-04-28 16:47:29 +02:00
ssl_invasive.h Merge pull request #736 from mpg/cf-varpos-copy-dev-restricted 2020-08-25 14:35:55 +01:00
ssl_misc.h Merge branch 'development_3.0' into drop_old_tls_options 2021-04-15 13:55:20 +02:00
ssl_msg.c Merge pull request #4445 from TRodziewicz/remove_deprecated_things_-_remainder 2021-05-07 10:05:30 +02:00
ssl_srv.c Merge branch 'development_3.0' into drop_old_tls_options 2021-04-15 13:55:20 +02:00
ssl_ticket.c Rename ssl_internal.h to ssl_misc.h 2021-03-10 12:52:37 +00:00
ssl_tls.c Applying current changes 2021-04-30 00:07:04 +02:00
ssl_tls13_keys.c Rename ssl_internal.h to ssl_misc.h 2021-03-10 12:52:37 +00:00
ssl_tls13_keys.h Comment on hardcoding of maximum HKDF key expansion of 255 Bytes 2020-09-16 09:50:17 +01:00
threading.c Explain the usage of is_valid in pthread mutexes 2021-02-22 19:24:03 +01:00
timing.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
version.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
version_features.c Merge pull request #4426 from ronald-cron-arm/remove-enable-weak-ciphersuites 2021-05-04 17:20:36 +02:00
x509.c Merge pull request #3777 from hanno-arm/x509-info-optimization_rebased 2021-04-28 17:31:55 +01:00
x509_create.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
x509_crl.c Merge pull request #3777 from hanno-arm/x509-info-optimization_rebased 2021-04-28 17:31:55 +01:00
x509_crt.c Merge pull request #3777 from hanno-arm/x509-info-optimization_rebased 2021-04-28 17:31:55 +01:00
x509_csr.c Merge pull request #3777 from hanno-arm/x509-info-optimization_rebased 2021-04-28 17:31:55 +01:00
x509write_crt.c Mark basic constraints critical as appropriate. 2020-09-21 18:25:35 -07:00
x509write_csr.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00
xtea.c Update copyright notices to use Linux Foundation guidance 2020-08-19 10:35:41 +02:00