Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Romani4  
#1 Оставлено : 31 января 2011 г. 19:50:12(UTC)
Romani4

Статус: Участник

Группы: Участники
Зарегистрирован: 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();

И можно ли как нибудь программно инициализировать ДСЧ?
Offline Romani4  
#2 Оставлено : 1 февраля 2011 г. 4:27:08(UTC)
Romani4

Статус: Участник

Группы: Участники
Зарегистрирован: 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 из числа документированных классов.
Offline Iva  
#3 Оставлено : 1 февраля 2011 г. 16:07:28(UTC)
Iva

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

Вывести наружу окошко инициализации bio-дсч нельзя, тогда Вы сможете туда накидать сообщений, и никакой случайности не будет. Изготовление ключа самая критическая процедура с точки зрения безопасности. К тому же нечастая, раз в год например. Лучше не делать пользовательские ключи из Applet-а. Консольный датчик предназначен для unix-систем без установленных X-ов, он не поможет. Не знаю как прицепить консоль к applet-у.
Offline Iva  
#4 Оставлено : 1 февраля 2011 г. 16:36:40(UTC)
Iva

Статус: Активный участник

Группы: Участники
Зарегистрирован: 09.10.2008(UTC)
Сообщений: 181

А если запустить в отдельном потоке тоже не работает?
Offline Romani4  
#5 Оставлено : 2 февраля 2011 г. 3:21:10(UTC)
Romani4

Статус: Участник

Группы: Участники
Зарегистрирован: 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"); //фреймовый

Для данной операции нужны админские права.
Offline Iva  
#6 Оставлено : 2 февраля 2011 г. 20:41:51(UTC)
Iva

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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) {}
}
}
Offline mrnuke  
#7 Оставлено : 14 января 2015 г. 14:38:13(UTC)
mrnuke

Статус: Участник

Группы: Участники
Зарегистрирован: 03.12.2014(UTC)
Сообщений: 15

Сказал(а) «Спасибо»: 3 раз
.

Отредактировано пользователем 14 января 2015 г. 17:47:28(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.