Пример #1
0
bool
PolicyManager::verifySignature
  (const Signature* signature, const SignedBlob& signedBlob,
   const Blob& publicKeyDer)
{
  if (dynamic_cast<const Sha256WithRsaSignature *>(signature)) {
    if (publicKeyDer.isNull())
      return false;
    return verifySha256WithRsaSignature
      (signature->getSignature(), signedBlob, publicKeyDer);
  }
  else if (dynamic_cast<const Sha256WithEcdsaSignature *>(signature)) {
    if (publicKeyDer.isNull())
      return false;
    return verifySha256WithEcdsaSignature
      (signature->getSignature(), signedBlob, publicKeyDer);
  }
  else if (dynamic_cast<const DigestSha256Signature *>(signature))
    return verifyDigestSha256Signature(signature->getSignature(), signedBlob);
  else
    throw SecurityException("PolicyManager::verify: Signature type is unknown");
}
Пример #2
0
 /**
  * Verify that the DigestSha256 of the data equals the signature.
  * @param signature The signature bytes.
  * @param data The byte array to verify.
  * @return True if the signature verifies, false if not.
  */
 static bool
 verifyDigestSha256Signature(const BlobLite& signature, const BlobLite& data)
 {
   return verifyDigestSha256Signature
     (signature.buf(), signature.size(), data.buf(), data.size());
 }