|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Вы добавили код к VerSig программа к
PublicKey именованный pubKeysigToVerifyМожно теперь продолжить, чтобы сделать проверку.
Инициализируйте Объект Подписи для Проверки
Как с генерацией подписи, подпись проверяется при использовании экземпляра 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.