> The CryptGenKey function generates a random cryptographic > session key or a public/private key pair. > > Не понятно что делать с парой ключей. Как я знаю криптинг > идет public, а декрипт private. И наоборот. > Но ! A handle to the key or key pair is returned in phKey. > И как мне разделить эту пару ? Что бы private оставить у > себя, а public переслать другому клиенту.
Дык посмотри примеры на subj -евую функцию ....
> > Примеры написаны для симетричных алгоритмов, и совершенно > не освещают ассиметричные. :(
Поищи книжку - "Программирование алгоритмов защиты информации" - изд. Нолидж
( http://www.knowledge.ru ) - там полкнижки посвящены примерам использования CryptoAPI
... хотя ImHO самого интересного (как работать со СВОИМИ криптопровайдерами) - там нет :((
The CryptGenKey function generates a random cryptographic session key or a public/private key pair.
Не понятно что делать с парой ключей. Как я знаю криптинг идет public, а декрипт private. И наоборот.
Но ! A handle to the key or key pair is returned in phKey. И как мне разделить эту пару ? Что бы private оставить у себя, а public переслать другому клиенту.
Примеры написаны для симетричных алгоритмов, и совершенно не освещают ассиметричные. :(
Спасибо, как с экпортировать понял. А вот...10.09.01 14:07 Автор: PS <PS> Статус: Elderman
С криптованием неразбериха.
Извиняюсь за такие вопросы, но сегодня надо закончить работу. А я только с симетричными алгоритмами работал в MS CPAPI. Есно не книг купить не могу, не долго рытся в MSDN.
Проблема - ошибка NTE_BAD_KEY на след. коде:
if(CryptAcquireContext(
&hCryptProv,
NULL,
NULL,
PROV_RSA_FULL,
0))
{
}
Здается мне, что таким образом использовать созданный тобой ключ нельзя. Если CryptGenKey вызван с AT_KEYEXCHANGE или AT_SIGNATURE, то полученный ключ можно использовать как раз (и только) для киэксченджа и сигначирования. А ты пытаешься вызвать CryptEncrypt.
Вообще-то, ассиметричными алгоритмами данные обычно не шифруют - генерят случайный сеансовый (одноразовый) ключ для симметричного алгоритма (напр. DES), шифруют на нем данные, потом шифруют сам этот ключ на открытом ключе получателя сообщения и прилепляют его к зашифрованным данным. В MSDN есть пример шифрования и прилепливания - вот тут http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw98bk/html/theencryptdemoencryptingfile.asp
[Win32] CryptExportKey10.09.01 13:43 Автор: XR <eXtremal Research> Статус: The Elderman
> The CryptGenKey function generates a random cryptographic > session key or a public/private key pair. > > Не понятно что делать с парой ключей. Как я знаю криптинг > идет public, а декрипт private. И наоборот. > Но ! A handle to the key or key pair is returned in phKey. > И как мне разделить эту пару ? Что бы private оставить у > себя, а public переслать другому клиенту.
Дык посмотри примеры на subj -евую функцию ....
> > Примеры написаны для симетричных алгоритмов, и совершенно > не освещают ассиметричные. :(
Поищи книжку - "Программирование алгоритмов защиты информации" - изд. Нолидж
( http://www.knowledge.ru ) - там полкнижки посвящены примерам использования CryptoAPI
... хотя ImHO самого интересного (как работать со СВОИМИ криптопровайдерами) - там нет :((