don't create full identity from buffer if only ident hash is needed

This commit is contained in:
orignal 2024-07-25 20:36:46 -04:00
parent d7ff459f12
commit d3062d2994
3 changed files with 16 additions and 5 deletions

View file

@ -420,6 +420,14 @@ namespace data
return CreateEncryptor (GetCryptoKeyType (), key);
}
size_t GetIdentityBufferLen (const uint8_t * buf, size_t len)
{
if (len < DEFAULT_IDENTITY_SIZE) return 0;
size_t l = DEFAULT_IDENTITY_SIZE + bufbe16toh (buf + DEFAULT_IDENTITY_SIZE - 2);
if (l > len) return 0;
return l;
}
PrivateKeys& PrivateKeys::operator=(const Keys& keys)
{
m_Public = std::make_shared<IdentityEx>(Identity (keys));

View file

@ -136,6 +136,8 @@ namespace data
uint8_t m_ExtendedBuffer[MAX_EXTENDED_BUFFER_SIZE];
};
size_t GetIdentityBufferLen (const uint8_t * buf, size_t len); // return actual identity length in buffer
class PrivateKeys // for eepsites
{
public: