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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sabretoothedhamster  
#1 Оставлено : 24 января 2013 г. 17:25:23(UTC)
sabretoothedhamster

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

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

Здравствуйте!

Помогите, пожалуйста, разобраться с CertVerifyCertificateChainPolicy

Исходные данные: даны два компа, на обоих стоит 3.6.6497(5359) KC1 Built: Aug 13 2010 00:51:39, AMD64
только на одном - всё английское (Win7/Pro) и CryptoPro CSP, а на другом - русское.
И там и там стоит один и тот же сертификат с ключём, у которого истёк PRIVATEKEY_USAGE_PERIOD

Однако, на английской машине вот такой код


Цитата:

CERT_CHAIN_POLICY_STATUS chps;
memset(&chps, 0, sizeof(chps));
chps.cbSize = sizeof(chps);
status = CertVerifyCertificateChainPolicy(CPCERT_CHAIN_POLICY_PRIVATEKEY_USAGE_PERIOD, chCtx, NULL, &chps);
if (status == TRUE) {
if (chps.dwError == S_OK) {
Trace(8, "Certificate and it's private key usage period checked Ok!");
retCode = 1;
} else {
Trace(0, "Private key usage period check error (%08x): %s", chps.dwError, SystemErrorString(chps.dwError, tmpStr, sizeof(tmpStr)));
sprintf(m_errStr, "Certificate [%s] private key usage period check error (0x%08X)", CertSubjectToString(cert->pCertInfo).c_str(), chps.dwError);
}
} else {
Trace(8, "Can not check private key usage period!");
retCode = 1; // it is not fatal
}
}


попадает в "правильное" место - т.е. ругается "Private key usage period check error (800b0101): A required certificate is not within its validity period when verifying against the current system clock or the timestamp in the signed file."
А на русской - вываливается в ветку "Can not check private key usage period!" (т.e. CertVerifyCertificateChainPolicy возвращает FALSE)

Отчего такое вообще может быть, и как с этим бороться?

P.S. Попробовал 32-битную версию - ситуация точно такая же

Отредактировано пользователем 24 января 2013 г. 17:27:07(UTC)  | Причина: [code=cpp] отрезает кусок кода

Offline Максим Коллегин  
#2 Оставлено : 25 января 2013 г. 15:24:58(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 39 раз
Поблагодарили: 750 раз в 645 постах
На обеих машинах присутствует HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CertDllVerifyCertificateChainPolicy\{C03D5610-26C8-4B6F-9549-245B5B3AB743}?
Указанная библиотека подгружается в оба процесса?
Знания в базе знаний, поддержка в центре поддержки
Offline sabretoothedhamster  
#3 Оставлено : 29 января 2013 г. 11:19:00(UTC)
sabretoothedhamster

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

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

На той, машине, где проверка не работает, нет ни ключа в регистри, ни самой pkivalidator.dll, хотя внутри дистра, с которого они ставились, pkivalidator.dll есть
Отчего зависит, будет ли ставиться этот компонент, и как правильно проверить его наличие? По ключу в регистри? Или есть более цивильный способ?

А на линуксе этот компонент тоже требует каких-то особых телодвижений?
Offline Максим Коллегин  
#4 Оставлено : 29 января 2013 г. 14:58:39(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 39 раз
Поблагодарили: 750 раз в 645 постах
На Windows его наличие зависит от установленной фичи revocation provider.
Знания в базе знаний, поддержка в центре поддержки
Offline cross  
#5 Оставлено : 29 января 2013 г. 15:11:12(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
На Linux в CSP 3.6 R3 pkivalidator.so есть всегда.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline sabretoothedhamster  
#6 Оставлено : 29 января 2013 г. 18:22:18(UTC)
sabretoothedhamster

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

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

А как кошерно проверить, установлена ли фича "revocation provider"? Если CertVerifyCertificateChainPolicy(CPCERT_CHAIN_POLICY_PRIVATEKEY_USAGE_PERIOD,...) вернула FALSE - это значит, что фичи нет, или возможны другие причины такого результата (связанные с собственно результатами проверки)?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.