Статус: Участник
Группы: Участники
Зарегистрирован: 17.01.2011(UTC) Сообщений: 13 Откуда: St. Petersburg
|
Добрый день. Подскажите, есть ли возможность использования jcp в java applet'ах? Просто во время инициализации ДСЧ окно не отрисовывается и виснет. Скорее всего из-за того что не наследовано от jApplet. Код:
final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(JCP.GOST_DEGREE_NAME, JCP.PROVIDER_NAME);
KeyPair pair = keyGen.generateKeyPair();
И можно ли как нибудь программно инициализировать ДСЧ?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.01.2011(UTC) Сообщений: 13 Откуда: St. Petersburg
|
Вычитал что есть несколько типов датчиков: графический и консольный биодатчик. Как можно прописать чтобы использовался консольный датчик? Нашел древний пост с похожим ответом, но не получается применить на практике Цитата: Да, вас не правильно поняли. Консольный био-ДСЧ есть: ru.CryptoPro.JCP.Random.BioRandomConsole (противоположность ru.CryptoPro.JCP.Random.BioRandomFrame). Для его использования необходимо выбрать его как значение по умолчанию в настройках (Java Prefs): ru/CryptoPro/JCP/Random/ в параметре "Used BIORandom" поменять значение на имя нужного класса (из указанных выше). Такое неудобство временно вызвано исключением по требованию ФСБ AbstractBioRandom из числа документированных классов.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.10.2008(UTC) Сообщений: 181
|
Вывести наружу окошко инициализации bio-дсч нельзя, тогда Вы сможете туда накидать сообщений, и никакой случайности не будет. Изготовление ключа самая критическая процедура с точки зрения безопасности. К тому же нечастая, раз в год например. Лучше не делать пользовательские ключи из Applet-а. Консольный датчик предназначен для unix-систем без установленных X-ов, он не поможет. Не знаю как прицепить консоль к applet-у.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.10.2008(UTC) Сообщений: 181
|
А если запустить в отдельном потоке тоже не работает?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.01.2011(UTC) Сообщений: 13 Откуда: St. Petersburg
|
Тоже не работает. Делал так, может что неверно? Код:
Thread t = new Thread(new Runnable() {
@Override
public void run() {
pair = keyGen.generateKeyPair();
}
});
t.start();
На всякий пожарный, вдруг кто еще искать будет. Чтобы использовать консольный датчик нужно: Код:
JCPPref jcppref = new JCPPref(ru.CryptoPro.JCP.Random.f.class);
jcppref.put("Used BIORandom", "ru.CryptoPro.JCP.Random.BioRandomConsole"); //консольный
//jcppref.put("Used BIORandom", "ru.CryptoPro.JCP.Random.BioRandomFrame"); //фреймовый
Для данной операции нужны админские права.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.10.2008(UTC) Сообщений: 181
|
Попробовал, работает. Код:public class KeyGenApplet extends JApplet implements ActionListener {
private final JButton createButton = new JButton("Create");
public void init(){
createButton.addActionListener(this);
this.add(createButton);
}
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(createButton)){
Runnable test = new Runnable() { public void run(){
keygen();}
};
Thread t = new Thread(test);
t.start();
}
}
private static void keygen(){
try {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("GOST3410EL");
KeyPair pair = kpg.generateKeyPair();
System.out.println("OK");
} catch (Exception e) {}
}
}
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.12.2014(UTC) Сообщений: 15
Сказал(а) «Спасибо»: 3 раз
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close