mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-23 03:15:43 +01:00
Short-tag AEAD with the nominal length are encoded as nominal AEAD
`PSA_ALG_AEAD_WITH_SHORTENED_TAG(aead_alg, len) == aead_alg` when `len == PSA_AEAD_TAG_LENGTH(aead_alg)`. So skip this case when testing the printing of constants. This fixes one test case due to the way arguments of `PSA_ALG_AEAD_WITH_SHORTENED_TAG` are enumerated (all algorithms are tested for a value of `len` which isn't problematic, and all values of `len` are tested for one algorithm). Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
9d3706fb7f
commit
041388af2a
@ -77,6 +77,22 @@ def normalize(expr: str) -> str:
|
|||||||
"""
|
"""
|
||||||
return re.sub(NORMALIZE_STRIP_RE, '', expr)
|
return re.sub(NORMALIZE_STRIP_RE, '', expr)
|
||||||
|
|
||||||
|
ALG_TRUNCATED_TO_SELF_RE = \
|
||||||
|
re.compile(r'PSA_ALG_AEAD_WITH_SHORTENED_TAG\('
|
||||||
|
r'PSA_ALG_(?:CCM|CHACHA20_POLY1305|GCM)'
|
||||||
|
r', *16\)\Z')
|
||||||
|
|
||||||
|
def is_simplifiable(expr: str) -> bool:
|
||||||
|
"""Determine whether an expression is simplifiable.
|
||||||
|
|
||||||
|
Simplifiable expressions can't be output in their input form, since
|
||||||
|
the output will be the simple form. Therefore they must be excluded
|
||||||
|
from testing.
|
||||||
|
"""
|
||||||
|
if ALG_TRUNCATED_TO_SELF_RE.match(expr):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def collect_values(inputs: InputsForTest,
|
def collect_values(inputs: InputsForTest,
|
||||||
type_word: str,
|
type_word: str,
|
||||||
include_path: Optional[str] = None,
|
include_path: Optional[str] = None,
|
||||||
@ -87,7 +103,9 @@ def collect_values(inputs: InputsForTest,
|
|||||||
value is a string representation of its integer value.
|
value is a string representation of its integer value.
|
||||||
"""
|
"""
|
||||||
names = inputs.get_names(type_word)
|
names = inputs.get_names(type_word)
|
||||||
expressions = sorted(inputs.generate_expressions(names))
|
expressions = sorted(expr
|
||||||
|
for expr in inputs.generate_expressions(names)
|
||||||
|
if not is_simplifiable(expr))
|
||||||
values = run_c(type_word, expressions,
|
values = run_c(type_word, expressions,
|
||||||
include_path=include_path, keep_c=keep_c)
|
include_path=include_path, keep_c=keep_c)
|
||||||
return expressions, values
|
return expressions, values
|
||||||
|
Loading…
Reference in New Issue
Block a user