Розробка додатків з використанням криптопровайдера
Криптопровайдер підтримує
стандартний інтерфейс - Microsoft Cryptographic Application Programming
Interface (CryptoAPI). Докладний опис функцій інтерфейсу даний в бібліотеці
MSDN (msdn.microsoft.com) у розділі [Security].
Таблиця
1. Функції управління криптопровайдерами та контекстами криптопровайдерів
Функція
|
Короткий опис
|
CryptAcquireContext
|
Використовується для створення дескриптора визначеного ключового
контейнеру в рамках визначеного криптопровайдера.
|
CrypiContextAddRef
|
Збільшує на одиницю лічильник посилань на дескриптор криптопровайдера.
|
CryptEnumProviders
|
Використовується для отримання першого та наступного доступного
криптопровайдера.
|
CryptEnumProviderTypes
|
Використовується для отримання першого та наступного типу доступних
криптопровайдерів.
|
CryptGetDefaultProvider
|
Знаходить криптолровайдер, який
використовується за умовчанням, для вказаного типу криптопровайдера.
|
CryptGetProvParam
|
Повертає параметри криптопровайдера.
|
CryptReleaseContext
|
Використовується для звільнення дескриптора криптопровайдера, створеного
CryptAcquireContext.
|
CryptSeiProvider CryptSetProviderEx
|
Використовується для завдання імені та типу криптопровайдера, який
використовується за умовчанням.
|
CryptSetProvParam
|
Встановлює параметри
криптопровайдера.
|
Таблиця
2. Функції створення, конфігурування, знищення криптографічних ключів, а також
обміну ключами с іншими додатками
Функція
|
Короткий опис
|
CryptDeriveKey
|
Створює сесійні криптографічні ключі з ключового матеріалу
|
CryptDestroyKey
|
Звільнює дескриптор ключа.
|
CryptDuplicateKey
|
Робить точну копію ключа, його параметрів та внутрішнього стану.
|
CryptExportKey
|
Використовується для експорту криптографічних ключів і ключових пар з
ключового контейнера криптопровайдера
|
CryptGenKey
|
Генерує випадкові сесійні ключі та ключові пари.
|
CryptGenRandom
|
Виробляє випадкову послідовність і зберігає її в
буфері
|
CryptGetKeyParam
|
Повертає параметри ключа.
|
CryptGet UserKey
|
Повертає дескриптор однієї з постійних ключових пар.
|
CryptlmportKey
|
Використовується для імпорту криптографічного ключа з ключового блоба в
контейнер криптопровайдера.
|
CryptSetKeyParam
|
Встановлює параметри ключа.
|
Таблиця
3. Функції, що реалізують операції шифрування та розшифрування з використанням
симетричних ключів
Функція
|
Короткий опис
|
CryptDecrypt
|
Використовується для розшифрування даних.
|
CryptEncrypt
|
Використовується для шифрування даних.
|
Таблиця
4. Функції, які використовуються для обчислення значень хеш-функцій, а також
створення та перевірки цифрового підпису повідомлень
Функція
|
Короткий опис
|
CryptCreateHash
|
Використовується для ініціалізації хешування потоку даних.
|
CryptDestroyHash
|
Знищує об’єкт хеш-функції
|
CryptDuplicateHash
|
Створює точну копію об’єкту хеш-функції.
|
CryptGetHashParam
|
Повертає параметри об’єкту хеш-функції.
|
CryptHashData
|
Використовується для додавання даних до об’єкту хеш-функції.
|
CryptHashSessionKey
|
Використовується для додавання до об’єкту хеш-функції значення сесійного
ключа.
|
CryptSetHashParam
|
Встановлює параметри об’єкта хеш-функції.
|
CryptSignHash
|
Обчислює значення ЕЦП від значення хешу, визначеного дескриптором об’єкту
хешування.
|
CryptVerifySignature
|
Здійснює перевірку підпису, яка відповідає
об'єкту хешування
|
Рекомендована література
1. А.Щербаков,
А.Домашев "Прикладная криптография. Использование и синтез
криптографических интерфейсов". Москва: Русская редакция, 2003.
2. ГОСТ
34.311-95 "Информационная технология. Криптографическая защита информации.
Функция хеширования".
3. ГОСТ 34.310-95
"Информационная технология. Криптографическая защита информации. Процедура
выработки и проверки электронной цифровой подписи на базе ассиметричного
криптографического алгоритма ";
4. ДСТУ
4145-2002 "Інформаційні технології. Криптографічний захист інформації.
Цифровий підпис, що ґрунтується на еліптичних кривих. Формування та
перевіряння"
5. ГОСТ
28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм
криптографического преобразования".
6. RSA Laboratories. PKCS#11: Cryptographic
Token Interface Standard.
Назад |