AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
SessionKeyGenerator< Hash > Class Template Reference

#include "SessionKeyGenerator.h"

Public Member Functions

template<typename C >
 SessionKeyGenerator (C const &buf)
 
void Generate (uint8 *buf, uint32 sz)
 

Private Attributes

Hash::Digest o0 {}
 
Hash::Digest o1 {}
 
Hash::Digest o2 {}
 
Hash::Digest::const_iterator o0it
 

Detailed Description

template<typename Hash>
class SessionKeyGenerator< Hash >

Constructor & Destructor Documentation

◆ SessionKeyGenerator()

template<typename Hash >
template<typename C >
SessionKeyGenerator< Hash >::SessionKeyGenerator ( C const &  buf)
inline
29 :
30 o0it(o0.begin())
31 {
32 uint8 const* data = std::data(buf);
33 size_t const len = std::size(buf);
34 size_t const halflen = (len / 2);
35
36 o1 = Hash::GetDigestOf(data, halflen);
37 o2 = Hash::GetDigestOf(data + halflen, len - halflen);
38 o0 = Hash::GetDigestOf(o1, o0, o2);
39 }
std::uint8_t uint8
Definition: Define.h:110
Hash::Digest o0
Definition: SessionKeyGenerator.h:56
Hash::Digest o1
Definition: SessionKeyGenerator.h:57
Hash::Digest o2
Definition: SessionKeyGenerator.h:58
Hash::Digest::const_iterator o0it
Definition: SessionKeyGenerator.h:59

References SessionKeyGenerator< Hash >::o0, SessionKeyGenerator< Hash >::o1, and SessionKeyGenerator< Hash >::o2.

Member Function Documentation

◆ Generate()

template<typename Hash >
void SessionKeyGenerator< Hash >::Generate ( uint8 buf,
uint32  sz 
)
inline
42 {
43 for (uint32 i = 0; i < sz; ++i)
44 {
45 if (o0it == o0.end())
46 {
47 o0 = Hash::GetDigestOf(o1, o0, o2);
48 o0it = o0.begin();
49 }
50
51 buf[i] = *(o0it++);
52 }
53 }
std::uint32_t uint32
Definition: Define.h:108

References SessionKeyGenerator< Hash >::o0, SessionKeyGenerator< Hash >::o0it, SessionKeyGenerator< Hash >::o1, and SessionKeyGenerator< Hash >::o2.

Referenced by WardenMac::Init(), and WardenWin::Init().

Member Data Documentation

◆ o0

template<typename Hash >
Hash::Digest SessionKeyGenerator< Hash >::o0 {}
private

◆ o0it

template<typename Hash >
Hash::Digest::const_iterator SessionKeyGenerator< Hash >::o0it
private

◆ o1

template<typename Hash >
Hash::Digest SessionKeyGenerator< Hash >::o1 {}
private

◆ o2

template<typename Hash >
Hash::Digest SessionKeyGenerator< Hash >::o2 {}
private