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

Уведомление

Icon
Error

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

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!
Подскажите, пожалуйста, где можно найти пример импорта PFX-контейнера.
В описании последнего релиза указана данная возможность, однако по всем исходникам непосредственно импорт не найден.
Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта.
Offline Евгений Афанасьев  
#2 Оставлено : 17 февраля 2021 г. 15:32:08(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Добрый день.
Автор: 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)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
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)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: 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)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Можно, только в 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)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: 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 Лента
Пользователи, просматривающие эту тему
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.