law Api256.forgery
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/aes/laws.bend as Lawsimport Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/aesgcm.bend as GCM
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/aes/gcm.bend as G
379# A wrong tag gives None.
380law Api256.forgery:
381 for +key: List<&2, U32>
382 for +h: {List.length(&2, U32, key) == 32n : Nat}
383 for +n0: U32
384 for +n1: U32
385 for +n2: U32
386 for +n3: U32
387 for +n4: U32
388 for +n5: U32
389 for +n6: U32
390 for +n7: U32
391 for +n8: U32
392 for +n9: U32
393 for +n10: U32
394 for +n11: U32
395 for +aad: List<&2, U32>
396 for +c: List<&2, U32>
397 for +t0: U32
398 for +t1: U32
399 for +t2: U32
400 for +t3: U32
401 for +t4: U32
402 for +t5: U32
403 for +t6: U32
404 for +t7: U32
405 for +t8: U32
406 for +t9: U32
407 for +t10: U32
408 for +t11: U32
409 for +t12: U32
410 for +t13: U32
411 for +t14: U32
412 for +t15: U32
413 for ne: {[t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15] != G.aes_tag(key, [n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11], aad, c) : List<&2, U32>}
414 {GCM.aes256_gcm_decrypt(key, [n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11], aad, List.append(&2, U32, c, [t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15])) == None{} : Maybe<&2, List<&2, U32>>}
Uses (10)
Used by (0)
No other definition uses this definition.