def sign_p

bend-collections-laws-crypto@1.0.0.0 · src/crypto/secp256k1/schnorr.bend:136

import bend-collections-laws-crypto@1.0.0.0/src/crypto/secp256k1/schnorr.bend as Schnorr
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/secp256k1/scalar.bend as S
import bend-collections-laws-crypto@1.0.0.0/src/crypto/secp256k1/point.bend as P
import bend-collections-laws-crypto@1.0.0.0/src/crypto/secp256k1/bytes.bend as B

136def sign_p(+d0: List<&2, Nat>, +m: List<&2, U32>, +aux: List<&2, U32>, pa: P.Affine) -> Maybe<&2, List<&2, U32>>:
137  match pa:
138    case P.Affine{px, +py}:
139      +d = S.select(is_odd(py), S.neg(d0), d0)
140      +pb = B.to_be(px)
141      +t = xor_bytes(B.to_be(d), tagged(tag_aux(), aux))
142      +k0 = S.reduce(B.of_be(tagged(tag_nonce(), cat(t, cat(pb, m)))))
143      sign_nz(d, pb, m, k0, Bool.not(S.is_zero(k0)))

Uses (19)

Used by (3)