Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

MessgeOut Ошибка при CryptHshDt

Работа добавлена на сайт samzan.net:


cin»KeyFrase ;

HCRYPTHASH hash=O; // дескриптор хеш-значения if (!CryptCreateHash(hProv, CALG_SHA, 0, 0, Shash)) { cout<<MessageOut("Ошибка при CryptCreateHash!\n"); getch(); return; }

if(!CryptHashData(hash,  (BYTE*)KeyFrase,  strlen (KeyFrase),0)) {

cout«MessageOut ("Ошибка при CryptHashData ! \n") ; getch(); return; }

// создание сеансового ключа HCRYPTKEY hKey=O;

if(ICryptDeriveKey(hProv,  CALG_RC4,  hash,  CRYPT_ EXPORTABLE | CRYPT_CREATE_SALT/ ShKey)) { cout<<MessageOut("Ошибка при CryptDeriveKey!\n"); getch (); return; }

// разрушение хеш-значения if (hash) CryptDestroyHash(hash);

/* получение (создание при первом обращении) пары ключей обмена .*/

HCRYPTKEY hExpKey=0; /* дескриптор открытого ключа обмена */

HCRYPTKEY hSignKey=0; /* дескриптор открытого ключа ЭЦП */

if(!CryptGetUserKey(hProv, AT_KEYEXCHANGE, ShExpKey)) if((unsigned)GetLastError()==NTE_NO_KEY) if ( !CryptGenKey(hProv, AT_KEYEXCHANGE, 0, ShExpKey)) { cout«MessageOut ("Ошибка при создании ключей"\ "обмена через CryptGenKey!\п"); getch(); return; } else; else {

cout<<MessageOut("Ошибка при получении ключей"\ "обмена через CryptGetUserKey!\n"); getch (); return; }

/* получение (создание при первом обращении) пары ключей ЭЦП */

if(!CryptGetUserKey(hProv, AT_SIGNATURE, ShSignKey)) if((unsigned)GetLastError()==NTE_NO_KEY) if(!CryptGenKey(hProv, AT_SIGNATURE, 0, ShSignKey)) { cout<<MessageOut("Ошибка при создании ключей"\ подписи через CryptGenKey!\n");

 getch();

return; }

else;

else {

cout«MessageOut ("Ошибка при получении ключей"\

"подписи через CryptGetUserKey!\п");

getch();

return; }

/* выполнение криптографических операций {см. подразд.

5.3 и 5.4)*/

II разрушение сеансового ключа

if(hKey) CryptDestroyKey(hKey);

// разрушение дескрипторов открытых ключей

if (hExpKey) CryptDestroyKey(hExpKey);

if(hSignKey) CryptDestroyKey(hSignKey);

// освобождение CSP

if(hProv) CryptReleaseContext(hProv, 0);

return; }

Для организации обмена открытыми ключами асимметричного шифрования возможны как использование удостоверяющих центров (см. подразд. 4.8), так и передача открытых ключей напрямую между пользователями:

отправитель экспортирует из криптопровайдера свой откры
тый ключ в форме блоба (типа
PUBLICKEYBLOB) с помощью
функции
CryptExportKey;

блоб посылается получателю по защищенному каналу связи
(например, в зашифрованном виде с помощью сеансового клю
ча, генерируемого из специальной ключевой фразы, или в от
крытом виде с возможной конвертацией в текстовый формат);

получатель блоба импортирует его в свой криптопровайдер
с помощью функции
CryptlmportKey.

Для передачи сеансового ключа также могут применяться два способа. Первый способ: отправитель создает случайный сеансовый ключ (с помощью функции CryptGenKey), зашифровывает его при помощи ранее полученного открытого ключа получателя (используется функция CryptExportKey) в виде блоба типа SIMPLpBLOB, отправляет блоб получателю, который расшифровывает сеансовый ключ с помощью своего секретного ключа обмена (используется функция CryptlmportKey). Для снижения риска повторной посылки нарушителем перехваченного им ранее блоба с сеансовым ключом и зашифрованного с помощью этого ключа сообщения можно использовать отметки времени (аналогично протоколу Kerberos, см. подразд. 2.5) или последовательную нумерацию сообщений на основе случайного начального значения.




1. Реферат- Волоконно-оптические линии связи (Контрольная)
2. Реферат- Отчет по лабораторной работе Термодинамика
3. На тему- Исследование счетчиков Вариант 6 Выполнили- Студ
4. Тема и номер урока в теме Источники света
5. тема 24 БЮДЖЕТНОНАЛОГОВАЯ ПОЛИТИКА ГОСУДАРСТВА Специальность 080101
6. Дискурс сексуальности
7. Мечников Ілля Ілліч
8. Код Перкинса так назвал я для себя эту книгу когда закрыл ее последнюю страницу оторвавшись наконец от
9. документов Любая деятельность в области Public Reltions независимо от той сферы в которой она проводится целико
10. Стаття 265. Декларанти 5
11. РЕФЕРАТ з природознавства- ldquo;За рахунок чого і як риби пристосовані до життя у водіrdquo;
12. Школа в годы войн
13. во студентов 15 человек
14.  ПОНЯТИЕ УБИЙСТВА стр
15. реферат дисертації на здобуття наукового ступеня доктора економічних наук Львів 2005 Дисертацією є.html
16. 3307 228 ед.; самосвалы САЗ3502 102 ед.
17. тематизировал огромный естественнонаучный материал своих предшественников критически его оценил исходя и
18. Поняття державних та місцевих доходів Доходи Державного бюджету це частина централізованих фінансових
19. Возможность проведения рекламной компании с охватом значительной аудитории при ограниченном бюджете; 2.html
20. Лист календаря