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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline lexd5  
#1 Оставлено : 16 октября 2014 г. 11:25:48(UTC)
lexd5

Статус: Новичок

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

Добрый день!

Пытаюсь подписать массив байт (сначала файл, потом просто сообщение из примера), но при вызове sn.sign() приложение падает, причем в лог не вывоятся никакие записи, последнее что отображается:
10-16 10:51:28.800 31847-31847/? E/cprocsp﹕ 10:51:28.818311 support_an_fopen:83 p:31847 t:0x0x400ce0d9 support_an_fopen("/data/data/[имя пакета приложения]/cprocsp/users/10101.10101/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)
10-16 10:51:28.800 31847-31847/? E/cprocsp﹕ 10:51:28.819236 support_an_fopen:83 p:31847 t:0x0x400ce0d9 support_an_fopen("/data/data/[имя пакета приложения]/cprocsp/users/10101.10101/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)

При загрузке библиотеку проинициализировал:

int initCode = CSPConfig.init(context);
boolean initOk = initCode == CSPConfig.CSP_INIT_OK;
if (initOk) {
if (Security.getProvider(JCSP.PROVIDER_NAME) == null) {
Security.addProvider(new JCSP());
}
if (Security.getProvider(JCSP_2012_256.PROVIDER_NAME) == null) {
Security.addProvider(new JCSP_2012_256());
}
if (Security.getProvider(JCSP_2012_512.PROVIDER_NAME) == null) {
Security.addProvider(new JCSP_2012_512());
}
if (Security.getProvider(ru.CryptoPro.ssl.Provider.PROVIDER_NAME) == null) {
Security.addProvider(new ru.CryptoPro.ssl.Provider());
}
if (Security.getProvider(RevCheck.PROVIDER_NAME) == null) {
Security.addProvider(new RevCheck());
}

}

Ключи добавляются и возвращаются обратно нормально

Само подписание происходит следующим образом:

KeyStore keyStore = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME);
keyStore.load(null, null);

PrivateKey privateKey = (PrivateKey)keyStore.getKey(alias, password.toCharArray()); //Ключи из тестового примера, alias = "clienTLS", password = "1"

String signAlgorithm = Utility.getSignatureAlgorithmByKeyAlgorithm(privateKey.getAlgorithm()); //privateKey = "CryptoPro Gost Exchange PrivateKey with parameters: 1.2.643.2.2.98";
//signAlgorithm = "GOST3411withGOST3410EL"
Signature sn = Signature.getInstance(signAlgorithm, JCSP.PROVIDER_NAME);
sn.initSign(privateKey);
byte[] fileContent = "Hello, World!".getBytes();
sn.update(fileContent);

return sn.sign(); //Вот тут приложение падает, причем это не просто необработанный exception, а падаети еще до вывода exception =((

Помогите пожалуйста, в чем может быть дело?
Offline Евгений Афанасьев  
#2 Оставлено : 16 октября 2014 г. 13:46:48(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
1) можно включить логирование для JCSP, об этом есть в how_to_build... в документации к примеру (adb shell setprop log.tag.JCP DEBUG);
2) нужен полный лог исключения, т.к. исключение вида support_an_fopen:83 - не причина ошибки;
3) попробуйте последний дистрибутив с примером, т.к. там уже нет разделения JCSP по алгоритму типа JCSP_2012_256 и т.п., все в одном JCSP (плюч были изменения и исправления ошибок).

Отредактировано пользователем 16 октября 2014 г. 13:48:30(UTC)  | Причина: Не указана

Offline a_kildishev  
#3 Оставлено : 23 июня 2015 г. 11:04:12(UTC)
a_kildishev

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Добрый день! Я столкнулся с аналогичной проблемой: приложение падает при при попытке вычисления электронной подписи.

Версия дистрибутива: 4.0.38150

Код, вызывающий ошибку:

Код:
Signature signature = Signature.getInstance(JCP.GOST_EL_SIGN_NAME, JCSP.PROVIDER_NAME);
signature.initSign(getPrivateKey()); // метод getPrivateKey() корректно извлекает закрытый ключ из харнилища "Rutoken lite SD 1"
signature.update(ticket.getBody());  //  ticket.getBody() возвращает рандомный массив byte[]
signature.sign(); // на этом месте происходит падение приложения


