Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Да, но и CryptGenKey и CPGenKey имеют параметр hProv: Код:BOOL CPGenKey(
__in HCRYPTPROV hProv,
__in ALG_ID Algid,
__in DWORD dwFlags,
__out HCRYPTKEY* phKey
);
Код:BOOL WINAPI CryptGenKey(
__in HCRYPTPROV hProv,
__in ALG_ID Algid,
__in DWORD dwFlags,
__out HCRYPTKEY* phKey
);
Так значит разницы мужду CPGenKey и CPGenKey нет, только CryptGenKey - WINAPI функция, а при вызове разницы мы не ощутим? Спасибо. Кстати, Вы мой тезка:) Отредактировано пользователем 28 октября 2008 г. 13:42:38(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Вызовы различаются - CryptGenKey лежит в crypt32.dll, ее можно слинковать (есть соответствующий lib файл). А CPGenKey лежит в библиотеке криптопровайдера, для ее вызова эту библиотеку надо будет динамически загружать скорее всего. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Ну это понятно, я имел ввиду после вызва эффект будет одинаков.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Смотрел пример создания сертификата http://www.cryptopro.ru/...s/csp/20/sample-2-0.zip, там присутствует генерация пары ключей в функции CreateCertificate: Цитата:bResult = CryptGenKey(hProv, dwKeyType, CRYPT_EXPORTABLE+(wBits<<16), &hPubKey); if (!bResult) { printf("CryptGenKey failed with %x\n", GetLastError()); __leave; } и установка параметров: Цитата:#if 0 bResult = CryptSetKeyParam(hPubKey, KP_SIGNATUREOID, "1.2.643.2.2.32.3" , 0); if (!bResult) { printf("CryptSetKeyParam failed with %x\n", GetLastError()); __leave; } Так вот вопрос такой, что за параметры KP_SIGNATUREOID и "1.2.643.2.2.32.3" и что они означают? html описание читал.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
OID_SignDH128Verba_1 "1.2.643.2.2.32.3" Параметры P,Q,A цифровой подписи ГОСТ Р 34.10-94, вариант 1. Могут использоваться также в алгоритме Диффи-Хеллмана Но проблема в том что в MSDN таких параметров нет. И еще, какого типа OID_Sign128Var_1 ? Отредактировано пользователем 29 октября 2008 г. 21:37:47(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Конечно нет, MS пока не реализует российский криптоалгоритмы. #define OID_Sign128Var_1 "1.2.643.2.2.32.3" |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Ну понятно что MS пока не реализует российские алгоритмы, но когда я пытаюсь #define OID_Sign128Var_1 "1.2.643.2.2.32.3" у меня выдает либо не правильные параметры, либо что то в этом роде. Хотя у меня криптопро стоит. И еще, самое главное, пытаюсь создать сертификат по вашему примеру(правда я поменял строчку bResult =CryptGenKey(m_hProvider,AT_KEYEXCHANGE,CRYPT_EXPORTABLE | 1024<<16,&hPubKey);). Файлы вроде создается но при попытки установить такой сертификат выдется ошибка: Неправильный файл объекта безопасности открытого ключа Этот файл не может использоваться как: Сертификат безопасноти. С чем это может быть связано? Отредактировано пользователем 1 ноября 2008 г. 12:50:58(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:у меня выдает либо не правильные параметры, либо что то в этом роде какая функция и какую именно ошибку выдает? Цитата:CryptGenKey(m_hProvider,AT_KEYEXCHANGE,CRYPT_EXPORTABLE | 1024<<16,&hPubKey);). 1024 - это длина ключа. Вы используете именно 94 ГОСТ? Цитата:Неправильный файл объекта безопасности открытого ключа Этот файл не может использоваться как: Сертификат безопасноти.
С чем это может быть связано? Ошибка в программе скорее всего. Сам csptest -makecert работает? Можно взглянуть на получившийся "неправильный" сертификат? |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Если выполнять csptest -makecert без параметров, то на выходе получаем:
Self-Signed Certificates create a file called SelfSigned.cer Non Self-Signed Certificates create a file called Certificate.cer Total: SYS: 0.000 sec USR: 0.000 sec UTC: 0.000 sec
Только никакого SelfSigned.cer или Certificate.cer я не нашел на своем жестком. Весь перерыл. Может я что то не то делаю, простите меня за не просвещённость. Если csptest -makecert my допустим, или даже csptest -makecert 10 то вылазит ошибка CertStrToName failed with 80092023. Troubleshooting Code Error 80092023 - Illegal character in certificate key? Может надо еще указывать название ключа отдельно?%)
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Далее: Я пока использую майкрософтовский провайдер, пока для примера. После вызова функций ошибок нет. CryptAcquireContext(&m_hProvider,NULL,MS_ENHANCED_PROV,PROV_RSA_FULL,0); список поддерживаемых провайдеров: 0 : Crypto-Pro Cryptographic Service Provider 1 : Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider 2 : Crypto-Pro GOST R 34.10-94 Cryptographic Service Provider 3 : eToken Base Cryptographic Provider 4 : Gemplus GemSAFE Card CSP v1.0 5 : Infineon SICRYPT Base Smart Card CSP 6 : Microsoft Base Cryptographic Provider v1.0 7 : Microsoft Base DSS and Diffie-Hellman Cryptographic Provider 8 : Microsoft Base DSS Cryptographic Provider 9 : Microsoft DH SChannel Cryptographic Provider 10 : Microsoft Enhanced Cryptographic Provider v1.0 11 : Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider 12 : Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype) 13 : Microsoft Exchange Cryptographic Provider v1.0 14 : Microsoft RSA SChannel Cryptographic Provider 15 : Microsoft Strong Cryptographic Provider 16 : Schlumberger Cryptographic Service Provider Отредактировано пользователем 1 ноября 2008 г. 16:11:26(UTC)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close