Browse Source

Added VERIFY_ALWAYS_SUCCEEDS conditional to allow signature verifiers to always succeed during fuzzing for maximum code coverage.

pull/1949/head
Chad Fraleigh 1 year ago
parent
commit
7c9c5ac12e
  1. 5
      libi2pd/Ed25519.cpp
  2. 5
      libi2pd/Gost.cpp
  3. 8
      libi2pd/Signature.cpp

5
libi2pd/Ed25519.cpp

@ -126,6 +126,11 @@ namespace crypto
BN_CTX_free (ctx); BN_CTX_free (ctx);
if (!passed) if (!passed)
LogPrint (eLogError, "25519 signature verification failed"); LogPrint (eLogError, "25519 signature verification failed");
#ifdef VERIFY_ALWAYS_SUCCEEDS
passed = true;
#endif
return passed; return passed;
} }

5
libi2pd/Gost.cpp

@ -102,6 +102,11 @@ namespace crypto
EC_POINT_free (C); EC_POINT_free (C);
BN_CTX_end (ctx); BN_CTX_end (ctx);
BN_CTX_free (ctx); BN_CTX_free (ctx);
#ifdef VERIFY_ALWAYS_SUCCEEDS
ret = true;
#endif
return ret; return ret;
} }

8
libi2pd/Signature.cpp

@ -34,7 +34,13 @@ namespace crypto
bool EDDSA25519Verifier::Verify (const uint8_t * buf, size_t len, const uint8_t * signature) const bool EDDSA25519Verifier::Verify (const uint8_t * buf, size_t len, const uint8_t * signature) const
{ {
return EVP_DigestVerify (m_MDCtx, signature, 64, buf, len); bool ret = EVP_DigestVerify (m_MDCtx, signature, 64, buf, len);
#ifdef VERIFY_ALWAYS_SUCCEEDS
ret = true;
#endif
return ret;
} }
#else #else

Loading…
Cancel
Save