Содержание логов:

по тэгу cprocsp

Код:
06-23 10:42:40.437    5273-5957/org.a_soft.screenlocker E/cprocsp﹕ 10:42:40.451212 support_an_fopen:87 p:5273 t:0x0x400589e1 support_an_fopen("/data/data/org.a_soft.screenlocker/cprocsp/users/10196.10196/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)
06-23 10:42:40.928    5273-5957/org.a_soft.screenlocker E/cprocsp﹕ 10:42:40.937066 support_an_fopen:87 p:5273 t:0x0x400589e1 support_an_fopen("/data/data/org.a_soft.screenlocker/cprocsp/users/10196.10196/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)
06-23 10:42:42.439    7897-7897/? E/cprocsp﹕ 10:42:42.454661 support_an_fopen:87 p:7897 t:0x0x400589e1 support_an_fopen("/data/data/org.a_soft.screenlocker/cprocsp/users/10196.10196/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)
06-23 10:42:42.439    7897-7897/? E/cprocsp﹕ 10:42:42.454814 support_an_fopen:87 p:7897 t:0x0x400589e1 support_an_fopen("/data/data/org.a_soft.screenlocker/cprocsp/users/10196.10196/policies.ini", "rb") = 0x0x0 fail No such file or directory(2)
06-23 10:42:42.529    7897-7897/? E/cprocsp﹕ 10:42:42.542041 support_an_fopen:87 p:7897 t:0x0x400589e1 support_an_fopen("/data/data/org.a_soft.screenlocker/cprocsp/users/global.ini", "rb") = 0x0x0 fail No such file or directory(2)


по тэгу JCP

Код:

06-23 10:37:02.917    4469-4469/? I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: Loading JCSP 2.0 38150
06-23 10:37:02.927    4469-4469/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2001_class_default = Crypto-Pro GOST R 34.10-2001 KC1 CSP
06-23 10:37:02.927    4469-4469/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_256_class_default = Crypto-Pro GOST R 34.10-2012 KC1 CSP
06-23 10:37:02.927    4469-4469/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_512_class_default = Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP
06-23 10:37:03.127    4469-4469/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/KeyStore :: JCSPStoreConfig_class_Store = ru.CryptoPro.JCSP.KeyStore.JCSPStore001,ru.CryptoPro.JCSP.KeyStore.JCSPStore002,ru.CryptoPro.JCSP.KeyStore.JCSPStore003,ru.CryptoPro.JCSP.KeyStore.JCSPStore004,ru.CryptoPro.JCSP.KeyStore.JCSPStore005,ru.CryptoPro.JCSP.KeyStore.JCSPStore006,ru.CryptoPro.JCSP.KeyStore.JCSPStore007
06-23 10:37:03.137    4469-4469/? I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: JCSP loaded.
06-23 10:37:42.579    4469-4815/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCP/tools :: SelfTester_external_classNames = null
06-23 10:37:42.599    4469-4815/? I/JCP﹕ ru.CryptoPro.JCSP.Starter.check :: Loading JCSP 2.0 38150
06-23 10:37:42.720    4469-4815/? I/JCP﹕ ru.CryptoPro.JCSP.Starter.check :: JCSP loaded.
06-23 10:37:42.780    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: DigestParamsSpec_class_default = null
06-23 10:37:42.780    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: DigestParamsSpec_2012_256_class_default = null
06-23 10:37:42.780    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: DigestParamsSpec_2012_512_class_default = null
06-23 10:37:42.790    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_class_default = null
06-23 10:37:42.790    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_class_defaultDH = null
06-23 10:37:42.790    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_256_class_default = null
06-23 10:37:42.790    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_256_dh_class_defaultDH = null
06-23 10:37:42.790    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_512_class_default = null
06-23 10:37:42.800    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_512_dh_class_defaultDH = null
06-23 10:37:43.631    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpecDH_class_defaultDH = null
06-23 10:37:43.631    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpecDH_2012_256_class_defaultDH = null
06-23 10:37:43.631    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpec_class_defaultECC = null
06-23 10:37:43.631    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpec_2012_256_class_defaultECC = null
06-23 10:37:43.641    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: CryptParamsSpec_class_default = null
06-23 10:37:43.641    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: CryptParamsSpec_2012_256_class_default = null
06-23 10:37:43.641    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: CryptParamsSpec_2012_512_class_default = null
06-23 10:37:43.741    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getInt :: System Preference Node: /ru/CryptoPro/JCP/Key :: PublicKeySpec_class_default = -1
06-23 10:37:44.111    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getInt :: System Preference Node: /ru/CryptoPro/JCP/tools/CPVerify :: DigestStoreDefaultCPVerify_class_WhatRepositoryKeyName = -1
06-23 10:37:44.111    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCP/tools :: UnixMutex_class_pathToLocks = /data/data/org.a_soft.screenlocker/cprocsp/tmp
06-23 10:37:44.111    4469-4831/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getInt :: System Preference Node: /ru/CryptoPro/JCP/tools/CPVerify :: DigestStoreDefaultCPVerify_class_WhatRepositoryKeyName = -1
06-23 10:37:49.427    4469-4815/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpecDH2012_512_class_defaultECC2012 = null
06-23 10:37:49.427    4469-4815/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpec2012_512_class_defaultECC2012 = null
06-23 10:37:58.486    5033-5033/? I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: Loading JCSP 2.0 38150
06-23 10:37:58.496    5033-5033/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2001_class_default = Crypto-Pro GOST R 34.10-2001 KC1 CSP
06-23 10:37:58.496    5033-5033/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_256_class_default = Crypto-Pro GOST R 34.10-2012 KC1 CSP
06-23 10:37:58.496    5033-5033/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_512_class_default = Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP
06-23 10:37:58.707    5033-5033/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/KeyStore :: JCSPStoreConfig_class_Store = ru.CryptoPro.JCSP.KeyStore.JCSPStore001,ru.CryptoPro.JCSP.KeyStore.JCSPStore002,ru.CryptoPro.JCSP.KeyStore.JCSPStore003,ru.CryptoPro.JCSP.KeyStore.JCSPStore004,ru.CryptoPro.JCSP.KeyStore.JCSPStore005,ru.CryptoPro.JCSP.KeyStore.JCSPStore006,ru.CryptoPro.JCSP.KeyStore.JCSPStore007
06-23 10:37:58.717    5033-5033/? I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: JCSP loaded.
06-23 10:38:14.784    5273-5273/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: Loading JCSP 2.0 38150
06-23 10:38:14.814    5273-5273/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2001_class_default = Crypto-Pro GOST R 34.10-2001 KC1 CSP
06-23 10:38:14.824    5273-5273/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_256_class_default = Crypto-Pro GOST R 34.10-2012 KC1 CSP
06-23 10:38:14.824    5273-5273/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_512_class_default = Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP
06-23 10:38:15.164    5273-5273/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/KeyStore :: JCSPStoreConfig_class_Store = ru.CryptoPro.JCSP.KeyStore.JCSPStore001,ru.CryptoPro.JCSP.KeyStore.JCSPStore002,ru.CryptoPro.JCSP.KeyStore.JCSPStore003,ru.CryptoPro.JCSP.KeyStore.JCSPStore004,ru.CryptoPro.JCSP.KeyStore.JCSPStore005,ru.CryptoPro.JCSP.KeyStore.JCSPStore006,ru.CryptoPro.JCSP.KeyStore.JCSPStore007
[h]06-23 10:38:15.214    5273-5273/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: JCSP loaded.
06-23 10:38:37.228    5273-5957/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCP/tools :: SelfTester_external_classNames = null
06-23 10:38:37.408    5273-5957/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCSP.Starter.check :: Loading JCSP 2.0 38150
06-23 10:38:42.403    5273-5957/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCSP.Starter.check :: JCSP loaded.
06-23 10:38:42.423    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: DigestParamsSpec_class_default = null
06-23 10:38:42.433    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: DigestParamsSpec_2012_256_class_default = null
06-23 10:38:42.433    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: DigestParamsSpec_2012_512_class_default = null
06-23 10:38:42.493    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_class_default = null
06-23 10:38:42.493    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_class_defaultDH = null
06-23 10:38:42.493    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_256_class_default = null
06-23 10:38:42.503    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_256_dh_class_defaultDH = null
06-23 10:38:42.503    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_512_class_default = null
06-23 10:38:42.503    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: AlgIdSpec_2012_512_dh_class_defaultDH = null
06-23 10:39:22.957    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpecDH_class_defaultDH = null
06-23 10:39:22.957    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpecDH_2012_256_class_defaultDH = null
06-23 10:39:22.957    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpec_class_defaultECC = null
06-23 10:39:22.967    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpec_2012_256_class_defaultECC = null
06-23 10:39:23.097    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: CryptParamsSpec_class_default = null
06-23 10:39:23.107    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: CryptParamsSpec_2012_256_class_default = null
06-23 10:39:23.117    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: CryptParamsSpec_2012_512_class_default = null
06-23 10:39:37.922    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getInt :: System Preference Node: /ru/CryptoPro/JCP/Key :: PublicKeySpec_class_default = -1
06-23 10:41:01.021    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getInt :: System Preference Node: /ru/CryptoPro/JCP/tools/CPVerify :: DigestStoreDefaultCPVerify_class_WhatRepositoryKeyName = -1
06-23 10:41:01.031    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCP/tools :: UnixMutex_class_pathToLocks = /data/data/org.a_soft.screenlocker/cprocsp/tmp
06-23 10:41:01.071    5273-6047/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getInt :: System Preference Node: /ru/CryptoPro/JCP/tools/CPVerify :: DigestStoreDefaultCPVerify_class_WhatRepositoryKeyName = -1
06-23 10:42:20.726    5273-5957/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpecDH2012_512_class_defaultECC2012 = null
06-23 10:42:20.736    5273-5957/org.a_soft.screenlocker I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.getOID :: System Preference Node: /ru/CryptoPro/JCP/params :: EllipticParamsSpec2012_512_class_defaultECC2012 = null
06-23 10:42:42.419    7897-7897/? I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: Loading JCSP 2.0 38150
06-23 10:42:42.429    7897-7897/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2001_class_default = Crypto-Pro GOST R 34.10-2001 KC1 CSP
06-23 10:42:42.429    7897-7897/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_256_class_default = Crypto-Pro GOST R 34.10-2012 KC1 CSP
06-23 10:42:42.429    7897-7897/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/params :: DefaultCSPProvider_2012_512_class_default = Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP
06-23 10:42:42.630    7897-7897/? I/JCP﹕ ru.CryptoPro.JCP.pref.JCPPref.get :: System Preference Node: /ru/CryptoPro/JCSP/KeyStore :: JCSPStoreConfig_class_Store = ru.CryptoPro.JCSP.KeyStore.JCSPStore001,ru.CryptoPro.JCSP.KeyStore.JCSPStore002,ru.CryptoPro.JCSP.KeyStore.JCSPStore003,ru.CryptoPro.JCSP.KeyStore.JCSPStore004,ru.CryptoPro.JCSP.KeyStore.JCSPStore005,ru.CryptoPro.JCSP.KeyStore.JCSPStore006,ru.CryptoPro.JCSP.KeyStore.JCSPStore007
06-23 10:42:42.640    7897-7897/? I/JCP﹕ ru.CryptoPro.JCSP.JCSP.<init> :: JCSP loaded.



Кроме того, в общих логах приложения есть сообщение
Код:
06-23 10:42:41.108    5273-5957/org.a_soft.screenlocker A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x00000014 (code=1), thread 5957 (AsyncTask #5)

и кусочек дампа.
Исключений, ошибок и, сооветственно, стэктрейсов в логах нет.

Offline Евгений Афанасьев  
#4 Оставлено : 23 июня 2015 г. 11:15:03(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте. На первый взгляд, все в порядке (в приведенных сообщениях нет явных ошибок). На контейнер имеется пароль? Может быть, не сделали
Код:

@Override
public void onResume() {
    super.onResume();
    CSPConfig.registerActivityContext(this);
}

?

Отредактировано пользователем 23 июня 2015 г. 11:19:47(UTC)  | Причина: Не указана

Offline a_kildishev  
#5 Оставлено : 23 июня 2015 г. 11:40:06(UTC)
a_kildishev

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Спасибо за ответ. Действительно, такого кода у меня нет. Но я не совсем понимаю, для чего его необходимо использовать в моем случае. Видимо, я что-то упускаю: в документации(ЖТЯИ.00087-01 90 09. Руководство программиста) ничего не говорится о необходимости ввода пина при использовании метода Signature.sign(). Если Вы имеете ввиду извлечение приватного ключа, то для этого используется метод с явной передачей пароля KeyStore.getKey(String alias, char[] password).
Offline Евгений Афанасьев  
#6 Оставлено : 23 июня 2015 г. 11:44:53(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
getKey() в этом случае не передает пароль - в случае установленного на контейнер пароля появится окно для его ввода при обращении к ключу (т.е. sign()). Для корректного отображения окна нужен контекст, который передается в CSPConfig.registerActivityContext. Чтобы передать пароль явно, следует использовать getKeyEntry().

P.S. В "2.6.2. Чтение ключей электронной подписи и ключевого обмена с алгоритмами ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012 с ключевых носителей" руководства программиста (для JCSP) есть про getKey и getKeyEntry и пароли, а в документе How_to_build_android_example в архиве android-csp - есть про CSPConfig.registerActivityContext.

Отредактировано пользователем 23 июня 2015 г. 11:52:17(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
a_kildishev оставлено 23.06.2015(UTC)
Offline a_kildishev  
#7 Оставлено : 23 июня 2015 г. 12:15:31(UTC)
a_kildishev

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Спасибо за помощь!
Offline a_kildishev  
#8 Оставлено : 23 июня 2015 г. 14:37:47(UTC)
a_kildishev

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
изменил код получения приватного ключа:

Код:
KeyStore.ProtectionParameter protectionParameter = new JCPProtectionParameter(password.toCharArray(), true);
privateKey = ((JCPPrivateKeyEntry) keyStore.getEntry(alias, protectionParameter)).getPrivateKey();


Теперь метод Signature.sign() выбрасывает исключение:

Код:
java.security.AccessControlException: MSCAPI ERROR:-2146893808
            at ru.CryptoPro.JCSP.MSCAPI.j.a(Unknown Source)
            at ru.CryptoPro.JCSP.MSCAPI.i.b(Unknown Source)
            at ru.CryptoPro.JCSP.MSCAPI.b.a(Unknown Source)
            at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source)
            at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineSign(Unknown Source)
            at ru.CryptoPro.JCSP.Sign.JCSPGostElSign.engineSign(Unknown Source)
            at java.security.Signature.sign(Signature.java:318)
            at org.a_soft.screenlocker.LoginWithCertificateTask.getSignedTicket(LoginWithCertificateTask.java:71)
            at org.a_soft.screenlocker.LoginWithCertificateTask.doInBackground(LoginWithCertificateTask.java:52)
            at org.a_soft.screenlocker.LoginWithCertificateTask.doInBackground(LoginWithCertificateTask.java:38)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask.run(FutureTask.java:234)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
            at java.lang.Thread.run(Thread.java:841)


В манифесте прописано полномочие android.permission.WRITE_EXTERNAL_STORAGE.

Подскажите, пожалуйста, где я опять что-то пропустил.
Offline Евгений Афанасьев  
#9 Оставлено : 23 июня 2015 г. 14:48:19(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Попробуйте для эксперимента:
Код:

KeyStore.ProtectionParameter protectionParameter = new JCPProtectionParameter(password.toCharArray(), false); // true -> false
privateKey = ((JCPPrivateKeyEntry) keyStore.getEntry(alias, protectionParameter)).getPrivateKey();
Offline a_kildishev  
#10 Оставлено : 23 июня 2015 г. 15:02:43(UTC)
a_kildishev

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Результат точно такой же. На всякий случай так же проверил правильность пин-кода и наличие сертификата на носителе.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (5)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.