bool SignatureVerifier::VerifyMessage()

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;
  }
}