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

Уведомление

Icon
Error

4 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline RybalkoAA  
#1 Оставлено : 16 февраля 2021 г. 13:55:15(UTC)
RybalkoAA

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

Группы: Участники
Зарегистрирован: 16.02.2021(UTC)
Сообщений: 21
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Добрый день!
Подскажите, пожалуйста, где можно найти пример импорта PFX-контейнера.
В описании последнего релиза указана данная возможность, однако по всем исходникам непосредственно импорт не найден.
Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта.

Wanna join the discussion?! Login to your Форум КриптоПро forum account. Новые регистрации запрещены.

Offline Евгений Афанасьев  
#2 Оставлено : 17 февраля 2021 г. 15:32:08(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,025
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 725 раз в 684 постах
Добрый день.
Автор: RybalkoAA Перейти к цитате
Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта.

Верно, в составе ACSPClientApp есть этот пример. В нем производится чтение ключей из PFX, зафиксированного в коде. Полученные из PFX ключ и сертификат(ы) могут быть сохранены в другое хранилище, например, HDIMAGE.

Offline RybalkoAA  
#3 Оставлено : 17 февраля 2021 г. 16:21:32(UTC)
RybalkoAA

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

Группы: Участники
Зарегистрирован: 16.02.2021(UTC)
Сообщений: 21
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Мы так и предположили.
Тогда вопрос следующий:
Я успешно создаю в своем приложении:

Код:
ByteArrayInputStream in = new ByteArrayInputStream(pfx_content);
KeyStore pfxStore = KeyStore.getInstance(JCSP.PFX_STORE_NAME, JCSP.PROVIDER_NAME);


Однако далее на:
Код:
pfxStore.load(in, password);

приложение крашится. Как понять или посмотреть, в чем дело?
Offline Евгений Афанасьев  
#4 Оставлено : 17 февраля 2021 г. 18:33:27(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,025
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 725 раз в 684 постах
ACSP переустановили?
Offline RybalkoAA  
#5 Оставлено : 18 февраля 2021 г. 9:23:07(UTC)
RybalkoAA

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

Группы: Участники
Зарегистрирован: 16.02.2021(UTC)
Сообщений: 21
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Не устанавливал. Это обязательно?
Нет ли какого-то аналога метода copyContainerFromDirectory, но для PFX? Мы его используем для загрузки контейнера из ZIP.
Offline Евгений Афанасьев  
#6 Оставлено : 18 февраля 2021 г. 10:18:09(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,025
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 725 раз в 684 постах
Автор: RybalkoAA Перейти к цитате
Не устанавливал. Это обязательно?
Нет ли какого-то аналога метода copyContainerFromDirectory, но для PFX? Мы его используем для загрузки контейнера из ZIP.

ACSPClientApp без ACSP не работает. Если обновили ACSPClientApp, то и ACSP надо переустановить.
Аналога copyContainerFromDirectory нет, copyContainerFromDirectory - это самописный метод для простого копирования файлов из одного места в другое.
В ACSP и в JInitCSP.aar есть FileExplorerActivity - класс проводника, пример:
Код:

    /**
     * Разделитель для задания фильтра расширений.
     */
    public static final String FILE_FILTER_SEP = ";";
    /**
     * Выбор только папки или файла.
     */
    public static final String INTENT_EXTRA_IN_ONLY_DIRS = "onlyDirs";
    /**
     * Отображение скрытых объектов.
     */
    public static final String INTENT_EXTRA_IN_SHOW_HIDDEN = "showHidden";
    /**
     * Фильтр расширений файлов, заданный с помощью
     * разделителя {@link #FILE_FILTER_SEP}.
     */
    public static final String INTENT_EXTRA_IN_FILE_FILTER = "fileFilter";
    /**
     * Выбранный объект (путь к файлу или папке).
     */
    public static final String INTENT_EXTRA_OUT_CHOSEN_OBJECT = "chosenObject";

Код:

    Intent intent = new Intent(this, FileExplorerActivity.class); // или использовать "ru.cprocsp.ACSP.util.FileExplorerActivity"
    intent.putExtra(FileExplorerActivity.INTENT_EXTRA_IN_ONLY_DIRS, true); // true - только папки
    startActivityForResult(intent, FILE_SELECT_CODE);
    ...
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        switch (requestCode) {

            case FILE_SELECT_CODE: {

                if (resultCode == Activity.RESULT_OK && data != null) {

                    String chosenPath = data.getStringExtra(FileExplorerActivity.INTENT_EXTRA_OUT_CHOSEN_OBJECT); // путь к папке или файлу
                    // копирование
                }
            }
        }
    }
Offline RybalkoAA  
#7 Оставлено : 18 февраля 2021 г. 19:27:15(UTC)
RybalkoAA

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

Группы: Участники
Зарегистрирован: 16.02.2021(UTC)
Сообщений: 21
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Спасибо.
Уточню еще раз: в примере ACSPInClientApp (без внешнего ACSP) реализовать импорт из PFX на текущий момент нельзя?
Offline Евгений Афанасьев  
#8 Оставлено : 18 февраля 2021 г. 19:30:31(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,025
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 725 раз в 684 постах
Можно, только в ACSPInClientApp нет такого примера. Можно читать PFX, как удобно (перенеся его откуда-то - в виде потока, параметра со base64-строкой и др.), после чего передать в KeyStore с типом PFXSTORE, как в примере в ACSPClientApp.
Offline RybalkoAA  
#9 Оставлено : 20 февраля 2021 г. 11:09:23(UTC)
RybalkoAA

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

Группы: Участники
Зарегистрирован: 16.02.2021(UTC)
Сообщений: 21
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 1 раз
Прошу простить, не понимаю, о каком примере речь.
Я выше привел кусок кода, который не работает без установленного ACSP.
Далее спросил, можно ли загрузить PFX без ACSP.
Поясните, пожалуйста, какой пример PFXSTORE Вы имеет ввиду?
Offline Евгений Афанасьев  
#10 Оставлено : 20 февраля 2021 г. 11:29:14(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,025
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 725 раз в 684 постах
Автор: RybalkoAA Перейти к цитате

Прошу простить, не понимаю, о каком примере речь.

Автор: RybalkoAA Перейти к цитате

Был найден модуль PfxReaderExample

О том же примере, что был упомянут в начале.
Автор: RybalkoAA Перейти к цитате

Я выше привел кусок кода, который не работает без установленного ACSP.

Автор: Евгений Афанасьев Перейти к цитате

ACSPClientApp без ACSP не работает. Если обновили ACSPClientApp, то и ACSP надо переустановить.

Автор: RybalkoAA Перейти к цитате

Далее спросил, можно ли загрузить PFX без ACSP.

Да, например, можно пример PfxReaderExample из ACSPClientApp перенести в ACSPInClientApp. ACSPInClientApp - это пример со встроенным провайдером и не требует ACSP.
Автор: RybalkoAA Перейти к цитате

Поясните, пожалуйста, какой пример PFXSTORE Вы имеет ввиду?

Автор: Евгений Афанасьев Перейти к цитате

передать в KeyStore с типом PFXSTORE

PFXSTORE - это тип. В примере вы его и использовали для чтения PFX.

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