~/bend-docscommunity

proof/AES_IdentityProof.bend checks

raw source on the hub · import qasim-bend-kit@0.1.0.2/proof/AES_IdentityProof.bend as AES_IdentityProof

8 imports
import Base
import ../libs/AES256GCM.bend as AES
import ../libs/AES256GCMCore.bend as Core
import ./AES_EnvelopeProof.bend as Encoding
import ./AES_ConstructorProof.bend as Constructor
import ./AES_KnownAnswerProof.bend as Known
import ./AES_MaskedXorProof.bend as Masked
import ./AES_StringEqProof.bend as Logic

Definitions

def mask_word_same source · line 10 · raw

@+value:U32 -> {0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_mask(value, 255) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.gcm_hex_mask(value, 255) : U32}

def mask_same source · line 15 · raw

@+bytes:List<&2, U32> -> {0xaca801afcf3e822677fd6d06895d2c71/proof/AES_EnvelopeProof.aes_hex_mask_bytes(bytes) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCMCore.gcm_mask_bytes(bytes) : List<&2, U32>}

def mask_identity source · line 27 · raw

@+bytes:List<&2, U32> -> @valid:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.bytes_valid(bytes) == True{} : Bool} -> {0xaca801afcf3e822677fd6d06895d2c71/proof/AES_EnvelopeProof.aes_hex_mask_bytes(bytes) == bytes : List<&2, U32>}

def decoded_or_empty source · line 34 · raw

@value:Maybe<&2, List<&2, U32>> -> List<&2, U32>

def hex_injective source · line 39 · raw

@+first:List<&2, U32> -> @+second:List<&2, U32> -> @first_valid:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.bytes_valid(first) == True{} : Bool} -> @second_valid:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.bytes_valid(second) == True{} : Bool} -> @same:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_bytes(first) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_bytes(second) : String} -> {first == second : List<&2, U32>}

def fields source · line 60 · raw

@+envelope:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> List<&2, String>

def optional_text source · line 65 · raw

@value:Maybe<&2, String> -> String

def field_text source · line 70 · raw

@index:Nat -> @parts:List<&2, String> -> String

def result_text source · line 73 · raw

@value:Result<&2, &2, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Error, String> -> String

def fields_equal source · line 78 · raw

@+first:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> @+second:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> @same:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode(first) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode(second) : String} -> {fields(first) == fields(second) : List<&2, String>}

def fixed_hex_equal source · line 89 · raw

@+n:Nat -> @+first:List<&2, U32> -> @+second:List<&2, U32> -> @first_size:{List.length(&2, U32, first) == n : Nat} -> @second_size:{List.length(&2, U32, second) == n : Nat} -> @same:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_bytes(0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.fixed_bytes(n, first)) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_bytes(0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.fixed_bytes(n, second)) : String} -> {0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_bytes(first) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.hex_bytes(second) : String}

def encode_injective source · line 103 · raw

@+first:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> @+second:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> @same:{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode(first) == 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode(second) : String} -> {first == second : 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope}

def exact_roundtrip_result source · line 140 · raw

@+envelope:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> @result:Result<&2, &2, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Error, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope> -> @encoded:{Result.map(&2, &2, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Error, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope, String, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode, result) == Done{0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode(envelope)} : Result<&2, &2, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Error, String>} -> {result == Done{envelope} : Result<&2, &2, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Error, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope>}

def exact_roundtrip source · line 159 · raw

@+envelope:0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope -> {0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.parse(0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.encode(envelope)) == Done{envelope} : Result<&2, &2, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Error, 0xaca801afcf3e822677fd6d06895d2c71/libs/AES256GCM.Envelope>}