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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline 4el2  
#1 Оставлено : 11 января 2012 г. 22:38:56(UTC)
4el2

Статус: Участник

Группы: Участники
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 14
Откуда: Москва

В результате выполнения следующего кода на системах Ubuntu 11.04 и Suse Enterprise server 9:
Код:

	HCERTSTORE store = CertOpenSystemStore(0,"MY" );
    CryptAcquireContext(&provider,NULL,NULL,PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT );

	CRYPT_ALGORITHM_IDENTIFIER content_encryption_alg;
	memset( &content_encryption_alg, 0, sizeof( CRYPT_ALGORITHM_IDENTIFIER ) );
	content_encryption_alg.pszObjId = (char*)OID_CipherVar_Default;

	CMSG_ENVELOPED_ENCODE_INFO enveloped_info;
	memset( &enveloped_info, 0, sizeof( CMSG_ENVELOPED_ENCODE_INFO ) );
	enveloped_info.cbSize = sizeof( CMSG_ENVELOPED_ENCODE_INFO );
	enveloped_info.hCryptProv = provider;
	enveloped_info.ContentEncryptionAlgorithm = content_encryption_alg;
	enveloped_info.pvEncryptionAuxInfo = NULL;
	enveloped_info.cRecipients = recipients_size;
	enveloped_info.rgpRecipients = recipient_certs;

	message = CryptMsgOpenToEncode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0 ,CMSG_ENVELOPED, &enveloped_info, NULL, NULL );


CryptMsgOpenToEncode выдает ошибку CRYPT_E_OID_FORMAT.
Причем этот же самый код на тех же входных данных работает успешно на windowsXP. В чем может быть проблема?
Offline Максим Коллегин  
#2 Оставлено : 11 января 2012 г. 22:45:23(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,408
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 723 раз в 626 постах
А что такое OID_CipherVar_Default, точнее зачем? По смыслу в этом месте должен быть алгоритм шифрования. А на Windows многие некорректные параметры "исправляются" на ходу.
Знания в базе знаний, поддержка в центре поддержки
Offline 4el2  
#3 Оставлено : 12 января 2012 г. 0:34:49(UTC)
4el2

Статус: Участник

Группы: Участники
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 14
Откуда: Москва

maxdm написал:
А что такое OID_CipherVar_Default, точнее зачем? По смыслу в этом месте должен быть алгоритм шифрования. А на Windows многие некорректные параметры "исправляются" на ходу.


OID_CipherVar_Default определен в WinCryptEx.h.
Код:

#define OID_CipherVerbaO "1.2.643.2.2.31.1" /* ГОСТ 28147-89, параметры по умолчанию */
#define OID_CipherVar_Default OID_CipherVerbaO

Offline 4el2  
#4 Оставлено : 12 января 2012 г. 14:22:51(UTC)
4el2

Статус: Участник

Группы: Участники
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 14
Откуда: Москва

Если это даст какую-нибудь дополнительную информацию, CryptMsgCalculateEncodedLength выдает ту же ошибку.
Offline Максим Коллегин  
#5 Оставлено : 12 января 2012 г. 15:36:44(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,408
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 723 раз в 626 постах
Мда. Там должен быть алгоритм шифрования и не оид параметров.
Знания в базе знаний, поддержка в центре поддержки
Offline 4el2  
#6 Оставлено : 12 января 2012 г. 16:34:17(UTC)
4el2

Статус: Участник

Группы: Участники
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 14
Откуда: Москва

maxdm написал:
Мда. Там должен быть алгоритм шифрования и не оид параметров.

Да, проблема была в этом. Странно, что в Windows это не проверяется. Спасибо за ответ.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.