TrinityCore
Trinity::Crypto::SRP::SRP6 Class Referenceabstract

#include <SRP6.h>

+ Inheritance diagram for Trinity::Crypto::SRP::SRP6:

Classes

struct  ForRegistrationTag
 

Public Member Functions

 SRP6 (BigNumber const &i, Salt const &salt, Verifier const &verifier, BigNumber const &N, BigNumber const &g, BigNumber const &k)
 
 SRP6 (ForRegistrationTag)
 
 SRP6 (SRP6 const &)=delete
 
 SRP6 (SRP6 &&)=delete
 
SRP6operator= (SRP6 const &)=delete
 
SRP6operator= (SRP6 &&)=delete
 
virtual ~SRP6 ()=default
 
virtual BigNumber const & GetN () const =0
 
virtual BigNumber const & Getg () const =0
 
Optional< BigNumberVerifyClientEvidence (BigNumber const &A, BigNumber const &clientM1)
 
virtual BigNumber CalculateServerEvidence (BigNumber const &A, BigNumber const &clientM1, BigNumber const &K) const =0
 
bool CheckCredentials (std::string const &username, std::string const &password) const
 

Static Public Member Functions

template<typename Impl >
static std::pair< Salt, VerifierMakeRegistrationData (std::string const &username, std::string const &password)
 

Public Attributes

Salt const s
 
BigNumber const B
 

Protected Member Functions

BigNumber CalculatePublicB (BigNumber const &N, BigNumber const &g, BigNumber const &k) const
 
virtual BigNumber CalculateX (std::string const &username, std::string const &password, Salt const &salt) const =0
 
Verifier CalculateVerifier (std::string const &username, std::string const &password, Salt const &salt) const
 
virtual Optional< BigNumberDoVerifyClientEvidence (BigNumber const &A, BigNumber const &clientM1)=0
 

Static Protected Member Functions

static BigNumber CalculatePrivateB (BigNumber const &N)
 

Protected Attributes

BigNumber const I
 
BigNumber const b
 
BigNumber const v
 

Private Attributes

bool _used = false
 

Detailed Description

Definition at line 37 of file SRP6.h.

Constructor & Destructor Documentation

◆ SRP6() [1/4]

Trinity::Crypto::SRP::SRP6::SRP6 ( BigNumber const &  i,
Salt const &  salt,
Verifier const &  verifier,
BigNumber const &  N,
BigNumber const &  g,
BigNumber const &  k 
)
explicit

Definition at line 36 of file SRP6.cpp.

◆ SRP6() [2/4]

Trinity::Crypto::SRP::SRP6::SRP6 ( ForRegistrationTag  )
explicit

Definition at line 41 of file SRP6.cpp.

◆ SRP6() [3/4]

Trinity::Crypto::SRP::SRP6::SRP6 ( SRP6 const &  )
delete

◆ SRP6() [4/4]

Trinity::Crypto::SRP::SRP6::SRP6 ( SRP6 &&  )
delete

◆ ~SRP6()

virtual Trinity::Crypto::SRP::SRP6::~SRP6 ( )
virtualdefault

Member Function Documentation

◆ CalculatePrivateB()

BigNumber Trinity::Crypto::SRP::SRP6::CalculatePrivateB ( BigNumber const &  N)
staticprotected

Definition at line 59 of file SRP6.cpp.

+ Here is the call graph for this function:

◆ CalculatePublicB()

BigNumber Trinity::Crypto::SRP::SRP6::CalculatePublicB ( BigNumber const &  N,
BigNumber const &  g,
BigNumber const &  k 
) const
protected

Definition at line 67 of file SRP6.cpp.

+ Here is the call graph for this function:

◆ CalculateServerEvidence()

virtual BigNumber Trinity::Crypto::SRP::SRP6::CalculateServerEvidence ( BigNumber const &  A,
BigNumber const &  clientM1,
BigNumber const &  K 
) const
pure virtual

◆ CalculateVerifier()

Verifier Trinity::Crypto::SRP::SRP6::CalculateVerifier ( std::string const &  username,
std::string const &  password,
Salt const &  salt 
) const
protected

Definition at line 72 of file SRP6.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CalculateX()

virtual BigNumber Trinity::Crypto::SRP::SRP6::CalculateX ( std::string const &  username,
std::string const &  password,
Salt const &  salt 
) const
protectedpure virtual

Implemented in Trinity::Crypto::SRP::BnetSRP6v1Base, Trinity::Crypto::SRP::BnetSRP6v2Base, and Trinity::Crypto::SRP::GruntSRP6.

+ Here is the caller graph for this function:

◆ CheckCredentials()

bool Trinity::Crypto::SRP::SRP6::CheckCredentials ( std::string const &  username,
std::string const &  password 
) const

Definition at line 54 of file SRP6.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoVerifyClientEvidence()

virtual Optional< BigNumber > Trinity::Crypto::SRP::SRP6::DoVerifyClientEvidence ( BigNumber const &  A,
BigNumber const &  clientM1 
)
protectedpure virtual

Implemented in Trinity::Crypto::SRP::BnetSRP6Base, and Trinity::Crypto::SRP::GruntSRP6.

+ Here is the caller graph for this function:

◆ Getg()

virtual BigNumber const & Trinity::Crypto::SRP::SRP6::Getg ( ) const
pure virtual

Implemented in Trinity::Crypto::SRP::BnetSRP6v1Base, Trinity::Crypto::SRP::BnetSRP6v2Base, and Trinity::Crypto::SRP::GruntSRP6.

+ Here is the caller graph for this function:

◆ GetN()

virtual BigNumber const & Trinity::Crypto::SRP::SRP6::GetN ( ) const
pure virtual

Implemented in Trinity::Crypto::SRP::BnetSRP6v1Base, Trinity::Crypto::SRP::BnetSRP6v2Base, and Trinity::Crypto::SRP::GruntSRP6.

+ Here is the caller graph for this function:

◆ MakeRegistrationData()

template<typename Impl >
static std::pair< Salt, Verifier > Trinity::Crypto::SRP::SRP6::MakeRegistrationData ( std::string const &  username,
std::string const &  password 
)
inlinestatic

Definition at line 61 of file SRP6.h.

◆ operator=() [1/2]

SRP6 & Trinity::Crypto::SRP::SRP6::operator= ( SRP6 &&  )
delete

◆ operator=() [2/2]

SRP6 & Trinity::Crypto::SRP::SRP6::operator= ( SRP6 const &  )
delete

◆ VerifyClientEvidence()

Optional< BigNumber > Trinity::Crypto::SRP::SRP6::VerifyClientEvidence ( BigNumber const &  A,
BigNumber const &  clientM1 
)

Definition at line 46 of file SRP6.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ _used

bool Trinity::Crypto::SRP::SRP6::_used = false
private

Definition at line 90 of file SRP6.h.

◆ b

BigNumber const Trinity::Crypto::SRP::SRP6::b
protected

Definition at line 83 of file SRP6.h.

◆ B

BigNumber const Trinity::Crypto::SRP::SRP6::B

Definition at line 87 of file SRP6.h.

◆ I

BigNumber const Trinity::Crypto::SRP::SRP6::I
protected

Definition at line 82 of file SRP6.h.

◆ s

Salt const Trinity::Crypto::SRP::SRP6::s

Definition at line 69 of file SRP6.h.

◆ v

BigNumber const Trinity::Crypto::SRP::SRP6::v
protected

Definition at line 84 of file SRP6.h.


The documentation for this class was generated from the following files: