mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-23 03:51:00 +00:00
New test suite for systematically generated operation failure tests
The new test suite psa_crypto_op_fail is intended for systematically generated test cases that ensure that cryptographic operations with invalid parameters fail as expected. I intend invalid parameters to cover things like an invalid algorithm, an algorithm that is incompatible with the operation, a key type that is incompatible with the algorithm, etc. This commit just creates the infrastructure. Subsequent commits will add data generation and test code. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
2a71b72bd5
commit
c05158bf86
|
@ -303,6 +303,20 @@ class KeyGenerate:
|
||||||
kt = crypto_knowledge.KeyType(constr, [curve_family])
|
kt = crypto_knowledge.KeyType(constr, [curve_family])
|
||||||
yield from self.test_cases_for_key_type_key_generation(kt)
|
yield from self.test_cases_for_key_type_key_generation(kt)
|
||||||
|
|
||||||
|
class OpFail:
|
||||||
|
"""Generate test cases for operations that must fail."""
|
||||||
|
#pylint: disable=too-few-public-methods
|
||||||
|
|
||||||
|
def __init__(self, info: Information) -> None:
|
||||||
|
self.constructors = info.constructors
|
||||||
|
|
||||||
|
def all_test_cases(self) -> Iterator[test_case.TestCase]:
|
||||||
|
"""Generate all test cases for operations that must fail."""
|
||||||
|
#pylint: disable=no-self-use
|
||||||
|
return # To do
|
||||||
|
yield #pylint: disable=unreachable
|
||||||
|
|
||||||
|
|
||||||
class StorageKey(psa_storage.Key):
|
class StorageKey(psa_storage.Key):
|
||||||
"""Representation of a key for storage format testing."""
|
"""Representation of a key for storage format testing."""
|
||||||
|
|
||||||
|
@ -720,6 +734,8 @@ class TestGenerator:
|
||||||
lambda info: KeyGenerate(info).test_cases_for_key_generation(),
|
lambda info: KeyGenerate(info).test_cases_for_key_generation(),
|
||||||
'test_suite_psa_crypto_not_supported.generated':
|
'test_suite_psa_crypto_not_supported.generated':
|
||||||
lambda info: NotSupported(info).test_cases_for_not_supported(),
|
lambda info: NotSupported(info).test_cases_for_not_supported(),
|
||||||
|
'test_suite_psa_crypto_op_fail.generated':
|
||||||
|
lambda info: OpFail(info).all_test_cases(),
|
||||||
'test_suite_psa_crypto_storage_format.current':
|
'test_suite_psa_crypto_storage_format.current':
|
||||||
lambda info: StorageFormatForward(info, 0).all_test_cases(),
|
lambda info: StorageFormatForward(info, 0).all_test_cases(),
|
||||||
'test_suite_psa_crypto_storage_format.v0':
|
'test_suite_psa_crypto_storage_format.v0':
|
||||||
|
|
18
tests/suites/test_suite_psa_crypto_op_fail.function
Normal file
18
tests/suites/test_suite_psa_crypto_op_fail.function
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* BEGIN_HEADER */
|
||||||
|
|
||||||
|
#include "psa/crypto.h"
|
||||||
|
#include "test/psa_crypto_helpers.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* END_HEADER */
|
||||||
|
|
||||||
|
/* BEGIN_DEPENDENCIES
|
||||||
|
* depends_on:MBEDTLS_PSA_CRYPTO_C
|
||||||
|
* END_DEPENDENCIES
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* BEGIN_CASE depends_on:NEVER_USED */
|
||||||
|
void test_suites_must_have_at_least_one_function( )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/* END_CASE */
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Automatically generated by generate_psa_tests.py. Do not edit!
|
||||||
|
|
||||||
|
# End of automatically generated file.
|
Loading…
Reference in a new issue