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# bits t = n - 1 down to 0 of bs: acc = 2 acc + bit s (mod L)
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)))

Uses (7)

Used by (2)