Bignum tests: add default datasets
Add data for small values, 192 bit and 1024 bit values, primes, non-primes odd, even, and some typical corner cases. All subclasses override this for the time being so there are no changes to the test cases. Signed-off-by: Janos Follath <janos.follath@arm.com>
This commit is contained in:
parent
b2a850c746
commit
dac44e6021
2 changed files with 30 additions and 2 deletions
|
@ -20,6 +20,7 @@ from itertools import chain
|
||||||
|
|
||||||
from . import test_case
|
from . import test_case
|
||||||
from . import test_data_generation
|
from . import test_data_generation
|
||||||
|
from .bignum_data import INPUTS_DEFAULT, MODULI_DEFAULT
|
||||||
|
|
||||||
T = TypeVar('T') #pylint: disable=invalid-name
|
T = TypeVar('T') #pylint: disable=invalid-name
|
||||||
|
|
||||||
|
@ -90,7 +91,7 @@ class OperationCommon(test_data_generation.BaseTest):
|
||||||
values are 1 and 2.
|
values are 1 and 2.
|
||||||
"""
|
"""
|
||||||
symbol = ""
|
symbol = ""
|
||||||
input_values = [] # type: List[str]
|
input_values = INPUTS_DEFAULT # type: List[str]
|
||||||
input_cases = [] # type: List[Any]
|
input_cases = [] # type: List[Any]
|
||||||
unique_combinations_only = True
|
unique_combinations_only = True
|
||||||
input_styles = ["variable", "fixed", "arch_split"] # type: List[str]
|
input_styles = ["variable", "fixed", "arch_split"] # type: List[str]
|
||||||
|
@ -240,7 +241,7 @@ class OperationCommon(test_data_generation.BaseTest):
|
||||||
class ModOperationCommon(OperationCommon):
|
class ModOperationCommon(OperationCommon):
|
||||||
#pylint: disable=abstract-method
|
#pylint: disable=abstract-method
|
||||||
"""Target for bignum mod_raw test case generation."""
|
"""Target for bignum mod_raw test case generation."""
|
||||||
moduli = [] # type: List[str]
|
moduli = MODULI_DEFAULT # type: List[str]
|
||||||
|
|
||||||
def __init__(self, val_n: str, val_a: str, val_b: str = "0",
|
def __init__(self, val_n: str, val_a: str, val_b: str = "0",
|
||||||
bits_in_limb: int = 64) -> None:
|
bits_in_limb: int = 64) -> None:
|
||||||
|
|
|
@ -90,6 +90,33 @@ RANDOM_1024_BIT_SEED_4_NO5 = ("53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8"
|
||||||
"4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc"
|
"4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc"
|
||||||
"52d32377e78131c1")
|
"52d32377e78131c1")
|
||||||
|
|
||||||
|
# Adding 192 bit and 1024 bit numbers because these are the shortest required
|
||||||
|
# for ECC and RSA respectively.
|
||||||
|
INPUTS_DEFAULT = [
|
||||||
|
"0", "1", # corner cases
|
||||||
|
"2", "3", # small primes
|
||||||
|
"4", # non-prime even
|
||||||
|
"38", # small random
|
||||||
|
SAFE_PRIME_192_BIT_SEED_1, # prime
|
||||||
|
RANDOM_192_BIT_SEED_2_NO1, # not a prime
|
||||||
|
RANDOM_192_BIT_SEED_2_NO2, # not a prime
|
||||||
|
SAFE_PRIME_1024_BIT_SEED_3, # prime
|
||||||
|
RANDOM_1024_BIT_SEED_4_NO1, # not a prime
|
||||||
|
RANDOM_1024_BIT_SEED_4_NO3, # not a prime
|
||||||
|
RANDOM_1024_BIT_SEED_4_NO2, # largest (not a prime)
|
||||||
|
]
|
||||||
|
|
||||||
|
# Only odd moduli are present as in the new bignum code only odd moduli are
|
||||||
|
# supported for now.
|
||||||
|
MODULI_DEFAULT = [
|
||||||
|
"53", # safe prime
|
||||||
|
"45", # non-prime
|
||||||
|
SAFE_PRIME_192_BIT_SEED_1, # safe prime
|
||||||
|
RANDOM_192_BIT_SEED_2_NO4, # not a prime
|
||||||
|
SAFE_PRIME_1024_BIT_SEED_3, # safe prime
|
||||||
|
RANDOM_1024_BIT_SEED_4_NO5, # not a prime
|
||||||
|
]
|
||||||
|
|
||||||
def __gen_safe_prime(bits, seed):
|
def __gen_safe_prime(bits, seed):
|
||||||
'''
|
'''
|
||||||
Generate a safe prime.
|
Generate a safe prime.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue