AESEncryptProof.successful_encrypt_plaintext_valid: 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 149-188 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=149&end_line=188 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_ZipLengthProof.bend as ZipLengthProof def successful_encrypt_plaintext_valid(+key: AES.SecretKey, +nonce: AES.Nonce, +aad: List<&2, U32>, +plaintext: List<&2, U32>, +aad_flag: Bool, +plaintext_flag: Bool, aad_ok: {AES.aad_valid(aad) == aad_flag : Bool}, plaintext_ok: {AES.plaintext_valid(plaintext) == plaintext_flag : Bool}, +envelope: AES.Envelope, encrypted: {AES.encrypt(key, nonce, aad, plaintext) == Done{envelope} : Result<&2, &2, AES.Error, AES.Envelope>}) -> {plaintext_flag == True{} : Bool}: match aad_flag plaintext_flag: case True{} True{}: {==} case True{} False{}: checked = encrypt_checked_with_flags(key, nonce, aad, plaintext, aad_flag, plaintext_flag, aad_ok, plaintext_ok, envelope, encrypted) Equal.trans(Bool, False{}, Result.is_done(&2, &2, AES.Error, AES.Envelope, AES.encrypt_checked(key, nonce, aad, plaintext, aad_flag, plaintext_flag)), True{}, {==}, Equal.cong(Result<&2, &2, AES.Error, AES.Envelope>, Bool, result => Result.is_done(&2, &2, AES.Error, AES.Envelope, result), AES.encrypt_checked(key, nonce, aad, plaintext, aad_flag, plaintext_flag), Done{envelope}, checked)) case False{} _: checked = encrypt_checked_with_flags(key, nonce, aad, plaintext, aad_flag, plaintext_flag, aad_ok, plaintext_ok, envelope, encrypted) Empty.absurd({plaintext_flag == True{} : Bool}, ZipLengthProof.false_true(Equal.trans(Bool, False{}, Result.is_done(&2, &2, AES.Error, AES.Envelope, AES.encrypt_checked(key, nonce, aad, plaintext, aad_flag, plaintext_flag)), True{}, {==}, Equal.cong(Result<&2, &2, AES.Error, AES.Envelope>, Bool, result => Result.is_done(&2, &2, AES.Error, AES.Envelope, result), AES.encrypt_checked(key, nonce, aad, plaintext, aad_flag, plaintext_flag), Done{envelope}, checked)))) Uses (18): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Empty.absurd 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.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=Result.is_done 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=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=plaintext_valid 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_ZipLengthProof.bend&name=false_true