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;
|
delete[] excessBuf;
|
||||||
}
|
}
|
||||||
// calculate ident hash
|
// calculate ident hash
|
||||||
uint8_t * buf = new uint8_t[GetFullLen ()];
|
RecalculateIdentHash();
|
||||||
ToBuffer (buf, GetFullLen ());
|
|
||||||
SHA256(buf, GetFullLen (), m_IdentHash);
|
|
||||||
delete[] buf;
|
|
||||||
}
|
}
|
||||||
else // DSA-SHA1
|
else // DSA-SHA1
|
||||||
{
|
{
|
||||||
|
@ -152,6 +149,18 @@ namespace data
|
||||||
CreateVerifier ();
|
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):
|
IdentityEx::IdentityEx (const uint8_t * buf, size_t len):
|
||||||
m_IsVerifierCreated (false), m_ExtendedLen (0), m_ExtendedBuffer (nullptr)
|
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)
|
PrivateKeys PrivateKeys::CreateRandomKeys (SigningKeyType type)
|
||||||
{
|
{
|
||||||
if (type != SIGNING_KEY_TYPE_DSA_SHA1)
|
if (type != SIGNING_KEY_TYPE_DSA_SHA1)
|
||||||
|
|
|
@ -90,8 +90,10 @@ namespace data
|
||||||
size_t FromBase64(const std::string& s);
|
size_t FromBase64(const std::string& s);
|
||||||
std::string ToBase64 () const;
|
std::string ToBase64 () const;
|
||||||
const Identity& GetStandardIdentity () const { return m_StandardIdentity; };
|
const Identity& GetStandardIdentity () const { return m_StandardIdentity; };
|
||||||
|
|
||||||
const IdentHash& GetIdentHash () const { return m_IdentHash; };
|
const IdentHash& GetIdentHash () const { return m_IdentHash; };
|
||||||
const uint8_t * GetEncryptionPublicKey () const { return m_StandardIdentity.publicKey; };
|
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 GetFullLen () const { return m_ExtendedLen + DEFAULT_IDENTITY_SIZE; };
|
||||||
size_t GetSigningPublicKeyLen () const;
|
size_t GetSigningPublicKeyLen () const;
|
||||||
size_t GetSigningPrivateKeyLen () const;
|
size_t GetSigningPrivateKeyLen () const;
|
||||||
|
@ -103,6 +105,8 @@ namespace data
|
||||||
|
|
||||||
bool operator == (const IdentityEx & other) const { return GetIdentHash() == other.GetIdentHash(); }
|
bool operator == (const IdentityEx & other) const { return GetIdentHash() == other.GetIdentHash(); }
|
||||||
|
|
||||||
|
void RecalculateIdentHash(uint8_t * buff=nullptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void CreateVerifier () const;
|
void CreateVerifier () const;
|
||||||
|
@ -132,6 +136,8 @@ namespace data
|
||||||
std::shared_ptr<const IdentityEx> GetPublic () const { return m_Public; };
|
std::shared_ptr<const IdentityEx> GetPublic () const { return m_Public; };
|
||||||
const uint8_t * GetPrivateKey () const { return m_PrivateKey; };
|
const uint8_t * GetPrivateKey () const { return m_PrivateKey; };
|
||||||
const uint8_t * GetSigningPrivateKey () const { return m_SigningPrivateKey; };
|
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;
|
void Sign (const uint8_t * buf, int len, uint8_t * signature) const;
|
||||||
|
|
||||||
size_t GetFullLen () const { return m_Public->GetFullLen () + 256 + m_Public->GetSigningPrivateKeyLen (); };
|
size_t GetFullLen () const { return m_Public->GetFullLen () + 256 + m_Public->GetSigningPrivateKeyLen (); };
|
||||||
|
|
Loading…
Reference in a new issue