in common/crypto/signature_verifier.cpp [253:277]
bool SignatureVerifier::VerifyMessage(const std::string& message,
const KeyInfo& public_key,
const std::string& signature) {
if (public_key.key().empty() || signature.empty()) {
LOG(ERROR) << "public is empty, size(" << public_key.key().size()
<< ") or signature is empty, size(" << signature.size() << ")";
return false;
}
// LOG(ERROR) << "public key hash type:" << public_key.hash_type()
// << " key size:" << public_key.key().size()
// << " sig size:" << signature.size()
// << " msg size:" << message.size();
switch (public_key.hash_type()) {
case SignatureInfo::RSA:
return utils::RsaVerifyString(message, public_key.key(), signature);
case SignatureInfo::ED25519:
return ED25519verifyString(message, public_key.key(), signature);
case SignatureInfo::CMAC_AES:
return CmacVerifyString(message, public_key.key(), signature);
case SignatureInfo::ECDSA:
return utils::ECDSAVerifyString(message, public_key.key(), signature);
default:
return true;
}
}