def AdSeqiv.iv
import bend-osdev-aead@0.1.0.0/seqiv.bend as Seqivimport 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))