Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
Ошибка подписи ключа 0x80090019(Набор ключей не определен.)
The_Immortal |
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
КриптоПРО CSP КС1 3.0.3293 Казначейство выдало новый сертификат. Установили его согласно инструкции: правой кнопкой на значке Континента — Сертификаты — установить сертификат — выбрали пользовательский сертификат с дискеты (где также присутствует корневой сертификат и папочка с ключами) — получили «Импорт пользовательского сертификата успешно завершен». Далее снова правой кнопкой на континенте — «Установить соединение» и вот на это вылазят одна за другой следующие ошибки: «Ошибка подписи ключа 0x80090019(Набор ключей не определен.)» И вся работа бухгалтерии встала… Кто-нибудь сталкивался с подобным? Спасибо! |
|
|
Femi |
|
Статус: Padawan Группы: Администраторы Сказала «Спасибо»: 11 раз |
А сертификат в Личном появился? с привязкой к закрытому ключу? Попробуйте устновить его через КриптоПро CSP -Сервис-Установить личный сертификат. |
Техническую поддержку оказываем тут. |
|
|
|
The_Immortal |
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Несколько раз поребутил копм и все нормально стало… Непонятно в чем проблема… По идее в Континенте как раз? |
|
|
Femi |
|
Статус: Padawan Группы: Администраторы Сказала «Спасибо»: 11 раз |
Ну если сертификат таки Цитата: сертификат в Личном появился? с привязкой к закрытому ключу то видимо да |
Техническую поддержку оказываем тут. |
|
|
|
lupsik |
|
Статус: Новичок Группы: Участники
|
надо в криптопро сбросить пароли и в континенте в настройках соединение континента во вкладке безопасность сбросить запомненные сертификаты (как то так) потом просто добавить сертификат заново и всё будует чики пуки =) |
|
|
Anglemender |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Работая с крипто про, особенно если приходится работать с разными ЭЦП, в том числе если носители не только рутокены, а и флешки, то периодически появляются различные ошибки в том числе и эта(ошибка 0х800900019 . . . .), спасение «Сервис» — «Удалить запомненные пароли» — «чикбокс — удалить все запомненные пароли пользователя», в некоторых случаях повторно установить сертификат. |
|
WWW |
Boris@Serezhkin.com |
|
Статус: Активный участник Группы: Участники Сказал(а) «Спасибо»: 4 раз |
Автор: Anglemender Работая с крипто про, особенно если приходится работать с разными ЭЦП, в том числе если носители не только рутокены, а и флешки, то периодически появляются различные ошибки в том числе и эта(ошибка 0х800900019 . . . .), спасение «Сервис» — «Удалить запомненные пароли» — «чикбокс — удалить все запомненные пароли пользователя», в некоторых случаях повторно установить сертификат. Это здорово, тоже не раз сталкивался. Всем пользователям рекомендую переустановить сертификат. По статистике данная ситуевина возникает только при ключах на отчуждаемых носителях. |
|
|
Максим Коллегин |
|
Статус: Сотрудник Группы: Администраторы Сказал «Спасибо»: 21 раз |
Давно же есть опция — не сохранять информацию о подключенных съемных носителях. Если её использовать — проблем быть не должно. В 3.9 активна по умолчанию. |
Знания в базе знаний, поддержка в техподдержке |
|
|
WWW |
Alex_04 |
|
Статус: Активный участник Группы: Участники Сказал «Спасибо»: 19 раз |
Тема старая, но актуальна время от времени до сих пор, причем и с Криптопро-3.6 и с Континент-АП 3.6.х. Автор: The_Immortal «Ошибка подписи ключа 0x80090019(Набор ключей не определен.)» Еще одна причина данной ошибки может оказаться банальной: сертификат пользователя не зарегистрирован на сервере доступа Континента в ОрФК. Было так несколько раз. Выше предложенный меры не помогали. |
|
|
Пользователи, просматривающие эту тему |
Guest |
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
Ошибка подписи ключа 0x80090019(Набор ключей не определен.)
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
1. Истек срок действия закрытого ключа (сертификата). Узнать актуальный срок действия сертификата можете, открыв программу Крипто-Про CSP — Просмотреть сертификаты в контейнере — Выбрать нужный сертификат — Ок. Если срок действия сертификата истек — вам нужно получить новый. Если же сертификат был выдан сроком на 2 и более лет и с момента его выпуска прошло 15 и более месяцев и при этом у вас установлено ПО Крипто-Про 4.0 и выше — то мы имеем дело как раз с тем самым редким случаем, присущим 4-й версии. О нем ниже.
2. Отсутствие прав доступа к накопителю, на котором находится ключ. Также случается редко, но случается, в основном на ОС Windows 10 и 8.1. Необходимо дать права доступа на флешку или добавить этот диск в исключения антивируса.
3. Отсутствие прав доступа на реестр защищенных ключей. Это для тех случаев, когда ключ установлен в реестре считывателей и у пользователя, работающего с Континент АП не хватает прав доступа к соответствующей ветке — тогда может возникать ошибка подписи ключа 0x80090010. Проверить права доступа легко через команду regedit, пройдя по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\{SID_пользователя}\Keys
Электронная подпись
Идет поиск…
Ничего не найдено. Попробуйте изменить поиск
123123
Возможные ошибки при работе с ЭЦП
Код ошибки | Текст ошибки | Как исправить |
0x8010006E | Действие было отменено пользователем | Выберите нужный сертификат и нажмите Проверить. Согласитесь с подтверждением доступа. Введите пароль от сертификата, если он есть. |
0x80090016 | Набор ключей не существует |
Повторно добавьте сертификат в Личное хранилище по статье Установить «КриптоПро» CSP 5.0 Если проблема не решена, то переустановите «КриптоПро ЭЦП Browser Plug-in». |
0x8007065B | Ошибка исполнения функции |
Проверьте текущую версию КриптоПро CSP. Она должна быть 5.0 и выше. Если версия меньше, то обновите приложение. Если версия выше, то переустановите «КриптоПро ЭЦП Browser Plug-in». |
0x80090008 | Указан неправильный алгоритм | |
0x8007064A | Данные настройки для этого продукта повреждены. Обратитесь в службу поддержки организации |
Проверьте статус лицензий КриптоПро CSP. Для этого откройте КриптоПро CSP. Информация о статусе лицензии отображается в главном разделе приложения в строке «Срок действия» Если лицензия истекла, то купите и активируйте новую. Если лицензия не истекла, то переустановите сертификаты и «КриптоПро ЭЦП Browser Plug-in». |
0x80090010 | Отказано в доступе | |
0x80090019 | Набор ключей не определен |
Повторно добавьте сертификат в Личное хранилище по статье Установить «КриптоПро» CSP 5.0 Если проблема не решена, то переустановите «КриптоПро ЭЦП Browser Plug-in». |
0x80092004 |
Ошибка установки свойства в контекст сертификата. Ошибка получения свойства сертификата. Объект или свойство не найдено. |
|
0xc0000225 |
ЭЦП не использует КриптоПровайдер |
Запустите на ПК командную строку (cmd) от имени администратора и пропишите там: regsvr32 cpcng Нажмите «Enter», закройте командную строку. Перезагрузите ПК. |
Неожиданно: CMS Decrypt Error | Электронная подпись соответствует требованиям |
Обратитесь в удостоверяющий центр, выпустивший сертификат для уточнения соответствия требованиям к ЭЦП:
|
Личный кабинет не дает выбрать сертификат УКЭП
Если в личном кабинете Эвотор не получается выбрать ЭЦП. Проверьте, корректно ли настроена работа с ЭЦП на компьютере. Настроить работу с ЭЦП на компьютере
Если инструкция не помогла, обратитесь в поддержку Эвотора.
Эвотор не даёт выбрать сертификат УКЭП
Иногда при настройке «Маркировки» на Эвоторе нельзя выбрать сертификат по умолчанию — список сертификатов пуст. Рассказываем про возможные проблемы и их решение в статье: Эвотор не даёт выбрать сертификат УКЭП
Страницы 1 2 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
RSS: текущая тема
Сообщений с 1 по 15 из 26
#1 2015-10-29 15:27:23
- SvetovidovDM
- Посетитель
- Неактивен
Импорт ключа
Добрый день. Я реализую шифрование сообщения при помощи открытого ключа получателя и закрытого отправителя.
Отправитель — сертификат с закрытым ключом сформированный через КриптоПро CSP
Получатель — сертификат с закрытым ключом. Закрытый ключ расположен на токене РутокенЭЦП
Алгоритм моих действий следующий:
1. Получаем из сертификата получателя BLOB открытого ключа следующим образом:
if(dwError==ERROR_SUCCESS)
{
//Импортируем открытый ключ
if(m_pcryptoAPI->CryptImportPublicKeyInfoEx(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
&(pRecipientCert->pCertInfo->SubjectPublicKeyInfo),
0,
0,
NULL,
&hRecipientPublicKey))
{
//Экспортируем открытый ключ в BLOB
if(m_pcryptoAPI->CryptExportKey(hRecipientPublicKey,
NULL,PUBLICKEYBLOB,NULL,pbtPublicKeyBlob,&nPublicKeyBlobSize))
{
pbtPublicKeyBlob=new BYTE[nPublicKeyBlobSize];
if(pbtPublicKeyBlob==NULL)
dwError=E_OUTOFMEMORY;
else
{
if(!m_pcryptoAPI->CryptExportKey(hRecipientPublicKey,
NULL,PUBLICKEYBLOB,NULL,pbtPublicKeyBlob,&nPublicKeyBlobSize))
dwError=::GetLastError();
//Уничтожаем объект открытого ключа, т.к. в дальнейшем будем использовать только его BLOB
m_pcryptoAPI->CryptDestroyKey(hRecipientPublicKey);
hRecipientPublicKey=NULL;
}
}
else
dwError=::GetLastError();
}
else
dwError=::GetLastError();
}
2. Получаем закрытый ключ отправителя так:
if(dwError==ERROR_SUCCESS)
{
//Получаем закрытый ключ отправителя
if(!m_pcryptoAPI->CryptGetUserKey(AT_KEYEXCHANGE,&hSenderPrivateKey))
dwError=::GetLastError();
}
3. Импортируем открытый ключ получателя на закрытый отправителя
if(dwError==ERROR_SUCCESS)
{
//получаем ключ согласования импортом открытого ключа получателя на закрытый отправителя
if(m_pcryptoAPI->CryptImportKey(pbtPublicKeyBlob,nPublicKeyBlobSize,hSenderPrivateKey,NULL,&hAgreeKey))
{
}
else
dwError=::GetLastError();
}
На шаге №3 получаем ошибку 0x80090019 (-2146893799) набор ключей не определен
При этом, если в качестве получателя используется сертификат, закрытый ключ от которого расположен в реестре или на обычной флэшке (сформированный через КриптоПро), то все превосходно отрабатывает.
Вопрос в том, что не так.
#2 Ответ от Кирилл Мещеряков 2015-10-29 17:54:51
- Кирилл Мещеряков
- Посетитель
- Неактивен
Re: Импорт ключа
Добрый день.
Вопрос скорее на форум крипто-про, но думаю вам стоит сначала открыть контекст (CryptAquireContext) с именем контейнера.
Сначала делаете так: http://www.cryptopro.ru/forum2/default. … #post12010
А потом как то так:
CryptAcquireContext( &phProv,»\\\\.\\Aktiv Rutoken ECP 0\\test_key»,»»Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider»»,75,0)
#3 Ответ от SvetovidovDM 2015-10-29 18:09:51 (2015-10-29 18:13:20 отредактировано SvetovidovDM)
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Кирилл Мещеряков пишет:
Добрый день.
Вопрос скорее на форум крипто-про, но думаю вам стоит сначала открыть контекст (CryptAquireContext) с именем контейнера.Сначала делаете так: http://www.cryptopro.ru/forum2/default. … #post12010
А потом как то так:
CryptAcquireContext( &phProv,»\\\\.\\Aktiv Rutoken ECP 0\\test_key»,»»Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider»»,75,0)
Стоп, не очень понял.
Контекст с закрытым ключом отправителя уже открыт ранее, в сообщении я не приводил этот момент. Однако проблем с получением закрытого ключа нет, проблема возникает при импорте на него открытого ключа получателя.
На машине нет закрытого ключа получателя в принципе. Есть только сертификат .cer.
Опять таки повторюсь, что если сертификат получателя сформирован при помощи КриптоПро то проблем не возникает, и тот же самый код прекрасно работает и шифрует данные, что наводит меня на мысль что существует некая разница в ключах. Но как понять что это за разница, и как с ней бороться я не знаю.
Аналогичный вопрос на форуме КриптоПро я задал.
Но к сожалению не очень точно сформулировал проблему, в результате чего ответ получил не тот который я ожидал…
#4 Ответ от Кирилл Мещеряков 2015-10-29 18:11:43
- Кирилл Мещеряков
- Посетитель
- Неактивен
Re: Импорт ключа
Как на рутокене то у вас оказывается ключ?
#5 Ответ от SvetovidovDM 2015-10-29 18:29:17 (2015-10-29 18:29:31 отредактировано SvetovidovDM)
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Кирилл Мещеряков пишет:
Как на рутокене то у вас оказывается ключ?
Генерируется средствами PKCS11 библиотеки, от вашего SDK.
Впрочем разницы нет, потому как при реальной эксплуатации будет так:
В дистрибутиве приложения будет лежать сертификат. Когда необходимо зашифровать данные, приложение будет брать этот сертификат, читать его, получать из него блоб открытого, получать ключ согласования этого блоба и выбранного пользователем сертификата отправителя, генерировать сессионный ключ, шифровать им сообщение, после чего шифровать сам сессионный ключ на ключе согласования и отправлять зашифрованные данные на сервер вместе с открытым ключем отправителя и зашифрованным сессионным ключом. Ну а на сервере процедура будет происходить в обратном порядке.
#6 Ответ от Кирилл Мещеряков 2015-10-29 18:30:10
- Кирилл Мещеряков
- Посетитель
- Неактивен
Re: Импорт ключа
А ну понятно, а то вы не написали что через PKCS11, я то подумал что тоже через КриптоПро CSP.
Попробуйте «перевернуть» открытый ключ (изменить порядок байт).
#7 Ответ от SvetovidovDM 2015-10-29 18:34:07
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Кирилл Мещеряков пишет:
А ну понятно, а то вы не написали что через PKCS11, я то подумал что тоже через КриптоПро CSP.
Попробуйте «перевернуть» открытый ключ (изменить порядок байт).
В таком случае возникает вопрос — как мне ориентироваться, надо ли его переворачивать?:) Есть ли некий флаг или поле в сертификате, говорящее о необходимости «перевернуть» ключ?
#8 Ответ от Кирилл Мещеряков 2015-10-29 18:43:10
- Кирилл Мещеряков
- Посетитель
- Неактивен
Re: Импорт ключа
Неа, нету.
Так как речь идет просто о числе, то зависит от спецификации, как оно будет представлено, в виде littleendian или bigendian.
Насколько я знаю, в PKCS11 и CryptoAPI получилось вразнобой.
#9 Ответ от SvetovidovDM 2015-10-30 11:50:04
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Кирилл Мещеряков пишет:
А ну понятно, а то вы не написали что через PKCS11, я то подумал что тоже через КриптоПро CSP.
Попробуйте «перевернуть» открытый ключ (изменить порядок байт).
Переделал код так:
//получаем ключ согласования импортом открытого ключа получателя на закрытый отправителя
if(!m_pcryptoAPI->CryptImportKey(pbtPublicKeyBlob,nPublicKeyBlobSize,hSenderPrivateKey,NULL,&hAgreeKey))
{
dwError=GetLastError();
if(dwError==0x80090019)
{
DWORD dwKeyLen=((CRYPT_PUBLICKEYBLOB*)pbtPublicKeyBlob)->stPublicKeyParam.KeyParam.BitLen/8;
BYTE *pbtKey=&((CRYPT_PUBLICKEYBLOB*)pbtPublicKeyBlob)->bPublicKey[0];
DWORD dwIdxBeg=0;
DWORD dwIdxEnd=dwKeyLen-1;
BYTE bTemp;
while(dwIdxBeg<=dwIdxEnd)
{
bTemp=pbtKey[dwIdxBeg];
pbtKey[dwIdxBeg]=pbtKey[dwIdxEnd];
pbtKey[dwIdxEnd]=bTemp;
dwIdxBeg++;
dwIdxEnd--;
}
if(!m_pcryptoAPI->CryptImportKey(pbtPublicKeyBlob,nPublicKeyBlobSize,hSenderPrivateKey,NULL,&hAgreeKey))
dwError=GetLastError();
else
dwError=ERROR_SUCCESS;
}
Эффект тот же самый, ошибка та же…
#10 Ответ от Кирилл Мещеряков 2015-10-30 13:21:57
- Кирилл Мещеряков
- Посетитель
- Неактивен
Re: Импорт ключа
Криптография непростая штука.
Нужно соблюдать кучу условий, чтобы сложные вычисления приводили к ожидаемому результату.
Например, мы не знаем, что у вас за ключи на токене, как вы их получили, какие парамсеты у эллиптических кривых?
Без этого сложно что-то советовать.
#11 Ответ от SvetovidovDM 2015-10-30 13:25:51 (2015-10-30 13:26:51 отредактировано SvetovidovDM)
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Кирилл Мещеряков пишет:
Криптография непростая штука.
Нужно соблюдать кучу условий, чтобы сложные вычисления приводили к ожидаемому результату.
Например, мы не знаем, что у вас за ключи на токене, как вы их получили, какие парамсеты у эллиптических кривых?
Без этого сложно что-то советовать.
Ну сертификат я могу прислать. Если интересуют параметры указанные при генерации ключей — тоже могу прислать.
В общем скажите что нужно — отправлю.
Получал через тестовый контур Электронной Москвы (smvmsk)
#12 Ответ от Кирилл Мещеряков 2015-10-30 13:31:24
- Кирилл Мещеряков
- Посетитель
- Неактивен
Re: Импорт ключа
Нужен код, создающий ключи на Рутокене ЭЦП и извлекающий открытый ключ. Параметры КриптоПро CSP не нужны.
#13 Ответ от SvetovidovDM 2015-10-30 13:37:28 (2015-10-30 13:41:11 отредактировано SvetovidovDM)
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Кирилл Мещеряков пишет:
Нужен код, создающий ключи на Рутокене ЭЦП и извлекающий открытый ключ. Параметры КриптоПро CSP не нужны.
Ну весь код выкладывать не буду, он слишком большой. Параметры ключей — легко.
CK_BYTE btTrue = 0x01;
CK_BYTE btFalse = 0x00;
BYTE abtParamSetGostR3410[] = { 0x06, 0x07, 0x2A, 0x85, 0x03, 0x02, 0x02, 0x23, 0x01 };
BYTE abtParamSetGostR3411[] = { 0x06, 0x07, 0x2A, 0x85, 0x03, 0x02, 0x02, 0x1E, 0x01 };
CK_MECHANISM stMechanizm = { CKM_GOSTR3410_KEY_PAIR_GEN, NULL, 0 };
CK_KEY_TYPE lKeyType = CKK_GOSTR3410;
CK_OBJECT_CLASS lPublicKeyClass = CKO_PUBLIC_KEY;
CK_OBJECT_CLASS lPrivateKeyClass = CKO_PRIVATE_KEY;
CK_ATTRIBUTE stAttrPublicKey[] =
{
{ CKA_CLASS, &lPublicKeyClass, sizeof( lPublicKeyClass ) },
{ CKA_KEY_TYPE, &lKeyType, sizeof( lKeyType ) },
{ CKA_TOKEN, &btTrue, sizeof( btTrue ) },
{ CKA_PRIVATE, &btFalse, sizeof( btFalse ) },
{ CKA_ID, ( CK_CHAR* )(( const char* )astrID ), ( CK_ULONG )astrID.GetLength() },
{ CKA_LABEL, ( CK_CHAR* )(( const char* )astrKeyLabel ), ( CK_ULONG )astrKeyLabel.GetLength() },
{ CKA_SUBJECT, ( CK_CHAR* )(( const char* )astrSubject ), ( CK_ULONG )astrSubject.GetLength() },
{ CKA_GOSTR3410_PARAMS, &abtParamSetGostR3410[0], sizeof( abtParamSetGostR3410 ) / sizeof( abtParamSetGostR3410[0] ) },
{ CKA_GOSTR3411_PARAMS, &abtParamSetGostR3411[0], sizeof( abtParamSetGostR3411 ) / sizeof( abtParamSetGostR3411[0] ) },
{ CKA_ENCRYPT, &btTrue, sizeof(btTrue)}, //*
{ CKA_DERIVE, &btTrue, sizeof(btTrue)}, //*
{ CKA_VERIFY, &btTrue, sizeof( btTrue ) },
};
CK_ATTRIBUTE stAttrPrivateKey[] =
{
{ CKA_CLASS, &lPrivateKeyClass, sizeof( lPrivateKeyClass ) },
{ CKA_KEY_TYPE, &lKeyType, sizeof( lKeyType ) },
{ CKA_TOKEN, &btTrue, sizeof( btTrue ) },
{ CKA_PRIVATE, &btTrue, sizeof( btTrue ) },
{ CKA_ID, ( CK_CHAR* )(( const char* )astrID ), ( CK_ULONG )astrID.GetLength() },
{ CKA_LABEL, ( CK_CHAR* )(( const char* )astrKeyLabel ), ( CK_ULONG )astrKeyLabel.GetLength() },
{ CKA_SUBJECT, ( CK_CHAR* )(( const char* )astrSubject ), ( CK_ULONG )astrSubject.GetLength() },
{ CKA_GOSTR3410_PARAMS, &abtParamSetGostR3410[0], sizeof( abtParamSetGostR3410 ) / sizeof( abtParamSetGostR3410[0] ) },
{ CKA_GOSTR3411_PARAMS, &abtParamSetGostR3411[0], sizeof( abtParamSetGostR3411 ) / sizeof( abtParamSetGostR3411[0] ) },
{ CKA_DECRYPT, &btTrue,sizeof(btTrue) }, //*
{ CKA_DERIVE, &btTrue,sizeof(btTrue) }, //*
{ CKA_SIGN, &btTrue, sizeof( btTrue ) },
};
//Параметры помеченные * внесены для тестирования плагина ИС НР. Возможно они будут добавлены и в основную реализацию
CK_OBJECT_HANDLE hPublicKey = ( CK_OBJECT_HANDLE )NULL;
CK_OBJECT_HANDLE hPrivateKey = ( CK_OBJECT_HANDLE )NULL;
CK_RV lRetCode = pstFL->C_GenerateKeyPair( m_hSession,
&stMechanizm,
&stAttrPublicKey[0],
sizeof( stAttrPublicKey ) / sizeof( stAttrPublicKey[0] ),
&stAttrPrivateKey[0],
sizeof( stAttrPrivateKey ) / sizeof( stAttrPrivateKey[0] ),
&hPublicKey,
&hPrivateKey );
Извлечение ключа:
// Берём значение открытого ключа
CK_ATTRIBUTE stAttrValue[] = { { CKA_VALUE, NULL, 0 } };
if( lRetCode == CKR_OK )
lRetCode = pstFL->C_GetAttributeValue( m_hSession, hPublicKey, &stAttrValue[0], sizeof( stAttrValue ) / sizeof( stAttrValue[0] ));
if( lRetCode == CKR_OK )
{
stAttrValue[0].pValue = ( stAttrValue[0].ulValueLen != 0 ? new BYTE[stAttrValue[0].ulValueLen] : NULL );
if( stAttrValue[0].pValue == NULL )
lRetCode = CKR_HOST_MEMORY;
else
{
lRetCode = pstFL->C_GetAttributeValue( m_hSession, hPublicKey, &stAttrValue[0], sizeof( stAttrValue ) / sizeof( stAttrValue[0] ));
if( lRetCode == CKR_OK )
{
CKeyInfo* pkeyInfo = new CKeyInfo( astrID, astrID.GetLength(), astrKeyLabel, astrKeyLabel.GetLength(),
( BYTE* )stAttrValue[0].pValue, stAttrValue[0].ulValueLen );
if( pkeyInfo != NULL )
m_posKeyInfo = m_listKeyInfos.AddTail( pkeyInfo );
}
delete [] ( BYTE* )stAttrValue[0].pValue;
}
}
DWORD dwErrorCode = ( lRetCode != CKR_OK ? ( 0x11000000 | lRetCode ) : ERROR_SUCCESS );
return( dwErrorCode );
#14 Ответ от Oleg Taraskin 2015-11-02 14:19:24
- Oleg Taraskin
- Посетитель
- Неактивен
Re: Импорт ключа
Добрый день !
Создайте два контейнера КриптоПро CSP.
Соберите и запустите пример по выработке общего ключа DH, который есть в примерах КриптоПро CSP SDK (пример называется ExportingSessionKey ) и попробуйте создать общей сессионный ключ для этих двух контейнеров.
Если пример сработает, то проведите такой эксперимент: скопируйте значение открытого ключа из PKCS#11 (64 байта)
не переворачивая в один из блобов перед импортом в криптопро по смещению 36 байт от начала блоба.
Если импорт пройдет, то будем думать что делать дальше
С уважением,
Олег Тараскин
#15 Ответ от SvetovidovDM 2015-11-02 15:43:58
- SvetovidovDM
- Посетитель
- Неактивен
Re: Импорт ключа
Выяснил, что в работающем и неработающем ключе разные параметры кривых.
В рабочем (сгенерированный с помощью КриптоПро CSP
SEQUENCE(2 elem)
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.643.2.2.19
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.643.2.2.36.0
OBJECT IDENTIFIER1.2.643.2.2.30.1
BIT STRING(1 elem)
OCTET STRING(64 byte) DEF9414282AAC2CF4D7B822F0790C39404A3F804C078821A9957DEA4DC30EE466390E0…
В нерабочем (Сгереированный с помощью PKCS#11)
SEQUENCE(2 elem)
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.643.2.2.19
SEQUENCE(2 elem)
OBJECT IDENTIFIER1.2.643.2.2.35.1
OBJECT IDENTIFIER1.2.643.2.2.30.1
BIT STRING(1 elem)
OCTET STRING(64 byte) 295550871C46A9C208E519463D60D68F664A496BACCBB50A1C0112F12081BA255A5320…
Вопрос — можно лии их согласовать каким то образом?
Страницы 1 2 Далее
Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться
John83
07.10.21
✎
13:21
Когда-то настроил обмен больничных с ФСС, все работало исправно.
И буквально на прошлой неделе перестали загружаться данные
Пишет
Объект CryptS : Ошибка генерации ключа согласования. 0x80090019 (80090019) Набор ключей не определен. .
Не удалось зашифровать файл выгрузки:
Ошибка при вызове метода контекста (Зашифровать)
Попробовал переустановить все сертификаты — не помогло.
https://its.1c.ru/db/elreps/content/15/hdoc
Что еще попробовать?
John83
07.10.21
✎
13:49
АлехИв
07.10.21
✎
14:15
Третий сертификат у моих другой, по времени тоже отличается.
John83
07.10.21
✎
14:36
(2) а там откуда сертификаты брали?
по той же ссылке ИТС?
АлехИв
07.10.21
✎
14:39
У этого клиента буду только во вторник, вся инфа там.
comp2006
07.10.21
✎
14:41
_https://lk.fss.ru/cert.html
4-ФСС — Фонд социального страхования Российской Федерации (30.06.2021 14:49:00 — 30.06.2022 14:49:00)
ЭЛН — Фонд социального страхования Российской Федерации (30.06.2021 14:08:00 — 30.06.2022 14:08:00)
comp2006
07.10.21
✎
14:42
4-ФСС Отпечаток — 44dec15a884e55b68090c5f40eeb9c2037421009
ЭЛН Отпечаток — ee126b38319a010f398a238225454bcb7f562420
John83
08.10.21
✎
12:03
(5) оказалось, что сертификат ЭЛН надо устанавливать не в «личное», как написано в инструкции, а в «другие пользователи»
спасибо!!!