Я пытался проверить подпись XML.Проверка цифровой подписи XML
Валидация в соответствии с этим tutorial работает нормально.
Но я также попытался сделать второй подход. Для того, чтобы проверить его с verify method класса Signature я извлёк подпись и сертификат из файла XML, и я сделал следующее:
public static boolean checkSignedFile(byte[] data, byte[] sigToVerify,
byte[] cert, String algorithm) throws CertificateException,
NoSuchAlgorithmException, InvalidKeyException, SignatureException {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate c = (Certificate) cf
.generateCertificate(new ByteArrayInputStream(cert));
PublicKey pk = c.getPublicKey();
Signature sig;
boolean verifies = false;
sig = Signature.getInstance(algorithm);
sig.initVerify(pk);
sig.update(data);
verifies = sig.verify(sigToVerify);
return verifies;
}
результат был ложным. Подпись не подтвердила. Что может быть причиной этого?
Ссылка на учебное пособие, похоже, не работает. – Yster
Это, вероятно, новый: http://www.oracle.com/technetwork/articles/javase/dig-signature-api-140772.html – Yster