mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 21:37:17 +01:00
Merge pull request #916 from majestrate/vanity
add stuff for address generator tool
This commit is contained in:
commit
04297eda80
|
@ -136,10 +136,7 @@ namespace data
|
|||
delete[] excessBuf;
|
||||
}
|
||||
// calculate ident hash
|
||||
uint8_t * buf = new uint8_t[GetFullLen ()];
|
||||
ToBuffer (buf, GetFullLen ());
|
||||
SHA256(buf, GetFullLen (), m_IdentHash);
|
||||
delete[] buf;
|
||||
RecalculateIdentHash();
|
||||
}
|
||||
else // DSA-SHA1
|
||||
{
|
||||
|
@ -152,6 +149,18 @@ namespace data
|
|||
CreateVerifier ();
|
||||
}
|
||||
|
||||
void IdentityEx::RecalculateIdentHash(uint8_t * buf)
|
||||
{
|
||||
bool dofree = buf == nullptr;
|
||||
size_t sz = GetFullLen();
|
||||
if(!buf)
|
||||
buf = new uint8_t[sz];
|
||||
ToBuffer (buf, sz);
|
||||
SHA256(buf, sz, m_IdentHash);
|
||||
if(dofree)
|
||||
delete[] buf;
|
||||
}
|
||||
|
||||
IdentityEx::IdentityEx (const uint8_t * buf, size_t len):
|
||||
m_IsVerifierCreated (false), m_ExtendedLen (0), m_ExtendedBuffer (nullptr)
|
||||
{
|
||||
|
@ -556,6 +565,14 @@ namespace data
|
|||
}
|
||||
}
|
||||
|
||||
uint8_t * PrivateKeys::GetPadding()
|
||||
{
|
||||
if(m_Public->GetSigningKeyType () == SIGNING_KEY_TYPE_EDDSA_SHA512_ED25519)
|
||||
return m_Public->GetEncryptionPublicKeyBuffer() + 256;
|
||||
else
|
||||
return nullptr; // TODO: implement me
|
||||
}
|
||||
|
||||
PrivateKeys PrivateKeys::CreateRandomKeys (SigningKeyType type)
|
||||
{
|
||||
if (type != SIGNING_KEY_TYPE_DSA_SHA1)
|
||||
|
|
|
@ -90,8 +90,10 @@ namespace data
|
|||
size_t FromBase64(const std::string& s);
|
||||
std::string ToBase64 () const;
|
||||
const Identity& GetStandardIdentity () const { return m_StandardIdentity; };
|
||||
|
||||
const IdentHash& GetIdentHash () const { return m_IdentHash; };
|
||||
const uint8_t * GetEncryptionPublicKey () const { return m_StandardIdentity.publicKey; };
|
||||
uint8_t * GetEncryptionPublicKeyBuffer () { return m_StandardIdentity.publicKey; };
|
||||
size_t GetFullLen () const { return m_ExtendedLen + DEFAULT_IDENTITY_SIZE; };
|
||||
size_t GetSigningPublicKeyLen () const;
|
||||
size_t GetSigningPrivateKeyLen () const;
|
||||
|
@ -103,6 +105,8 @@ namespace data
|
|||
|
||||
bool operator == (const IdentityEx & other) const { return GetIdentHash() == other.GetIdentHash(); }
|
||||
|
||||
void RecalculateIdentHash(uint8_t * buff=nullptr);
|
||||
|
||||
private:
|
||||
|
||||
void CreateVerifier () const;
|
||||
|
@ -132,6 +136,8 @@ namespace data
|
|||
std::shared_ptr<const IdentityEx> GetPublic () const { return m_Public; };
|
||||
const uint8_t * GetPrivateKey () const { return m_PrivateKey; };
|
||||
const uint8_t * GetSigningPrivateKey () const { return m_SigningPrivateKey; };
|
||||
uint8_t * GetPadding();
|
||||
void RecalculateIdentHash(uint8_t * buf=nullptr) { m_Public->RecalculateIdentHash(buf); }
|
||||
void Sign (const uint8_t * buf, int len, uint8_t * signature) const;
|
||||
|
||||
size_t GetFullLen () const { return m_Public->GetFullLen () + 256 + m_Public->GetSigningPrivateKeyLen (); };
|
||||
|
|
Loading…
Reference in a new issue