mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-02 02:44:15 +00:00
don't verify signature for RI loaded from file
This commit is contained in:
parent
8403c17c59
commit
f0e6b414e8
@ -31,7 +31,7 @@ namespace data
|
|||||||
m_Buffer = new uint8_t[MAX_RI_BUFFER_SIZE];
|
m_Buffer = new uint8_t[MAX_RI_BUFFER_SIZE];
|
||||||
memcpy (m_Buffer, buf, len);
|
memcpy (m_Buffer, buf, len);
|
||||||
m_BufferLen = len;
|
m_BufferLen = len;
|
||||||
ReadFromBuffer ();
|
ReadFromBuffer (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
RouterInfo::~RouterInfo ()
|
RouterInfo::~RouterInfo ()
|
||||||
@ -51,7 +51,7 @@ namespace data
|
|||||||
m_Properties.clear ();
|
m_Properties.clear ();
|
||||||
memcpy (m_Buffer, buf, len);
|
memcpy (m_Buffer, buf, len);
|
||||||
m_BufferLen = len;
|
m_BufferLen = len;
|
||||||
ReadFromBuffer ();
|
ReadFromBuffer (true);
|
||||||
// don't delete buffer until save to file
|
// don't delete buffer until save to file
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,21 +90,24 @@ namespace data
|
|||||||
void RouterInfo::ReadFromFile ()
|
void RouterInfo::ReadFromFile ()
|
||||||
{
|
{
|
||||||
if (LoadFile ())
|
if (LoadFile ())
|
||||||
ReadFromBuffer ();
|
ReadFromBuffer (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RouterInfo::ReadFromBuffer ()
|
void RouterInfo::ReadFromBuffer (bool verifySignature)
|
||||||
{
|
{
|
||||||
std::stringstream str (std::string ((char *)m_Buffer, m_BufferLen));
|
std::stringstream str (std::string ((char *)m_Buffer, m_BufferLen));
|
||||||
ReadFromStream (str);
|
ReadFromStream (str);
|
||||||
// verify signature
|
if (verifySignature)
|
||||||
CryptoPP::DSA::PublicKey pubKey;
|
|
||||||
pubKey.Initialize (i2p::crypto::dsap, i2p::crypto::dsaq, i2p::crypto::dsag, CryptoPP::Integer (m_RouterIdentity.signingKey, 128));
|
|
||||||
CryptoPP::DSA::Verifier verifier (pubKey);
|
|
||||||
int l = m_BufferLen - 40;
|
|
||||||
if (!verifier.VerifyMessage ((uint8_t *)m_Buffer, l, (uint8_t *)m_Buffer + l, 40))
|
|
||||||
{
|
{
|
||||||
LogPrint ("signature verification failed");
|
// verify signature
|
||||||
|
CryptoPP::DSA::PublicKey pubKey;
|
||||||
|
pubKey.Initialize (i2p::crypto::dsap, i2p::crypto::dsaq, i2p::crypto::dsag, CryptoPP::Integer (m_RouterIdentity.signingKey, 128));
|
||||||
|
CryptoPP::DSA::Verifier verifier (pubKey);
|
||||||
|
int l = m_BufferLen - 40;
|
||||||
|
if (!verifier.VerifyMessage ((uint8_t *)m_Buffer, l, (uint8_t *)m_Buffer + l, 40))
|
||||||
|
{
|
||||||
|
LogPrint ("signature verification failed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ namespace data
|
|||||||
bool LoadFile ();
|
bool LoadFile ();
|
||||||
void ReadFromFile ();
|
void ReadFromFile ();
|
||||||
void ReadFromStream (std::istream& s);
|
void ReadFromStream (std::istream& s);
|
||||||
void ReadFromBuffer ();
|
void ReadFromBuffer (bool verifySignature);
|
||||||
void WriteToStream (std::ostream& s);
|
void WriteToStream (std::ostream& s);
|
||||||
size_t ReadString (char * str, std::istream& s);
|
size_t ReadString (char * str, std::istream& s);
|
||||||
void WriteString (const std::string& str, std::ostream& s);
|
void WriteString (const std::string& str, std::ostream& s);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user