def encode_n

bend-collections-laws-crypto@1.0.0.0 · spec/crypto/ed25519.bend:120

import bend-collections-laws-crypto@1.0.0.0/spec/crypto/ed25519.bend as Ed25519
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/curve25519/field.bend as FS
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/curve25519/x25519.bend as SX

120# n = 32 bytes
121def encode_n(n: Nat, +p: Nat, a: EPt) -> List<&2, U32>:
122  match a:
123    case EPt{+x, +y, +z, t}:
124      +zi = FS.finv(p, z)
125      set_msb(SX.le_bytes(n, FS.fmul(p, y, zi)), U32.from_nat(Nat.mod(FS.fmul(p, x, zi), 2n)))

Uses (10)

Used by (3)