def mac
bend-collections@1.0.0.0 · src/crypto/ed25519/scalar.bend:36
import bend-collections@1.0.0.0/src/crypto/ed25519/scalar.bend as Scalar
import Base
import bend-collections@1.0.0.0/src/crypto/curve25519/field.bend as F
import bend-collections@1.0.0.0/src/crypto/curve25519/x25519.bend as X
36
37def mac(n: Nat, +bs: List<&2, U32>, +s: List<&2, U32>, +acc: List<&2, U32>) -> List<&2, U32>:
38 match n:
39 case 0n:
40 acc
41 case 1n+ +t:
42 +a2 = addm(acc, acc)
43 mac(t, bs, s, addm(a2, F.select(X.kbit(bs, t), F.zero(), s)))