Versions in this module Expand all Collapse all v1 v1.3.71 Apr 15, 2024 Changes in this version + var ErrDeriveKeyPairError = errors.New("oprf: key pair derivation failed") + var ErrInvalidInfo = errors.New("oprf: invalid info") + var ErrInvalidInput = errors.New("oprf: invalid input") + var ErrInvalidMode = errors.New("oprf: invalid mode") + var ErrInvalidProof = errors.New("oprf: proof verification failed") + var ErrInvalidSeed = errors.New("oprf: invalid seed size") + var ErrInvalidSuite = errors.New("oprf: invalid suite") + var ErrInverseZero = errors.New("oprf: inverting a zero value") + var ErrNoKey = errors.New("oprf: must provide a key") + type Blind = group.Scalar + type Blinded = group.Element + type Client struct + func NewClient(s Suite) Client + func (c Client) Blind(inputs [][]byte) (*FinalizeData, *EvaluationRequest, error) + func (c Client) DeterministicBlind(inputs [][]byte, blinds []Blind) (*FinalizeData, *EvaluationRequest, error) + func (c Client) Finalize(f *FinalizeData, e *Evaluation) (outputs [][]byte, err error) + type Evaluated = group.Element + type Evaluation struct + Elements []Evaluated + Proof *dleq.Proof + type EvaluationRequest struct + Elements []Blinded + type FinalizeData struct + func (f FinalizeData) CopyBlinds() []Blind + type Mode = uint8 + const BaseMode + const PartialObliviousMode + const VerifiableMode + type PartialObliviousClient struct + func NewPartialObliviousClient(s Suite, server *PublicKey) PartialObliviousClient + func (c PartialObliviousClient) Blind(inputs [][]byte) (*FinalizeData, *EvaluationRequest, error) + func (c PartialObliviousClient) DeterministicBlind(inputs [][]byte, blinds []Blind) (*FinalizeData, *EvaluationRequest, error) + func (c PartialObliviousClient) Finalize(f *FinalizeData, e *Evaluation, info []byte) (outputs [][]byte, err error) + type PartialObliviousServer struct + func NewPartialObliviousServer(s Suite, key *PrivateKey) PartialObliviousServer + func (s PartialObliviousServer) Evaluate(req *EvaluationRequest, info []byte) (*Evaluation, error) + func (s PartialObliviousServer) FullEvaluate(input, info []byte) (output []byte, err error) + func (s PartialObliviousServer) PublicKey() *PublicKey + func (s PartialObliviousServer) VerifyFinalize(input, info, expectedOutput []byte) bool + type PrivateKey struct + func DeriveKey(s Suite, mode Mode, seed, info []byte) (*PrivateKey, error) + func GenerateKey(s Suite, rnd io.Reader) (*PrivateKey, error) + func (k *PrivateKey) MarshalBinary() ([]byte, error) + func (k *PrivateKey) Public() *PublicKey + func (k *PrivateKey) UnmarshalBinary(s Suite, data []byte) error + type PublicKey struct + func (k *PublicKey) MarshalBinary() ([]byte, error) + func (k *PublicKey) UnmarshalBinary(s Suite, data []byte) error + type Server struct + func NewServer(s Suite, key *PrivateKey) Server + func (s Server) Evaluate(req *EvaluationRequest) (*Evaluation, error) + func (s Server) FullEvaluate(input []byte) (output []byte, err error) + func (s Server) PublicKey() *PublicKey + func (s Server) VerifyFinalize(input, expectedOutput []byte) bool + type Suite interface + Group func() group.Group + Hash func() crypto.Hash + Identifier func() string + var SuiteP256 Suite = params{} + var SuiteP384 Suite = params{} + var SuiteP521 Suite = params{} + var SuiteRistretto255 Suite = params{} + func GetSuite(identifier string) (Suite, error) + type VerifiableClient struct + func NewVerifiableClient(s Suite, server *PublicKey) VerifiableClient + func (c VerifiableClient) Blind(inputs [][]byte) (*FinalizeData, *EvaluationRequest, error) + func (c VerifiableClient) DeterministicBlind(inputs [][]byte, blinds []Blind) (*FinalizeData, *EvaluationRequest, error) + func (c VerifiableClient) Finalize(f *FinalizeData, e *Evaluation) (outputs [][]byte, err error) + type VerifiableServer struct + func NewVerifiableServer(s Suite, key *PrivateKey) VerifiableServer + func (s VerifiableServer) Evaluate(req *EvaluationRequest) (*Evaluation, error) + func (s VerifiableServer) FullEvaluate(input []byte) (output []byte, err error) + func (s VerifiableServer) PublicKey() *PublicKey + func (s VerifiableServer) VerifyFinalize(input, expectedOutput []byte) bool