Секреты разработки CSP
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: конспект на тему, решебник виленкин
| Добавил(а) на сайт: Beata.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
YOUR_PROV_TYPE
);
Сценарии применения нашего CSP
Рассмотрим здесь два сценария применения CSP.
Первый сценарий – проверка подписи сертификата. Для проверки подписи система загружает открытый ключ из сертификата, которым подписан проверяемый. Затем по OID алгоритма подписи проверяемого сертификата, так как описано в предыдущем разделе статьи, определяется требуемый провайдер. Чтобы проверить подпись, нужно импортировать открытый ключ в CSP и можно было бы подумать что Windows сразу вызывает функцию нашего провайдера CPImportKey. Но не тут-то было!
Второй сценарий – генерация ключевой пары и отправка запроса на сертификат на Удостоверяющий Центр. Windows загружает наш CSP, генерирует ключевую пару и экспортирует к себе наверх открытый ключ вызывая функцию CPExportKey. Все хорошо. Вроде бы надо взять и поместить полученный буфер с ключом в PKCS#10 запрос, который затем будет отправлен на УЦ. И тут все опять не совсем так.
Рисунок 2 - Запрос на сертификат в УЦ
Рисунок 3 - Процесс создания сертификата
Оказывается, существуют промежуточные функции для экспорта/импорта открытых ключей, и без их реализации ничего хорошего с нашим CSP, в упомянутых выше двух сценариях, не получиться. Беда еще и в том, что функции эти недокументированные и найти информацию по ним крайне сложно. Их описанию посвящен следующий раздел.
Функции конвертирования ключей
Архитектура круговорота открытых ключей для “нестандартных” алгоритмов в Windows представлена на картинке:
Рисунок 4 - Импорт и экспорт открытых ключей в/из CSP
Функция A_ConvertPublicKeyInfo – на входе принимает ключ в формате ASN.1 DER и должна преобразовать его в формат, который “понимает” функция CSP CPImportKey
Функция A_EncodePublicKeyInfoAndParameters на входе принимает ключ в том формате, в котором ключ экспортирует CPExportKey. На выходе A_EncodePublicKeyInfoAndParameters должна сформировать ASN.1 DER структуру с ключом – ту же самую которая в случае импорта передается в A_ConvertPublicKeyInfo – на вход. Надеюсь, вы не запутались во всех этих входах Jи выходах
Вот сигнатуры и краткие описания параметров этих функций:
BOOL WINAPI A_ConvertPublicKeyInfo(
DWORD dwCertEncodingType, // IN -
VOID *EncodedKeyInfo, // IN – буфер с ключом - указатель
// на структуру CERT_PUBLIC_KEY_INFO
DWORD dwAlg, // IN – AlgId ключа
DWORD dwFlags, // IN – обычно 0
BYTE **ppStructInfo, // OUT – двойной указатель на структуру
// в заголовке структуры идет сначала PUBLICKEYSTRUC, затем DSSPUBKEY,
Рекомендуем скачать другие рефераты по теме: конспект, курсовики скачать бесплатно.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата