Статус: Участник
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 21 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Добрый день! Подскажите, пожалуйста, где можно найти пример импорта PFX-контейнера. В описании последнего релиза указана данная возможность, однако по всем исходникам непосредственно импорт не найден. Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Добрый день. Автор: RybalkoAA Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта. Верно, в составе ACSPClientApp есть этот пример. В нем производится чтение ключей из PFX, зафиксированного в коде. Полученные из PFX ключ и сертификат(ы) могут быть сохранены в другое хранилище, например, HDIMAGE. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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);
приложение крашится. Как понять или посмотреть, в чем дело?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 21 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Не устанавливал. Это обязательно? Нет ли какого-то аналога метода copyContainerFromDirectory, но для PFX? Мы его используем для загрузки контейнера из ZIP.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Автор: 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); // путь к папке или файлу
// копирование
}
}
}
}
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 21 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Спасибо. Уточню еще раз: в примере ACSPInClientApp (без внешнего ACSP) реализовать импорт из PFX на текущий момент нельзя?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Можно, только в ACSPInClientApp нет такого примера. Можно читать PFX, как удобно (перенеся его откуда-то - в виде потока, параметра со base64-строкой и др.), после чего передать в KeyStore с типом PFXSTORE, как в примере в ACSPClientApp. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 21 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Прошу простить, не понимаю, о каком примере речь. Я выше привел кусок кода, который не работает без установленного ACSP. Далее спросил, можно ли загрузить PFX без ACSP. Поясните, пожалуйста, какой пример PFXSTORE Вы имеет ввиду?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Автор: RybalkoAA Прошу простить, не понимаю, о каком примере речь.
Автор: RybalkoAA Был найден модуль PfxReaderExample
О том же примере, что был упомянут в начале. Автор: RybalkoAA Я выше привел кусок кода, который не работает без установленного ACSP.
Автор: Евгений Афанасьев ACSPClientApp без ACSP не работает. Если обновили ACSPClientApp, то и ACSP надо переустановить.
Автор: RybalkoAA Далее спросил, можно ли загрузить PFX без ACSP.
Да, например, можно пример PfxReaderExample из ACSPClientApp перенести в ACSPInClientApp. ACSPInClientApp - это пример со встроенным провайдером и не требует ACSP. Автор: RybalkoAA Поясните, пожалуйста, какой пример PFXSTORE Вы имеет ввиду?
Автор: Евгений Афанасьев передать в KeyStore с типом PFXSTORE
PFXSTORE - это тип. В примере вы его и использовали для чтения PFX. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close