Секреты разработки CSP
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: конспект на тему, решебник виленкин
| Добавил(а) на сайт: Beata.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
// а затем сам ключ с параметрами
DWORD *StructLen // OUT – длинна структуры
);
BOOL WINAPI A_EncodePublicKeyAndParameters(
DWORD dwCertEncodingType, // IN
LPCSTR lpszStructType, // IN – OID алгоритма
const void* pvStructInfo, // IN – такая же структура как
// на выходе ConvertPublicKeyInfo
DWORD nStructLen, // IN – длинна входной структуры
DWORD dwFlags, // IN – обычно 0
DWORD Unk, // ? - неизвестно
BYTE **pbPubKey, // OUT – открытый ключ в ASN.1 DER
DWORD* pcPubKeyLen, // OUT – длинна открытого ключа
BYTE **pbParams, // OUT – параметры открытого ключа
DWORD* pcParamsLen // OUT – длинна параметров
);
Форматы ключей зависят от крипто-провайдера и используемых алгоритмов.
Функция I_CryptGetDefaultCryptProvider из crypt32.dll
По непонятной для меня причине Windows часто не пытается искать нужный крипто- провайдер по идентификатору алгоритма с которым требуется работать. В таких случаях она просто вызывает недокументированную функцию I_CryptGetDefaultCryptProvider, и если тот провайдер, который вернула эта функция, не умеет работать с данным алгоритмом, то процесс завершается с ошибкой. Так происходит, например, при разборе в Internet Explorer PKCS#7 ответа в сценарии с запросом сертификата на тестовом УЦ.
HCRYPTPROV WINAPI I_CryptGetDefaultCryptProv(ALG_ID algid);
Необходимо заменить эту функцию таким образом, чтобы при нулевом параметре algid на входе она возвращала наш провайдер, который уже в отличии от штатного провайдера легко справиться с “нестандартными алгоритмами”.
Обсуждение способов замены функций в системной dll выходит далеко за рамки данной статьи. Могу лишь, как один из способов решения, предложить библиотеку Microsoft Detours: http://research.microsoft.com/sn/detours
Привязка закрытого ключа к сертификату
В отличие от открытого ключа закрытые ключи никогда не покидают крипто-провайдер и поэтому когда вы видите что для данного сертификата есть закрытый ключ (как на рисунке) это значит что в контексте этого сертификата существует явная ссылка на закрытый ключ.
Рисунок 5 - Закрытый ключ сертификата
Рекомендуем скачать другие рефераты по теме: конспект, курсовики скачать бесплатно.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата