Spec-Zone .ru
спецификации, руководства, описания, API
|
Вы добавили код к VerSig
программа к
PublicKey
именованный pubKey
sigToVerify
Можно теперь продолжить, чтобы сделать проверку.
Инициализируйте Объект Подписи для Проверки
Как с генерацией подписи, подпись проверяется при использовании экземпляра Signature
class. Вы должны создать a Signature
возразите, что использует тот же самый алгоритм подписи, как использовался, чтобы генерировать подпись. Алгоритм, используемый GenSig
программа была алгоритмом SHA1withDSA от провайдера SUN.
Signature sig = Signature.getInstance("SHA1withDSA", "SUN");
Затем, Вы должны инициализировать Signature
объект. Метод инициализации для проверки требует открытого ключа.
sig.initVerify(pubKey);
Предоставьте Объект Подписи Данные, которые будут Проверены, Вы теперь должны предоставить Signature
объект с данными, для которых была сгенерирована подпись. Эти данные находятся в файле, имя которого было определено как третий параметр командной строки. Когда Вы сделали, подписываясь, считайте в данных один буфер за один раз, и предоставьте это к Signature
объект, вызывая update
метод.
FileInputStream datafis = new FileInputStream(args[2]); BufferedInputStream bufin = new BufferedInputStream(datafis); byte[] buffer = new byte[1024]; int len; while (bufin.available() != 0) { len = bufin.read(buffer); sig.update(buffer, 0, len); }; bufin.close();
Проверьте Подпись
Как только Вы снабдили всеми данными к Signature
объект, можно проверить цифровую подпись тех данных и сообщить о результате. Вспомните, что предполагаемая подпись была считана в вызванный байтовый массив sigToVerify
.
boolean verifies = sig.verify(sigToVerify); System.out.println("signature verifies: " + verifies);
verifies
значение будет true
если предполагаемая подпись (sigToVerify
) фактическая подпись указанного файла данных, сгенерированного закрытым ключом, соответствующим открытому ключу pubKey
.