mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 21:37:17 +01:00
read extended indentities from hosts.txt
This commit is contained in:
parent
3b58b55994
commit
89f58d0a7a
|
@ -87,13 +87,9 @@ namespace data
|
|||
std::string name = s.substr(0, pos++);
|
||||
std::string addr = s.substr(pos);
|
||||
|
||||
Identity ident;
|
||||
if (!ident.FromBase64(addr))
|
||||
{
|
||||
LogPrint ("hosts.txt: ignore ", name);
|
||||
continue;
|
||||
}
|
||||
m_Addresses[name] = ident.Hash();
|
||||
IdentityEx ident;
|
||||
ident.FromBase64(addr);
|
||||
m_Addresses[name] = ident.GetIdentHash ();
|
||||
numAddresses++;
|
||||
}
|
||||
}
|
||||
|
|
27
Identity.cpp
27
Identity.cpp
|
@ -22,18 +22,19 @@ namespace data
|
|||
return *this;
|
||||
}
|
||||
|
||||
bool Identity::FromBase64 (const std::string& s)
|
||||
{
|
||||
size_t count = Base64ToByteStream (s.c_str(), s.length(), publicKey, DEFAULT_IDENTITY_SIZE);
|
||||
return count == DEFAULT_IDENTITY_SIZE;
|
||||
}
|
||||
|
||||
size_t Identity::FromBuffer (const uint8_t * buf, size_t len)
|
||||
{
|
||||
memcpy (publicKey, buf, DEFAULT_IDENTITY_SIZE);
|
||||
return DEFAULT_IDENTITY_SIZE;
|
||||
}
|
||||
|
||||
IdentHash Identity::Hash () const
|
||||
{
|
||||
IdentHash hash;
|
||||
CryptoPP::SHA256().CalculateDigest(hash, publicKey, DEFAULT_IDENTITY_SIZE);
|
||||
return hash;
|
||||
}
|
||||
|
||||
IdentityEx::IdentityEx ():
|
||||
m_Verifier (nullptr), m_ExtendedLen (0), m_ExtendedBuffer (nullptr)
|
||||
{
|
||||
|
@ -152,6 +153,13 @@ namespace data
|
|||
return GetFullLen ();
|
||||
}
|
||||
|
||||
size_t IdentityEx::FromBase64(const std::string& s)
|
||||
{
|
||||
uint8_t buf[512];
|
||||
auto len = Base64ToByteStream (s.c_str(), s.length(), buf, 512);
|
||||
return FromBuffer (buf, len);
|
||||
}
|
||||
|
||||
size_t IdentityEx::GetSigningPublicKeyLen () const
|
||||
{
|
||||
if (m_Verifier)
|
||||
|
@ -195,13 +203,6 @@ namespace data
|
|||
}
|
||||
}
|
||||
|
||||
IdentHash Identity::Hash() const
|
||||
{
|
||||
IdentHash hash;
|
||||
CryptoPP::SHA256().CalculateDigest(hash, publicKey, DEFAULT_IDENTITY_SIZE);
|
||||
return hash;
|
||||
}
|
||||
|
||||
PrivateKeys& PrivateKeys::operator=(const Keys& keys)
|
||||
{
|
||||
m_Public = Identity (keys);
|
||||
|
|
|
@ -101,7 +101,6 @@ namespace data
|
|||
Identity () = default;
|
||||
Identity (const Keys& keys) { *this = keys; };
|
||||
Identity& operator=(const Keys& keys);
|
||||
bool FromBase64(const std::string& );
|
||||
size_t FromBuffer (const uint8_t * buf, size_t len);
|
||||
IdentHash Hash () const;
|
||||
};
|
||||
|
@ -125,6 +124,7 @@ namespace data
|
|||
IdentityEx& operator=(const IdentityEx& other);
|
||||
IdentityEx& operator=(const Identity& standard);
|
||||
|
||||
size_t FromBase64(const std::string& s);
|
||||
size_t FromBuffer (const uint8_t * buf, size_t len);
|
||||
size_t ToBuffer (uint8_t * buf, size_t len) const;
|
||||
const Identity& GetStandardIdentity () const { return m_StandardIdentity; };
|
||||
|
|
Loading…
Reference in a new issue