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

MessgeOut Ошибка при CryptHshDt

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

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.4.2025

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. Лекция 4 Сополимеризация
3. Нефть и способы ее переработки
4. Звали ее Аврора В школе была отличницей а университет окончила на высший балл
5. 25 ~ 149 Обрабатываемая площадь -количество работников акров-человек
6.  это его классификация предназначенная для разделения всех прошлых и настоящих государств на такие групп
7. 167.1 ББК 74.04 2 С 74 Д.
8. Республика Науру.html
9. Женщина в песках 1960 знаменует начало романного творчества Абэ
10. Марганцево-цинковые элементы