mirror of
https://github.com/yuzu-mirror/mbedtls.git
synced 2026-04-04 22:19:05 +00:00
Merge pull request #8717 from valeriosetti/issue8030
PSA FFDH: feature macros for parameters
This commit is contained in:
commit
1d7bc1ecdf
17 changed files with 627 additions and 252 deletions
|
|
@ -915,6 +915,18 @@ helper_get_psa_curve_list () {
|
|||
echo "$loc_list"
|
||||
}
|
||||
|
||||
# Helper returning the list of supported DH groups from CRYPTO_CONFIG_H,
|
||||
# without the "PSA_WANT_" prefix. This becomes handy for accelerating DH groups
|
||||
# in the following helpers.
|
||||
helper_get_psa_dh_group_list () {
|
||||
loc_list=""
|
||||
for item in $(sed -n 's/^#define PSA_WANT_\(DH_RFC7919_[0-9]*\).*/\1/p' <"$CRYPTO_CONFIG_H"); do
|
||||
loc_list="$loc_list $item"
|
||||
done
|
||||
|
||||
echo "$loc_list"
|
||||
}
|
||||
|
||||
# Get the list of uncommented PSA_WANT_KEY_TYPE_xxx_ from CRYPTO_CONFIG_H. This
|
||||
# is useful to easily get a list of key type symbols to accelerate.
|
||||
# The function accepts a single argument which is the key type: ECC, DH, RSA.
|
||||
|
|
@ -2383,6 +2395,26 @@ component_test_depends_py_pkalgs_psa () {
|
|||
tests/scripts/depends.py pkalgs
|
||||
}
|
||||
|
||||
component_test_psa_crypto_config_ffdh_2048_only () {
|
||||
msg "build: full config - only DH 2048"
|
||||
|
||||
scripts/config.py full
|
||||
|
||||
# Disable all DH groups other than 2048.
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset PSA_WANT_DH_RFC7919_3072
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset PSA_WANT_DH_RFC7919_4096
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset PSA_WANT_DH_RFC7919_6144
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset PSA_WANT_DH_RFC7919_8192
|
||||
|
||||
make CFLAGS="$ASAN_CFLAGS -Werror" LDFLAGS="$ASAN_CFLAGS"
|
||||
|
||||
msg "test: full config - only DH 2048"
|
||||
make test
|
||||
|
||||
msg "ssl-opt: full config - only DH 2048"
|
||||
tests/ssl-opt.sh -f "ffdh"
|
||||
}
|
||||
|
||||
component_build_no_pk_rsa_alt_support () {
|
||||
msg "build: !MBEDTLS_PK_RSA_ALT_SUPPORT" # ~30s
|
||||
|
||||
|
|
@ -2563,7 +2595,8 @@ component_test_psa_crypto_config_accel_ffdh () {
|
|||
|
||||
# Algorithms and key types to accelerate
|
||||
loc_accel_list="ALG_FFDH \
|
||||
$(helper_get_psa_key_type_list "DH")"
|
||||
$(helper_get_psa_key_type_list "DH") \
|
||||
$(helper_get_psa_dh_group_list)"
|
||||
|
||||
# Configure
|
||||
# ---------
|
||||
|
|
@ -3095,6 +3128,7 @@ config_psa_crypto_config_accel_ecc_ffdh_no_bignum() {
|
|||
# PSA sides, and also disable the key exchanges that depend on DHM.
|
||||
scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_FFDH
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset-all "PSA_WANT_KEY_TYPE_DH_[0-9A-Z_a-z]*"
|
||||
scripts/config.py -f "$CRYPTO_CONFIG_H" unset-all "PSA_WANT_DH_RFC7919_[0-9]*"
|
||||
scripts/config.py unset MBEDTLS_DHM_C
|
||||
scripts/config.py unset MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
|
||||
scripts/config.py unset MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
|
||||
|
|
@ -3149,7 +3183,8 @@ common_test_psa_crypto_config_accel_ecc_ffdh_no_bignum () {
|
|||
if [ "$test_target" = "ECC_DH" ]; then
|
||||
loc_accel_list="$loc_accel_list \
|
||||
ALG_FFDH \
|
||||
$(helper_get_psa_key_type_list "DH")"
|
||||
$(helper_get_psa_key_type_list "DH") \
|
||||
$(helper_get_psa_dh_group_list)"
|
||||
fi
|
||||
|
||||
# Configure
|
||||
|
|
|
|||
|
|
@ -353,6 +353,19 @@ class MbedTLSBase(TLSProgram):
|
|||
ret += ["groups={named_groups}".format(named_groups=named_groups)]
|
||||
return ret
|
||||
|
||||
#pylint: disable=missing-function-docstring
|
||||
def add_ffdh_group_requirements(self, requirement_list):
|
||||
if 'ffdhe2048' in self._named_groups:
|
||||
requirement_list.append('requires_config_enabled PSA_WANT_DH_RFC7919_2048')
|
||||
if 'ffdhe3072' in self._named_groups:
|
||||
requirement_list.append('requires_config_enabled PSA_WANT_DH_RFC7919_2048')
|
||||
if 'ffdhe4096' in self._named_groups:
|
||||
requirement_list.append('requires_config_enabled PSA_WANT_DH_RFC7919_2048')
|
||||
if 'ffdhe6144' in self._named_groups:
|
||||
requirement_list.append('requires_config_enabled PSA_WANT_DH_RFC7919_2048')
|
||||
if 'ffdhe8192' in self._named_groups:
|
||||
requirement_list.append('requires_config_enabled PSA_WANT_DH_RFC7919_2048')
|
||||
|
||||
def pre_checks(self):
|
||||
ret = ['requires_config_enabled MBEDTLS_DEBUG_C',
|
||||
'requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED']
|
||||
|
|
@ -365,13 +378,14 @@ class MbedTLSBase(TLSProgram):
|
|||
'requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT')
|
||||
|
||||
ec_groups = ['secp256r1', 'secp384r1', 'secp521r1', 'x25519', 'x448']
|
||||
ffdh_groups = ['ffdhe2048']
|
||||
ffdh_groups = ['ffdhe2048', 'ffdhe3072', 'ffdhe4096', 'ffdhe6144', 'ffdhe8192']
|
||||
|
||||
if any(x in ec_groups for x in self._named_groups):
|
||||
ret.append('requires_config_enabled PSA_WANT_ALG_ECDH')
|
||||
|
||||
if any(x in ffdh_groups for x in self._named_groups):
|
||||
ret.append('requires_config_enabled PSA_WANT_ALG_FFDH')
|
||||
self.add_ffdh_group_requirements(ret)
|
||||
|
||||
return ret
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue