proof/AES_TraceBridgeProof.bend checks
raw source on the hub · import qasim-bend-kit@0.1.0.2/proof/AES_TraceBridgeProof.bend as AES_TraceBridgeProof
2 imports
import Base import ../libs/AES256GCMCore.bend as Core
Definitions
def expand_input_matches source · line 7 · raw
@+fuel:Nat -> @+key:List<&2, U32> -> @+initial_words:List<&2, U32> -> @+expected:List<&2, U32> -> @initial_match:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_words(key) == initial_words : List<&2, U32>} -> @expanded_match:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_expand.go(fuel, 8, 1, initial_words) == expected : List<&2, U32>} -> {0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_expand.go(fuel, 8, 1, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_words(key)) == expected : List<&2, U32>}Substitute a certified initial word list with a symbolic fuel parameter. The public bridge below compares function aliases before applying the key, avoiding normalization of all 52 rounds merely to compare the aliases.
def expand_key_matches source · line 17 · raw
@+fuel:Nat -> @+key:List<&2, U32> -> @+initial_words:List<&2, U32> -> @+expected:List<&2, U32> -> @+initial_match:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_words(key) == initial_words : List<&2, U32>} -> @+expanded_match:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_expand.go(fuel, 8, 1, initial_words) == expected : List<&2, U32>} -> {0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_expand_key(fuel, key) == expected : List<&2, U32>}
def expansion_alias source · line 26 · raw
{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes256_expand == (+key => 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_expand_key(52n, key)) : @+key:List<&2, U32> -> List<&2, U32>}
def public_expansion_matches source · line 31 · raw
@+key:List<&2, U32> -> @+expected:List<&2, U32> -> @same:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes_expand_key(52n, key) == expected : List<&2, U32>} -> {0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.aes256_expand(key) == expected : List<&2, U32>}