Versions in this module Expand all Collapse all v0 v0.0.2 Jan 11, 2023 v0.0.1 Dec 18, 2022 Changes in this version + var ErrDeriveKeyError = errors.New("oprf: key derivation failed") + var ErrEmptyKey = errors.New("oprf: empty key") + var ErrInputValidation = errors.New("oprf: validation of inputs failed") + var ErrInvalidInput = errors.New("oprf: blind input produces an invalid output element") + var ErrInvalidMode = errors.New("oprf: invalid mode") + var ErrInvalidSuite = errors.New("oprf: invalid suite") + var ErrVerify = errors.New("oprf: verifiable OPRF proof verification failed") + type Client struct + func NewClient(s Suite) (*Client, error) + func (c *Client) Blind(inputs [][]byte) (*FinalizeData, *EvaluationRequest, error) + func (c *Client) DeterministicBlind(inputs [][]byte, blinds []*eccgroup.Scalar) (*FinalizeData, *EvaluationRequest, error) + func (c *Client) Finalize(finData *FinalizeData, evalRes *EvaluationResponse) ([][]byte, error) + type EvaluationRequest struct + BlindedElements []*eccgroup.Element + type EvaluationResponse struct + EvaluatedElements []*eccgroup.Element + Proof []byte + type FinalizeData struct + Blinds []*eccgroup.Scalar + EvalRequest *EvaluationRequest + Inputs [][]byte + type ModeType uint8 + const ModeOPRF + const ModePOPRF + const ModeVOPRF + type PartialObliviousClient struct + func NewPartialObliviousClient(s Suite, sPub *PublicKey) (*PartialObliviousClient, error) + func (c *PartialObliviousClient) Blind(inputs [][]byte, info []byte) (*FinalizeData, *EvaluationRequest, error) + func (c *PartialObliviousClient) DeterministicBlind(inputs [][]byte, blinds []*eccgroup.Scalar, info []byte) (*FinalizeData, *EvaluationRequest, error) + func (c *PartialObliviousClient) Finalize(finData *FinalizeData, evalRes *EvaluationResponse, info []byte) ([][]byte, error) + type PartialObliviousServer struct + func NewPartialObliviousServer(s Suite, privKey *PrivateKey) (*PartialObliviousServer, error) + func (s *PartialObliviousServer) BlindEvaluate(evalReq *EvaluationRequest, info []byte) (*EvaluationResponse, error) + func (s *PartialObliviousServer) FinalEvaluate(input, info []byte) ([]byte, error) + func (s *PartialObliviousServer) VerifyFinalize(input, info, exptectedOutput []byte) bool + func (s PartialObliviousServer) PublicKey() *PublicKey + type PrivateKey struct + func DeriveKey(s Suite, mode ModeType, seed, info []byte) (*PrivateKey, error) + func GenerateKey(s Suite) (*PrivateKey, error) + func (priv *PrivateKey) MarshalBinary() ([]byte, error) + func (priv *PrivateKey) MarshalText() ([]byte, error) + func (priv *PrivateKey) Public() *PublicKey + func (priv *PrivateKey) UnmarshalBinary(s Suite, data []byte) error + func (priv *PrivateKey) UnmarshalText(s Suite, text []byte) error + type PublicKey struct + func (pub *PublicKey) MarshalBinary() ([]byte, error) + func (pub *PublicKey) MarshalText() ([]byte, error) + func (pub *PublicKey) UnmarshalBinary(s Suite, data []byte) error + func (pub *PublicKey) UnmarshalText(s Suite, text []byte) error + type Server struct + func NewServer(s Suite, privKey *PrivateKey) (*Server, error) + func (s *Server) BlindEvaluate(evalReq *EvaluationRequest) (*EvaluationResponse, error) + func (s *Server) FinalEvaluate(input []byte) ([]byte, error) + func (s *Server) VerifyFinalize(input, exptectedOutput []byte) bool + func (s Server) PublicKey() *PublicKey + type Suite interface + Group func() eccgroup.Group + Hash func() hash.Hashing + String func() string + SuiteID func() int + var SuiteP256Sha256 Suite = &suite{ ... } + var SuiteP384Sha384 Suite = &suite{ ... } + var SuiteP521Sha512 Suite = &suite{ ... } + var SuiteRistretto255Sha512 Suite = &suite{ ... } + type VerifiableClient struct + func NewVerifiableClient(s Suite, sPub *PublicKey) (*VerifiableClient, error) + func (c *VerifiableClient) Blind(inputs [][]byte) (*FinalizeData, *EvaluationRequest, error) + func (c *VerifiableClient) DeterministicBlind(inputs [][]byte, blinds []*eccgroup.Scalar) (*FinalizeData, *EvaluationRequest, error) + func (c *VerifiableClient) Finalize(finData *FinalizeData, evalRes *EvaluationResponse) ([][]byte, error) + type VerifiableServer struct + func NewVerifiableServer(s Suite, privKey *PrivateKey) (*VerifiableServer, error) + func (s *VerifiableServer) BlindEvaluate(evalReq *EvaluationRequest) (*EvaluationResponse, error) + func (s *VerifiableServer) FinalEvaluate(input []byte) ([]byte, error) + func (s *VerifiableServer) VerifyFinalize(input, exptectedOutput []byte) bool + func (s VerifiableServer) PublicKey() *PublicKey