Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2018(UTC) Сообщений: 7 
|
Каким образом возможно в приложении на android при создании отсоединённой подписи в случае если уже имеется ранее созданная отсоединённая подпись, добавить вновь создаваемую подпись к существующей, т.е. осуществить соподписание? Примеры содержат только сооздание новой подписи.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,024  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 725 раз в 684 постах
|
Здравствуйте. В samples-sources.jar в дистрибутиве jcp в пакете CAdES есть примеры соподписи. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2018(UTC) Сообщений: 7 
|
При попытке запустить любой пример получаю следующее исключение: W/System.err: Invalid encryption oid 1.2.643.7.1.1.1.1 (invalid private key algorithm or encryption algorithm), expected: 1.2.643.7.1.1.6.1; error codes: [109] 'Algorithm mismatch', W/System.err: at ru.CryptoPro.CAdES.cl_1.addSigner(Unknown Source:568) W/System.err: at crypto.CAdES.SignExample.createMixedSignatureWith2Signers(SignExample.java:90) W/System.err: at crypto.CAdES.SignExample.signExample(SignExample.java:171) W/System.err: at crypto.CAdES.SignExample.main(SignExample.java:207)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,024  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 725 раз в 684 постах
|
В примере createMixedSignatureWith2Signers, скорее всего, зафиксированы oid'ы подаваемых в addSigner алгоритмов. Задайте их null (алгоритм подписи и хеширования). |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2018(UTC) Сообщений: 7 
|
OID'ы берутся из конфигурации: public static InputStream createMixedSignatureWith2Signers(IConfiguration config, String outFileName) throws Exception { CAdESSignature cadesSignature = new CAdESSignature(config.detached()); cadesSignature.setCertificateStore(config.getCertificateStore()); cadesSignature.setCRLStore(config.getCRLStore()); // Создаем подписанта CAdES-BES. cadesSignature.addSigner(config.getProviderName(), config.getDigestOid(), config.getPublicKeyOid(), config.getPrivateKey(), config.getChain(), CAdESType.CAdES_BES, null, false, config.getSignedAttributes(), config.getUnsignedAttributes(), config.getCRLs());
При попытке передать вместо них null получаю следующее: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate',
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,024  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 725 раз в 684 постах
|
Нужно включить логирование: adb shell setprop log.tag.JCP DEBUG (отключение - adb shell setprop log.tag.JCP INFO) и посмотреть лог adb. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2018(UTC) Сообщений: 7 
|
В логе следующее: 2019-05-20 12:28:10.989 26132-26132/com.example.tabtest D/JCP: ru.CryptoPro.JCSP.Key.GostKeyFactory.engineGeneratePublic :: enter 2019-05-20 12:28:10.990 26132-26132/com.example.tabtest D/JCP: ru.CryptoPro.JCSP.Key.GostKeyFactory.engineGeneratePublic :: exit 2019-05-20 12:28:11.034 26132-26132/com.example.tabtest W/JCP: ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build :: unable to find valid certification path to requested target sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:291) at ru.CryptoPro.reprov.CPCertPathBuilder.engineBuild(Unknown Source:88) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:291) at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl$1CertPathBuilderWrapper.build(Unknown Source:4) at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source:224) at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source:84) at ru.CryptoPro.CAdES.cl_1.addSigner(Unknown Source:190) at crypto.CAdES.SignExample.createMixedSignatureWith2Signers(SignExample.java:84) at crypto.CAdES.SignExample.signExample(SignExample.java:177) at crypto.CAdES.SignExample.main(SignExample.java:213)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,024  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 725 раз в 684 постах
|
Вероятно, в локальное хранилище доверенных сертификатов <папка_приложения>/security/cacerts формата BKS (пароль changeit) или в "Настройки"-"Безопасность"-"Сертификаты" не установлен(ы) корневой(ые) сертификат(ы) для построения цепочки. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2018(UTC) Сообщений: 7 
|
Как это можно проверить? Подписание по типу примера из тестового приложения работает. Описанные ситуации происходят при использовании JCSP. При попытке использовать JCP получаем следующее: java.lang.NullPointerException at java.util.Objects.requireNonNull(Objects.java:203) at java.util.Arrays$ArrayList.<init>(Arrays.java:3741) at java.util.Arrays.asList(Arrays.java:3728) at crypto.CAdES.configuration.Configuration.loadConfiguration(Configuration.java:374) at crypto.CAdES.configuration.Configuration.loadConfiguration(Configuration.java:334) at crypto.CAdES.configuration.SimpleConfiguration.<init>(SimpleConfiguration.java:44) at crypto.CAdES.configuration.SimpleConfiguration.<init>(SimpleConfiguration.java:32) at crypto.CAdES.SignExample.signExample(SignExample.java:175) at crypto.CAdES.SignExample.main(SignExample.java:214)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,024  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 725 раз в 684 постах
|
Автор: Лис545  java.lang.NullPointerException at java.util.Objects.requireNonNull(Objects.java:203) at java.util.Arrays$ArrayList.<init>(Arrays.java:3741) at java.util.Arrays.asList(Arrays.java:3728)
В список, видимо, подается null. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close