From 22f9380d49827bfce9c174db88aaf672bf77c559 Mon Sep 17 00:00:00 2001 From: EinMByte Date: Sun, 30 Aug 2015 09:58:07 +0200 Subject: [PATCH] Add constructor from keypair for EDDSA25519Signer. --- core/crypto/EdDSA25519.cpp | 5 +++++ core/crypto/EdDSA25519.h | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/crypto/EdDSA25519.cpp b/core/crypto/EdDSA25519.cpp index 2a97d88e..3f93b178 100644 --- a/core/crypto/EdDSA25519.cpp +++ b/core/crypto/EdDSA25519.cpp @@ -28,6 +28,11 @@ size_t EDDSA25519Verifier::GetSignatureLen() const return EDDSA25519_SIGNATURE_LENGTH; } +EDDSA25519Signer::EDDSA25519Signer(const uint8_t* signingPrivateKey, const uint8_t* signingPublicKey) +{ + std::memcpy(m_PrivateKey, signingPrivateKey, EDDSA25519_PRIVATE_KEY_LENGTH); + std::memcpy(m_PublicKey, signingPublicKey, EDDSA25519_PUBLIC_KEY_LENGTH); +} EDDSA25519Signer::EDDSA25519Signer(const uint8_t* signingPrivateKey) { diff --git a/core/crypto/EdDSA25519.h b/core/crypto/EdDSA25519.h index 89b2c769..b35b92c0 100644 --- a/core/crypto/EdDSA25519.h +++ b/core/crypto/EdDSA25519.h @@ -29,9 +29,15 @@ class EDDSA25519Signer : public Signer { public: /** - * @todo allow passing the public key too as an optimization + * Construct from a key pair. */ - EDDSA25519Signer(const uint8_t * signingPrivateKey); + EDDSA25519Signer(const uint8_t* signingPrivateKey, const uint8_t* signingPublicKey); + + /** + * Construct from a private key. + * The corresponding public key will be computed from it. + */ + EDDSA25519Signer(const uint8_t* signingPrivateKey); /** * @todo do not pass random number generator, EdDSA does not require a random