8 #ifndef BOTAN_RFC5054_SRP6_H_
9 #define BOTAN_RFC5054_SRP6_H_
11 #include <botan/bigint.h>
12 #include <botan/symkey.h>
18 class RandomNumberGenerator;
32 std::pair<BigInt,SymmetricKey>
34 const
std::
string& password,
35 const
std::
string& group_id,
36 const
std::
string& hash_id,
37 const
std::vector<uint8_t>& salt,
39 RandomNumberGenerator& rng);
57 const
std::
string& password,
58 const DL_Group& group,
59 const
std::
string& hash_id,
60 const
std::vector<uint8_t>& salt,
63 RandomNumberGenerator& rng);
73 BigInt BOTAN_PUBLIC_API(2,0)
75 const
std::
string& password,
76 const
std::vector<uint8_t>& salt,
77 const
std::
string& group_id,
78 const
std::
string& hash_id);
88 BigInt BOTAN_PUBLIC_API(2,11)
90 const
std::
string& password,
91 const
std::vector<uint8_t>& salt,
92 const DL_Group& group,
93 const
std::
string& hash_id);
118 BigInt step1(
const BigInt& v,
119 const std::string& group_id,
120 const std::string& hash_id,
134 BigInt step1(
const BigInt& v,
136 const std::string& hash_id,
149 BigInt m_B,
m_b, m_v, m_S,
m_p;
150 size_t m_p_bytes = 0;
void BOTAN_FUNC_ISA("avx2") SHACAL2 SIMD_8x32 A
std::pair< BigInt, SymmetricKey > srp6_client_agree(const std::string &identifier, const std::string &password, const std::string &group_id, const std::string &hash_id, const std::vector< uint8_t > &salt, const BigInt &B, RandomNumberGenerator &rng)
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::vector< uint8_t > m_hash_id
BigInt generate_srp6_verifier(const std::string &identifier, const std::string &password, const std::vector< uint8_t > &salt, const std::string &group_id, const std::string &hash_id)
std::string srp6_group_identifier(const BigInt &N, const BigInt &g)