Следующий код завершается ошибкой, когда пользователь вошел в систему с обязательным или временным профилем.
private static bool VerifySignature(byte[] signature, byte[] data) {
DSACryptoServiceProvider verifier = new DSACryptoServiceProvider();
verifier.FromXmlString(publicKey);
bool isValid = verifier.VerifyData(data, signature);
return isValid;
}
где publicKey - строка XML, содержащая элементы для P, Q, G, Y, J и т. Д.
Ошибка возникает в методе FromXmlString, и согласно эта статья с использованием P / Invoke должна позволить нам обойти это.Существует даже полная взорванная версия кода того же автора, которая выглядит многообещающе.Проблема заключается в том, что они оба предназначены для шифрования RSA, и мы используем шифрование DSA.
Есть ли у кого-нибудь код, который успешно проверит подпись массива байтов данных при наличии байтового массива для подписи и xmlоткрытый ключ?