def AdSeqiv.iv

bend-osdev-aead@0.1.0.0 · seqiv.bend:39

import bend-osdev-aead@0.1.0.0/seqiv.bend as Seqiv
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-crypto@0.1.0.0/octets.bend as O

39# The IV of sequence number seq (big-endian bytes, at most as long as the
40# salt): the salt XOR seq, right-aligned
41def AdSeqiv.iv(~KA: Data, k: AdSeqivKey<KA>, +seq: B.Octets) -> B.Octets:
42  match k:
43    case AdSeqivKey{ka, +salt}:
44      O.CrOct.xor(salt, B.Octets.append(B.Octets.zeros(Nat.sub(B.Octets.len(salt), B.Octets.len(seq))), seq))

Uses (7)

Used by (2)