public static bool Verify(IPublicKey publicKey, string signedData, string signature)
{
if (Consts.DEBUG)
{
Log.Info(TAG, "signature: " + signature);
}
Signature sig;
try
{
sig = Signature.GetInstance(SIGNATURE_ALGORITHM);
sig.InitVerify(publicKey);
sig.Update(Encoding.UTF8.GetBytes(signedData));
if (!sig.Verify(Convert.FromBase64String(signature)))
{
Log.Error(TAG, "Signature verification failed.");
return false;
}
return true;
}
catch (NoSuchAlgorithmException e)
{
Log.Error(TAG, "NoSuchAlgorithmException.");
}
catch (InvalidKeyException e)
{
Log.Error(TAG, "Invalid key specification.");
}
catch (SignatureException e)
{
Log.Error(TAG, "Signature exception.");
}
catch (FormatException e)
{
Log.Error(TAG, "Base64 decoding failed.");
}
return false;
}