Spec-Zone .ru
спецификации, руководства, описания, API
След: Средства защиты в Java SE
Урок: Генерирование и Проверка Подписей
Раздел: Проверка Цифровой подписи
Ввод и Преобразовывает Закодированные Байты С открытым ключом
Домашняя страница > Средства защиты в Java SE > Генерирование и Проверка Подписей

Ввод и Преобразовывает Закодированные Байты С открытым ключом

Затем, VerSig потребности импортировать закодированные байты с открытым ключом из файла, определенного как первый параметр командной строки и преобразовать их в a PublicKey. A PublicKey необходим потому что именно это Signature initVerify метод требует, чтобы инициализировать Signature объект для проверки.

Во-первых, читайте в закодированных байтах с открытым ключом.

FileInputStream keyfis = new FileInputStream(args[0]);
byte[] encKey = new byte[keyfis.available()];  
keyfis.read(encKey);

keyfis.close();

Теперь байтовый массив encKey содержит закодированные байты с открытым ключом.

Можно использовать a KeyFactory class, чтобы инстанцировать открытого ключа DSA от его кодирования. KeyFactory class обеспечивает преобразования между непрозрачными ключами (типа Key) и ключевые спецификации, которые являются прозрачными представлениями базового ключевого материала. С непрозрачным ключом можно получить имя алгоритма, имя формата, и закодировали ключевые байты, но не ключевой материал, который, например, может состоять из ключа непосредственно и параметров алгоритма, используемых, чтобы вычислить ключ. (Отметьте это PublicKey, потому что это расширяется Key, самостоятельно a Key.)

Так, сначала Вы нуждаетесь в ключевой спецификации. Можно получить один через следующий, предполагая, что ключ был закодирован согласно стандарту X.509, который имеет место, например, если ключ был сгенерирован со встроенным генератором пары ключей DSA, предоставленным провайдером SUN:

X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(encKey);

Теперь Вы нуждаетесь в a KeyFactory объект сделать преобразование. Тот объект должен быть тем, который работает с ключами DSA.

KeyFactory keyFactory = KeyFactory.getInstance("DSA", "SUN");

Наконец, можно использовать KeyFactory объект генерировать a PublicKey от ключевой спецификации.

PublicKey pubKey =
    keyFactory.generatePublic(pubKeySpec);

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Подготовьте Начальную Структуру Программы
Следующая страница: Введите Байты Подписи