TrinityCore
Trinity::Crypto::SRP::GruntSRP6 Class Referencefinal

#include <SRP6.h>

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

Public Types

using EphemeralKey = std::array< uint8, EPHEMERAL_KEY_LENGTH >
 
using SessionKey = std::array< uint8, SHA1::DIGEST_LENGTH *2 >
 

Public Member Functions

 GruntSRP6 (std::string const &username, Salt const &salt, Verifier const &verifier)
 
 GruntSRP6 (ForRegistrationTag t)
 
BigNumber const & GetN () const override
 
BigNumber const & Getg () const override
 
BigNumber CalculateServerEvidence (BigNumber const &A, BigNumber const &clientM1, BigNumber const &K) const override
 
- Public Member Functions inherited from Trinity::Crypto::SRP::SRP6
 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 Attributes

static constexpr size_t EPHEMERAL_KEY_LENGTH = 32
 
static BigNumber const N = "894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7"s
 
static BigNumber const g = 7
 

Protected Member Functions

BigNumber CalculateX (std::string const &username, std::string const &password, Salt const &salt) const override
 
Optional< BigNumberDoVerifyClientEvidence (BigNumber const &A, BigNumber const &clientM1) override
 
- Protected Member Functions inherited from Trinity::Crypto::SRP::SRP6
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 SessionKey SHA1Interleave (EphemeralKey const &S)
 
- Static Protected Member Functions inherited from Trinity::Crypto::SRP::SRP6
static BigNumber CalculatePrivateB (BigNumber const &N)
 

Additional Inherited Members

- Static Public Member Functions inherited from Trinity::Crypto::SRP::SRP6
template<typename Impl >
static std::pair< Salt, VerifierMakeRegistrationData (std::string const &username, std::string const &password)
 
- Public Attributes inherited from Trinity::Crypto::SRP::SRP6
Salt const s
 
BigNumber const B
 
- Protected Attributes inherited from Trinity::Crypto::SRP::SRP6
BigNumber const I
 
BigNumber const b
 
BigNumber const v
 

Detailed Description

Definition at line 93 of file SRP6.h.

Member Typedef Documentation

◆ EphemeralKey

Definition at line 98 of file SRP6.h.

◆ SessionKey

Definition at line 100 of file SRP6.h.

Constructor & Destructor Documentation

◆ GruntSRP6() [1/2]

Trinity::Crypto::SRP::GruntSRP6::GruntSRP6 ( std::string const &  username,
Salt const &  salt,
Verifier const &  verifier 
)
explicit

Definition at line 81 of file SRP6.cpp.

◆ GruntSRP6() [2/2]

Trinity::Crypto::SRP::GruntSRP6::GruntSRP6 ( ForRegistrationTag  t)
inlineexplicit

Definition at line 106 of file SRP6.h.

Member Function Documentation

◆ CalculateServerEvidence()

BigNumber Trinity::Crypto::SRP::GruntSRP6::CalculateServerEvidence ( BigNumber const &  A,
BigNumber const &  clientM1,
BigNumber const &  K 
) const
overridevirtual

Implements Trinity::Crypto::SRP::SRP6.

Definition at line 86 of file SRP6.cpp.

+ Here is the call graph for this function:

◆ CalculateX()

BigNumber Trinity::Crypto::SRP::GruntSRP6::CalculateX ( std::string const &  username,
std::string const &  password,
Salt const &  salt 
) const
overrideprotectedvirtual

Implements Trinity::Crypto::SRP::SRP6.

Definition at line 91 of file SRP6.cpp.

+ Here is the call graph for this function:

◆ DoVerifyClientEvidence()

Optional< BigNumber > Trinity::Crypto::SRP::GruntSRP6::DoVerifyClientEvidence ( BigNumber const &  A,
BigNumber const &  clientM1 
)
overrideprotectedvirtual

Implements Trinity::Crypto::SRP::SRP6.

Definition at line 99 of file SRP6.cpp.

+ Here is the call graph for this function:

◆ Getg()

BigNumber const & Trinity::Crypto::SRP::GruntSRP6::Getg ( ) const
inlineoverridevirtual

Implements Trinity::Crypto::SRP::SRP6.

Definition at line 109 of file SRP6.h.

◆ GetN()

BigNumber const & Trinity::Crypto::SRP::GruntSRP6::GetN ( ) const
inlineoverridevirtual

Implements Trinity::Crypto::SRP::SRP6.

Definition at line 108 of file SRP6.h.

◆ SHA1Interleave()

GruntSRP6::SessionKey Trinity::Crypto::SRP::GruntSRP6::SHA1Interleave ( EphemeralKey const &  S)
staticprotected

Definition at line 122 of file SRP6.cpp.

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

Member Data Documentation

◆ EPHEMERAL_KEY_LENGTH

constexpr size_t Trinity::Crypto::SRP::GruntSRP6::EPHEMERAL_KEY_LENGTH = 32
staticconstexpr

Definition at line 96 of file SRP6.h.

◆ g

BigNumber const Trinity::Crypto::SRP::GruntSRP6::g = 7
static

Definition at line 103 of file SRP6.h.

◆ N

BigNumber const Trinity::Crypto::SRP::GruntSRP6::N = "894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7"s
static

Definition at line 102 of file SRP6.h.


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