From ff544c386cefc8bb72c3f54cf592edbe4f5c5e0c Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Tue, 30 Apr 2019 20:29:21 -0400 Subject: [PATCH] Use dynamic_cast in ed25519 (GH #829) --- xed25519.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/xed25519.cpp b/xed25519.cpp index 42694050..1e3e7f40 100644 --- a/xed25519.cpp +++ b/xed25519.cpp @@ -674,8 +674,8 @@ size_t ed25519Signer::SignAndRestart(RandomNumberGenerator &rng, PK_MessageAccum { CRYPTOPP_ASSERT(signature != NULLPTR); CRYPTOPP_UNUSED(rng); - ed25519_MessageAccumulator& accum = static_cast(messageAccumulator); - const ed25519PrivateKey& pk = static_cast(GetPrivateKey()); + ed25519_MessageAccumulator& accum = dynamic_cast(messageAccumulator); + const ed25519PrivateKey& pk = dynamic_cast(GetPrivateKey()); int ret = Donna::ed25519_sign(accum.data(), accum.size(), pk.GetPrivateKeyBytePtr(), pk.GetPublicKeyBytePtr(), signature); CRYPTOPP_ASSERT(ret == 0); @@ -689,7 +689,7 @@ size_t ed25519Signer::SignStream (RandomNumberGenerator &rng, std::istream& stre { CRYPTOPP_ASSERT(signature != NULLPTR); CRYPTOPP_UNUSED(rng); - const ed25519PrivateKey& pk = static_cast(GetPrivateKey()); + const ed25519PrivateKey& pk = dynamic_cast(GetPrivateKey()); int ret = Donna::ed25519_sign(stream, pk.GetPrivateKeyBytePtr(), pk.GetPublicKeyBytePtr(), signature); CRYPTOPP_ASSERT(ret == 0); @@ -853,14 +853,14 @@ ed25519Verifier::ed25519Verifier(BufferedTransformation ¶ms) ed25519Verifier::ed25519Verifier(const ed25519Signer& signer) { - const ed25519PrivateKey& priv = static_cast(signer.GetPrivateKey()); + const ed25519PrivateKey& priv = dynamic_cast(signer.GetPrivateKey()); priv.MakePublicKey(AccessPublicKey()); } bool ed25519Verifier::VerifyAndRestart(PK_MessageAccumulator &messageAccumulator) const { ed25519_MessageAccumulator& accum = static_cast(messageAccumulator); - const ed25519PublicKey& pk = static_cast(GetPublicKey()); + const ed25519PublicKey& pk = dynamic_cast(GetPublicKey()); int ret = Donna::ed25519_sign_open(accum.data(), accum.size(), pk.GetPublicKeyBytePtr(), accum.signature()); accum.Restart();