AESEncryptProof.successful_encrypt_ciphertext_matches_gcm: def of qasim-bend-kit@0.1.0.2 Import: import qasim-bend-kit@0.1.0.2/proof/AES_EncryptProof.bend as AESEncryptProof Lines 229-254 of qasim-bend-kit@0.1.0.2/proof/AES_EncryptProof.bend: https://jend.leeeet.dev/read.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_EncryptProof.bend&start_line=229&end_line=254 import Base import qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend as AES import qasim-bend-kit@0.1.0.2/proof/AES_CoreTagProof.bend as CoreTagProof def successful_encrypt_ciphertext_matches_gcm(+key: AES.SecretKey, +nonce: AES.Nonce, +aad: List<&2, U32>, +plaintext: List<&2, U32>, +envelope: AES.Envelope, aad_valid: {AES.aad_valid(aad) == True{} : Bool}, plaintext_valid: {AES.plaintext_valid(plaintext) == True{} : Bool}, +encrypted: {AES.encrypt(key, nonce, aad, plaintext) == Done{envelope} : Result<&2, &2, AES.Error, AES.Envelope>}) -> {AES.ciphertext(envelope) == CoreTagProof.output_ciphertext(AES.encrypt_valid_output(key, nonce, aad, plaintext)) : List<&2, U32>}: checked = encrypt_checked_with_flags(key, nonce, aad, plaintext, True{}, True{}, aad_valid, plaintext_valid, envelope, encrypted) +output = AES.encrypt_valid_output(key, nonce, aad, plaintext) constructed_matches = Equal.cong( Result<&2, &2, AES.Error, AES.Envelope>, List<&2, U32>, result => result_ciphertext(AES.ciphertext(envelope), result), AES.encrypt_checked(key, nonce, aad, plaintext, True{}, True{}), Done{envelope}, checked) Equal.trans(List<&2, U32>, AES.ciphertext(envelope), AES.ciphertext(AES.envelope_from_gcm_checked(nonce, output)), CoreTagProof.output_ciphertext(output), Equal.sym(List<&2, U32>, AES.ciphertext(AES.envelope_from_gcm_checked(nonce, output)), AES.ciphertext(envelope), constructed_matches), CoreTagProof.envelope_gcm_ciphertext(nonce, output)) Uses (22): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.cong https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.trans https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Result https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=Envelope https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=Error https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=Nonce https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=SecretKey https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=aad_valid https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=ciphertext https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=encrypt https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=encrypt_checked https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=encrypt_valid_output https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=envelope_from_gcm_checked https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/libs/AES256GCM.bend&name=plaintext_valid https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_CoreTagProof.bend&name=envelope_gcm_ciphertext https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_CoreTagProof.bend&name=output_ciphertext https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_EncryptProof.bend&name=encrypt_checked_with_flags https://jend.leeeet.dev/definition.txt?path=qasim-bend-kit@0.1.0.2/proof/AES_EncryptProof.bend&name=result_ciphertext