|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Теперь, когда Вы создали открытый ключ и закрытый ключ, Вы готовы подписать данные. В этом примере Вы подпишете данные, содержавшиеся в файле. GenSig получает имя файла от командной строки. Цифровая подпись создается (или проверяется), использование экземпляра Signature class.
Подписание данных, генерирование цифровой подписи для тех данных, делаются со следующими шагами.
Получите Объект Подписи: следующее получает a Signature объект для генерирования или проверки подписей, используя алгоритм DSA, тот же самый алгоритм, для который программа сгенерированные ключи в предыдущем шаге, Генерирует Открытые и Закрытые ключи.
Signature dsa = Signature.getInstance("SHA1withDSA", "SUN");
Отметьте: определяя имя алгоритма подписи, следует также включать имя алгоритма обзора сообщения, используемого алгоритмом подписи. SHA1withDSA является способом определить алгоритм подписи DSA, используя SHA 1 алгоритм обзора сообщения.
Инициализируйте Объект Подписи
Прежде a Signature объект может использоваться для подписания или проверки, это должно быть инициализировано. Метод инициализации для того, чтобы подписаться требует закрытого ключа. Используйте закрытый ключ, помещенный в PrivateKey объект называют priv в предыдущем шаге.
dsa.initSign(priv);
Предоставьте Объект Подписи Данные, которые будут Подписаны, Эта программа будет использовать данные от файла, имя которого определяется как первое (и только) параметр командной строки. Программа считает в данных буфер за один раз и предоставит их к Signature объект, вызывая update метод.
FileInputStream fis = new FileInputStream(args[0]);
BufferedInputStream bufin = new BufferedInputStream(fis);
byte[] buffer = new byte[1024];
int len;
while ((len = bufin.read(buffer)) >= 0) {
dsa.update(buffer, 0, len);
};
bufin.close();
Генерируйте Подпись
Как только всеми данными снабдили к Signature объект, можно генерировать цифровую подпись тех данных.
byte[] realSig = dsa.sign();