Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Добрый день! Подскажите, пожалуйста, где можно найти пример импорта PFX-контейнера. В описании последнего релиза указана данная возможность, однако по всем исходникам непосредственно импорт не найден. Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
Добрый день. Автор: RybalkoAA  Был найден модуль PfxReaderExample, но тогда требуется пояснение, как это использовать для импорта. Верно, в составе ACSPClientApp есть этот пример. В нем производится чтение ключей из PFX, зафиксированного в коде. Полученные из PFX ключ и сертификат(ы) могут быть сохранены в другое хранилище, например, HDIMAGE. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Мы так и предположили. Тогда вопрос следующий: Я успешно создаю в своем приложении: Код: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,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Не устанавливал. Это обязательно? Нет ли какого-то аналога метода copyContainerFromDirectory, но для PFX? Мы его используем для загрузки контейнера из ZIP.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
Автор: 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) Сообщений: 9  Откуда: Москва
|
Спасибо. Уточню еще раз: в примере ACSPInClientApp (без внешнего ACSP) реализовать импорт из PFX на текущий момент нельзя?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
Можно, только в ACSPInClientApp нет такого примера. Можно читать PFX, как удобно (перенеся его откуда-то - в виде потока, параметра со base64-строкой и др.), после чего передать в KeyStore с типом PFXSTORE, как в примере в ACSPClientApp. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Прошу простить, не понимаю, о каком примере речь. Я выше привел кусок кода, который не работает без установленного ACSP. Далее спросил, можно ли загрузить PFX без ACSP. Поясните, пожалуйста, какой пример PFXSTORE Вы имеет ввиду?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
Автор: RybalkoAA  Прошу простить, не понимаю, о каком примере речь.
Автор: RybalkoAA  Был найден модуль PfxReaderExample
О том же примере, что был упомянут в начале. Автор: RybalkoAA  Я выше привел кусок кода, который не работает без установленного ACSP.
Автор: Евгений Афанасьев  ACSPClientApp без ACSP не работает. Если обновили ACSPClientApp, то и ACSP надо переустановить.
Автор: RybalkoAA  Далее спросил, можно ли загрузить PFX без ACSP.
Да, например, можно пример PfxReaderExample из ACSPClientApp перенести в ACSPInClientApp. ACSPInClientApp - это пример со встроенным провайдером и не требует ACSP. Автор: RybalkoAA  Поясните, пожалуйста, какой пример PFXSTORE Вы имеет ввиду?
Автор: Евгений Афанасьев  передать в KeyStore с типом PFXSTORE
PFXSTORE - это тип. В примере вы его и использовали для чтения PFX. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Ну подождите, давайте еще раз, я встраиваю этот код к себе в приложение, а не запускаю ACSPInClientApp. И приложение мрачно крашится на Вы говорите, что это не работает без ACSP. А я в свою очередь спрашиваю, можно ли импортировать PFX без ACSP. А Вы мне опять говорите "используйте этот пример" =) Я не могу, пч он крашится)) Так как мне в своем приложении импортировать PFX?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
Автор: RybalkoAA  Ну подождите, давайте еще раз, я встраиваю этот код к себе в приложение, а не запускаю ACSPInClientApp. И приложение мрачно крашится на Вы говорите, что это не работает без ACSP. А я в свою очередь спрашиваю, можно ли импортировать PFX без ACSP. А Вы мне опять говорите "используйте этот пример" =) Я не могу, пч он крашится)) Так как мне в своем приложении импортировать PFX? Ваше приложение имеет внутри наше sdk, как ACSPInClientApp? Если да, то берите пример и обновите наш sdk. Если приложение без sdk внутри, то есть как ACSPClientApp, то надо устанавливать актуальный ACSP. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Да, наше приложение использует CryptoPro SDK, и это SDK обновлено на последнюю версию (используются несколько .aar вместо многих .jar). Я поэтому и спрашиваю, как понять, почему крашится?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,313  Откуда: Крипто-Про Сказал(а) «Спасибо»: 16 раз Поблагодарили: 541 раз в 517 постах
|
В последнем sdk всё сразу включено в SharebLibrary.aar - jar-файлы, конфиг, so-библиотеки. Может быть, у вас остались so-библиотеки и др. файлы от старого sdk? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Вроде бы не осталось. Прикладываю скрины краша.  2021-02-24_09-04-19.png (163kb) загружен 7 раз(а). 2021-02-24_09-05-21.png (158kb) загружен 5 раз(а).
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.09.2020(UTC) Сообщений: 3
|
Добрый день. Проверила корректность работы примера PfxReaderExample следующим образом: 1. в приложение со встроенным провайдером ACSPInClientApp (android-csp-5.0.42324\examples\ACSPInClientApp - данное приложение не требует дополнительной установки приложения ACSP, т.к. содержит все необходимые библиотеки провайдера у себя в папке ACSPInClientApp\libs) скопировала пример PfxReaderExample (из приложения android-csp-5.0.42324\examples\ACSPClientApp) в папку ACSPInClientApp\src\main\java\ru\CryptoPro\ACSPInClientApp\examples; 2. в класс MainActivity после строки 96 добавила следующие строки: Logger.INSTANCE.append("*** 3. PFX reader example ***"); PfxReaderExample pfxReaderExample = new PfxReaderExample(); pfxReaderExample.execute(); 3. на эмулятор Nexus 5 API 29 x86 установила ACSPInClientApp и запустила примеры. Пример "PFX reader example" корректно выполнился. Прошу проверить корректность встраивания провайдера в ваше приложение (обратите внимание на п. 1 и п.3 документа android-csp-5.0.42324\examples\Doc\How_to_build_android_examples.docx, а также на либы в папке ACSPInClientApp\libs и параметр "android:extractNativeLibs="true" файла AndroidManifest.xml) или предлагаю попробовать собрать ACSPInClientApp с примером PfxReaderExample так, как описано выше.  PfxReaderExample.png (110kb) загружен 3 раз(а).Отредактировано пользователем 24 февраля 2021 г. 12:57:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 16.02.2021(UTC) Сообщений: 9  Откуда: Москва
|
Нативки добавлены, доп.пакеты указаны. К тому же, всё работает, кроме этого нового режима. Т.е. подпись и пр. работает. По приложенной детализации ошибки что-то видно?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 09.09.2020(UTC) Сообщений: 3
|
Добрый день. Такая ошибка может быть, если используется старая библиотека libcspjni.so. Прошу попробовать у себя собрать и запустить приложение ACSPInClientApp с примером PfxReaderExample. Проект ACSPInClientApp с примером PfxReaderExample находится тут - https://file.cryptopro.r...jBYmKSEdfSj/examples.zip
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close