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

Уведомление

Icon
Error

3 Страницы<123
Опции
К последнему сообщению К первому непрочитанному
Offline Cynepnaxa  
#21 Оставлено : 16 июля 2015 г. 6:37:47(UTC)
Cynepnaxa

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

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

Добрый день!
Мы напрямую инициализируем TrustManagerFactory хранилищем. Код у нас следующий:

Код:
 /**
   * Открытие слушающего сокета для входящих соединений.
   * 
   * @param port - слушаемый порт.
   */
  protected ServerSocket openListenSocket(int port) throws IOException {
    SSLContext ctx = getContext();
    String bindIp = config.getParam("bindIp");
    ServerSocket socket;
    if ("*".equals(bindIp)) {
      socket = ctx.getServerSocketFactory().createServerSocket(port);
    } else {
      socket = ctx.getServerSocketFactory().createServerSocket(
        port, 10000, InetAddress.getByName(config.getParam("bindIp")));
    }
    ((SSLServerSocket) socket).setNeedClientAuth(true);
    ((SSLServerSocket) socket).setPerformancePreferences(2, 1, 0);
    return socket;
  }

  /**
   * Инициализация ssl-контекста для ГОСТ и RSA,
   * 
   * @return SSLContext контекст соединения
   * @throws IOException при ошибке
   */
  public SSLContext getContext() throws IOException {
    try {
      KeyManagerFactory kmf = null;
      TrustManagerFactory tmf = null;
      KeyStore ts = null;
      String sslContext = config.getParam("sslContext");
      if ("GostTLS".equals(sslContext)) {
        KeyStore ks = KeyStore.getInstance("HDImageStore");
        ks.load(null, null);
        kmf = KeyManagerFactory.getInstance("GostX509");
        kmf.init(ks, config.getParam("keyStorePassword").toCharArray());
        ts = KeyStore.getInstance("HDImageStore");
        tmf = TrustManagerFactory.getInstance("GostX509");
      } else {
        FileInputStream ksStream = null;
        try {
          KeyStore ks = KeyStore.getInstance("JKS");
          ksStream = new FileInputStream(config.getParam("keyStore"));
          ks.load(ksStream, config.getParam("keyStorePassword").toCharArray());
          kmf = KeyManagerFactory.getInstance("SunX509");
          kmf.init(ks, config.getParam("keyStorePassword").toCharArray());
        } finally {
          IOUtils.closeQuietly(ksStream);
        }
        ts = KeyStore.getInstance("JKS");
        tmf = TrustManagerFactory.getInstance("SunX509");
      }
      FileInputStream tsFile = null;
      try {
        tsFile = new FileInputStream(config.getParam("trustStore"));
        ts.load(tsFile, config.getParam("trustStorePassword").toCharArray());
        tmf.init(ts);
      } finally {
        IOUtils.closeQuietly(tsFile);
      }
      SSLContext ctx = SSLContext.getInstance(sslContext);
      ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
      return ctx;
    } catch (IOException e) {
      throw new IOException(e.getMessage(), e);
    } catch (GeneralSecurityException e) {
      throw new IOException(e.getMessage(), e);
    }
  }
Offline Cynepnaxa  
#22 Оставлено : 16 июля 2015 г. 6:55:45(UTC)
Cynepnaxa

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

Группы: Участники
Зарегистрирован: 04.04.2008(UTC)
Сообщений: 43
Откуда: Новосибирск

Подскажите а можно посмотреть исходники trust и keymanager? Вышлите если можно на cynepnaxa@gmail.com. Хочу понять, стоит ли писать свои.

Отредактировано пользователем 16 июля 2015 г. 6:58:11(UTC)  | Причина: Не указана

Offline eagames-ru  
#23 Оставлено : 23 марта 2016 г. 8:28:28(UTC)
eagames-ru

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

Группы: Участники
Зарегистрирован: 30.11.2012(UTC)
Сообщений: 21
Откуда: Уфа

Поблагодарили: 1 раз в 1 постах
Автор: Cynepnaxa Перейти к цитате
Добрый день!
Разрабатываем сервер, использующий JTLS. Подскажите пожалуйста, а можно как-нибудь ключ выбирать не первый попавшийся к которому пароль подошел, а сначала контейнер по названию выбрать, потом его пароль проверить?



https://www.cryptopro.ru...ts&m=67699#post67699
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы<123
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.