mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-04-07 13:22:46 +00:00
Refactoring: new method Algorithm.is_valid_for_operation
No intended behavior change. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
ecaa7ca507
commit
72f41562f2
@ -214,9 +214,7 @@ class KeyType:
|
|||||||
This function does not currently handle key derivation or PAKE.
|
This function does not currently handle key derivation or PAKE.
|
||||||
"""
|
"""
|
||||||
#pylint: disable=too-many-branches,too-many-return-statements
|
#pylint: disable=too-many-branches,too-many-return-statements
|
||||||
if alg.is_wildcard:
|
if not alg.is_valid_for_operation():
|
||||||
return False
|
|
||||||
if alg.is_invalid_truncation():
|
|
||||||
return False
|
return False
|
||||||
if self.head == 'HMAC' and alg.head == 'HMAC':
|
if self.head == 'HMAC' and alg.head == 'HMAC':
|
||||||
return True
|
return True
|
||||||
@ -498,6 +496,19 @@ class Algorithm:
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def is_valid_for_operation(self) -> bool:
|
||||||
|
"""Whether this algorithm construction is valid for an operation.
|
||||||
|
|
||||||
|
This function assumes that the algorithm is constructed in a
|
||||||
|
"grammatically" correct way, and only rejects semantically invalid
|
||||||
|
combinations.
|
||||||
|
"""
|
||||||
|
if self.is_wildcard:
|
||||||
|
return False
|
||||||
|
if self.is_invalid_truncation():
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
def can_do(self, category: AlgorithmCategory) -> bool:
|
def can_do(self, category: AlgorithmCategory) -> bool:
|
||||||
"""Whether this algorithm can perform operations in the given category.
|
"""Whether this algorithm can perform operations in the given category.
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user