Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с KeyStore 
V
    Опции темы
powerOn
Дата 21.4.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Привет всем!
Есть след. код, в котором я программно пытаюсь сгенерировать секретный ключ, а потом сохранить в KeyStore:

Код

package testkeystore;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.security.*;
import java.security.cert.CertificateFactory;
import java.util.Enumeration;
import javax.crypto.KeyGenerator;
import java.security.cert.*;
import javax.crypto.SecretKey;

public class Main {

    public Main() {
    }
    public static void main(String[] args) {
        try {
 // Загружаем KeyStore. Нет проблем.
            java.security.KeyStore ks = java.security.KeyStore.getInstance(KeyStore.getDefaultType());
            FileInputStream fis = new FileInputStream("ClientKeyStore");
            ks.load( fis, "clientpassword".toCharArray());
            fis.close();
 // Генерируем секретный ключ для DES алгоритма. Нет проблем.           
            KeyGenerator kg = KeyGenerator.getInstance("DES");
            SecretKey kp = kg.generateKey();
            
            KeyStore.SecretKeyEntry myEntry = new KeyStore.SecretKeyEntry(kp);
            KeyStore.ProtectionParameter password =
                    new KeyStore.PasswordProtection("clientkeypassword".toCharArray());
// Пытаемся сохранить ключ, не выходит :-(
             ks.setEntry("secretKeyAlias", myEntry, password);

//          store away the keystore
            java.io.FileOutputStream fos = new java.io.FileOutputStream("newKeyStoreName.txt");
            ks.store(fos, "clientpassword".toCharArray());
            fos.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        
    }
    
}


С генерацией ключей нет проблем, но вот с сохранением имеются. Код сохранения я по аналогии с Sun-ским примером делаю, вот ссылка: http://java.sun.com/j2se/1.5.0/docs/api/ja...y/KeyStore.html
Но к сожаления получаю исключение при выполнении этой строки:

Код

 ks.setEntry("secretKeyAlias", myEntry, password);


Код

java.security.KeyStoreException: Cannot store non-PrivateKeys
        at sun.security.provider.JavaKeyStore.engineSetKeyEntry(Unknown Source)
        at java.security.KeyStoreSpi.engineSetEntry(Unknown Source)
        at java.security.KeyStore.setEntry(Unknown Source)
        at testkeystore.Main.main(Main.java:53)


Понять не могу, почему ключ секретный сохранять ни хочет. Спасайте... 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
jimur
Дата 21.4.2006, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 21.4.2006

Репутация: 2
Всего: 3



а ты не пробовал использовать мировую базу знаний?  smile 
http://www.google.ru/search?hl=ru&q=%2...+Google&lr=
там по первой ссылке дельное решение предлагают - попробуй 
PM MAIL   Вверх
powerOn
Дата 21.4.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159




jimur, спасибо, истина всегда где-то рядом и обычно ближе чем кажется...  smile 

меняем тип хранилища, и все работает... 
java.security.KeyStore ks = java.security.KeyStore.getInstance("JCEKS");

 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.