def sign_r
bend-collections@1.0.0.0 · spec/crypto/secp256k1/schnorr.bend:130
import bend-collections@1.0.0.0/spec/crypto/secp256k1/schnorr.bend as Schnorr
import Base
import bend-collections@1.0.0.0/spec/crypto/secp256k1/field.bend as FS
import bend-collections@1.0.0.0/spec/crypto/secp256k1/curve.bend as CV
130
131
132def sign_r(+one: Nat, +d: Nat, +pb: List<&2, U32>, +m: List<&2, U32>, +k0: Nat, ra: CV.SAffine) -> Maybe<&2, List<&2, U32>>:
133 match ra:
134 case CV.SAffine{rx, +ry}:
135 +k = even(n(one), ry, k0)
136 +rb = bytes32(rx)
137 +e = Nat.mod(CV.os2ip(tagged(tag_challenge(), cat(rb, cat(pb, m)))), n(one))
138 sign_fin(one, pb, m, cat(rb, bytes32(FS.madd(n(one), k, FS.mmul(n(one), e, d)))))