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
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)))