Laws.involution: law of bend-collections-laws-crypto@1.0.0.0 Import: import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/chacha/laws.bend as Laws Lines 117-124 of bend-collections-laws-crypto@1.0.0.0/proofs/crypto/chacha/laws.bend: https://jend.leeeet.dev/read.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/chacha/laws.bend&start_line=117&end_line=124 import Base import bend-collections-laws-crypto@1.0.0.0/src/crypto/chacha/chacha20.bend as I # Decryption is encryption: applying the cipher twice is the identity. law involution: for +r: Nat for +key: List<&2, U32> for +counter: U32 for +nonce: List<&2, U32> for +plaintext: List<&2, U32> {I.encrypt_rounds(r, key, counter, nonce, I.encrypt_rounds(r, key, counter, nonce, plaintext)) == plaintext : List<&2, U32>} Uses (9): 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=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/chacha/involution.bend&name=involution https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/chacha/stream.bend&name=encrypt_correct https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/spec/crypto/chacha.bend&name=encrypt_rounds https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/src/crypto/chacha/chacha20.bend&name=encrypt_rounds