Versions in this module Expand all Collapse all v0 v0.1.1 Feb 10, 2019 v0.1.0 Dec 27, 2018 Changes in this version + const ErrBadClientProof + const ErrCalcVerifier + const ErrInvalidPrime + const ErrInvalidPrimitiveRoot + const ErrNoEphemeralKeys + const ErrNoGroupParams + const ErrNoHash + const ErrNoPremasterKey + const ErrPublicKeyModuloZero + const Group1024 + const Group2048 + const Group4096 + const Group8192 + type AuthClient interface + Auth func() (string, *big.Int) + Enroll func() (string, string, *big.Int, error) + ProveIdentity func(*big.Int, string) (*big.Int, error) + type AuthServer interface + ProcessAuth func(u, sa string, A, v *big.Int) (*big.Int, string, error) + ProcessEnroll func(u, s string, v *big.Int) bool + ProcessProof func(cp *big.Int) (*big.Int, error) + type Client struct + func NewClient(h crypto.Hash, g *Group, u, p string) (*Client, error) + func NewDefaultClient(u, p string) (*Client, error) + func (c *Client) Auth() (string, *big.Int) + func (c *Client) Enroll() (string, string, *big.Int, error) + func (c *Client) IsProofValid(i *big.Int) bool + func (c *Client) ProveIdentity(A *big.Int, s string) (*big.Int, error) + type Error string + func (e Error) Error() string + type Group struct + G *big.Int + Hex string + N *big.Int + func NewGroup(s string) (*Group, error) + func (g *Group) CalcN() (*big.Int, error) + type SRP struct + G *big.Int + H crypto.Hash + I string + N *big.Int + PremasterKey *big.Int + S string + Secret *big.Int + func NewDefaultSRP() (*SRP, error) + func NewSRP(h crypto.Hash, g *Group) (*SRP, error) + type Server struct + func NewDefaultServer() (*Server, error) + func NewServer(h crypto.Hash, g *Group) (*Server, error) + func (s *Server) IsProofValid(i *big.Int) bool + func (s *Server) ProcessAuth(u, sa string, A, v *big.Int) (*big.Int, string, error) + func (s *Server) ProcessEnroll(u, sa string, v *big.Int) bool + func (s *Server) ProcessProof(cp *big.Int) (*big.Int, error)