Files
sonr/internal/crypto/ted25519/frost/challenge_derive.go
T

28 lines
671 B
Go
Raw Normal View History

//
// Copyright Coinbase, Inc. All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
package frost
import (
"crypto/sha512"
2024-12-24 11:10:20 -05:00
"github.com/onsonr/sonr/internal/crypto/core/curves"
)
type ChallengeDerive interface {
DeriveChallenge(msg []byte, pubKey curves.Point, r curves.Point) (curves.Scalar, error)
}
type Ed25519ChallengeDeriver struct{}
func (ed Ed25519ChallengeDeriver) DeriveChallenge(msg []byte, pubKey curves.Point, r curves.Point) (curves.Scalar, error) {
h := sha512.New()
_, _ = h.Write(r.ToAffineCompressed())
_, _ = h.Write(pubKey.ToAffineCompressed())
_, _ = h.Write(msg)
return new(curves.ScalarEd25519).SetBytesWide(h.Sum(nil))
}