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

MessgeOut Ошибка при CryptHshDt

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 6.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. військовослужбовців збройних сил України атестованих працівників органів Міністерства внутрішніх справ У.html
2. ____ ________2013 г. Конспект лекції з дисципліни Безпека життєдія
3. Тема 4 - Отчет о прибылях и убытках Вариант 1 1
4.  Детей учит то что их окружает
5. Античная культура1
6. вариантов. Сочетание различных вариантов заданий позволяет создать набор заданий РГР Табл
7. Реферат- Клиникопсихологическая характеристика акцентуаций
8.  2014 г ГРАФИК ПРОВЕДЕНИЯ ПРЕДДИПЛОМНОЙ ПРАКТИКИ И ДИПЛОМНОГО ПРОЕКТИРОВАНИЯ
9. Методика расследования подделки денег.html
10. Курсовая работа- Особенности домашних заданий по физическому воспитанию для учащихся общеобразовательных школ