def open_nonce_bad

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/aes/proof.bend:62

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/proof.bend as Proof
import Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/logic.bend as L
import bend-collections-laws-crypto@1.0.0.0/src/crypto/aes/aes.bend as A
import bend-collections-laws-crypto@1.0.0.0/src/crypto/aes/gcm.bend as GI

62def open_nonce_bad(+sched: A.Schedule, +nonce: List<&2, U32>, +h: {Nat.is_eq(List.length(&2, U32, nonce), 12n) == False{} : Bool}, +aad: List<&2, U32>, +ct: List<&2, U32>) -> {GI.open_nonce(sched, nonce, aad, ct) == None{} : Maybe<&2, List<&2, U32>>}:
63  match nonce:
64    case Nil{}:
65      {==}
66    case n0 <> Nil{}:
67      {==}
68    case n0 <> n1 <> Nil{}:
69      {==}
70    case n0 <> n1 <> n2 <> Nil{}:
71      {==}
72    case n0 <> n1 <> n2 <> n3 <> Nil{}:
73      {==}
74    case n0 <> n1 <> n2 <> n3 <> n4 <> Nil{}:
75      {==}
76    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> Nil{}:
77      {==}
78    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> Nil{}:
79      {==}
80    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> n7 <> Nil{}:
81      {==}
82    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> n7 <> n8 <> Nil{}:
83      {==}
84    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> n7 <> n8 <> n9 <> Nil{}:
85      {==}
86    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> n7 <> n8 <> n9 <> n10 <> Nil{}:
87      {==}
88    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> n7 <> n8 <> n9 <> n10 <> n11 <> Nil{}:
89      Empty.absurd({GI.open_nonce(sched, [n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11], aad, ct) == None{} : Maybe<&2, List<&2, U32>>}, L.true_false(h))
90    case n0 <> n1 <> n2 <> n3 <> n4 <> n5 <> n6 <> n7 <> n8 <> n9 <> n10 <> n11 <> n12 <> rest:
91      {==}

Uses (10)

Used by (1)