Использование Crypto API
От: Юрий Николаев Россия www.strozhevsky.com
Дата: 28.12.04 08:31
Оценка: 165 (8)
Статья:
Использование Crypto API
Автор(ы): Юрий Строжевский
Дата: 23.04.2005
В статье рассказывается об использовании Crypto API — API шифрования и работы с цифровой подписью в Windows.


Авторы:
Юрий Николаев

Аннотация:
В статье рассказывается об использовании Crypto API — API шифрования и работы с цифровой подписью в Windows.
Re: Использование Crypto API
От: olga145  
Дата: 16.05.05 12:52
Оценка:
How To Export/Import Plain Text Session Key Using CryptoAPI
Re[2]: Использование Crypto API
От: y-niko Россия www.strozhevsky.com
Дата: 18.05.05 11:50
Оценка:
Здравствуйте, olga145, Вы писали:

O>How To Export/Import Plain Text Session Key Using CryptoAPI


Если речь идет о возможности экспорта сессионного ключа, то должен отметить, что провайдеры от Microsoft изначально обладают такой возможностью. Доступность этой возможности можно проверить путем экспорта сертификата с ассоциированным с ним секретным ключом. Криптопровайдеры от Microsoft всегда позволяют сделать экспорт сертификата (*.p7b) вместе с его секретным ключом. Криптопровайдеры от других производителей не позволят сделать подобное.
Кроме того, в описываемой в приведенной Вами статье используется формат BLOB-а именно для Microsoft. Для других производителей он, естественно, не подойдет. Proprietary code
Re: Использование Crypto API
От: Viktor Sklyar Украина  
Дата: 01.02.06 13:27
Оценка:
Здравствуйте, Юрий Николаев, Вы писали:

ЮН>Статья:

ЮН>Использование Crypto API
Автор(ы): Юрий Строжевский
Дата: 23.04.2005
В статье рассказывается об использовании Crypto API — API шифрования и работы с цифровой подписью в Windows.



валится
::CryptGenKey(hProv, CALG_RC4, CRYPT_ENCRYPT | CRYPT_DECRYPT, &hSessionKey)
с кодом 0x8008022 — поставщик не смог выполнить действие, поскольку контекст был получен как «тихий»
Что не так?

Это первый пример из статьи где шифруется текст.
С Уважением.
Re[2]: Использование Crypto API
От: yudinetz Чехия  
Дата: 26.08.09 10:40
Оценка:
Здравствуйте, Viktor Sklyar, Вы писали:

VS>Здравствуйте, Юрий Николаев, Вы писали:


ЮН>>Статья:

ЮН>>Использование Crypto API
Автор(ы): Юрий Строжевский
Дата: 23.04.2005
В статье рассказывается об использовании Crypto API — API шифрования и работы с цифровой подписью в Windows.



VS>валится

VS>::CryptGenKey(hProv, CALG_RC4, CRYPT_ENCRYPT | CRYPT_DECRYPT, &hSessionKey)
VS>с кодом 0x8008022 — поставщик не смог выполнить действие, поскольку контекст был получен как «тихий»
VS>Что не так?

VS>Это первый пример из статьи где шифруется текст.

действительно, падает. что делать?
и что за функция Error()? что надо подключить, чтоб оно компилировалось хотя бы?
Re: Использование Crypto API
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.08.09 13:41
Оценка:
Здравствуйте, Юрий Николаев, Вы писали:

ЮН>В статье рассказывается об использовании Crypto API — API шифрования и работы с цифровой подписью в Windows.


Все это дивно, но виндовсный Crypto API — черный ящик, спроектированный по принципу "нажми на кнопку, получишь результат". Нередко стоит задача сделать совместимую реализацию чего-нибудь криптографического, когда на одном конце стоит венда с CryptoAPI, а на другом — не винда и при этом все форматы/протоколы известны.

К сожалению, про CryptoAPI нигде не документированно, в каком виде из него можно извлекать те или иные данные. Например, вы использыете DHE, чтобы получить сессионный ключ, а в каком виде он оттуда вылазит, недокументированно. Известно лишь, что их можно извлечь в виде пригодном, чтобы назад засунуть в тот же CryptoAPI. Но если у вас на другом конце не CryptoAPI, вам это знание мало чем поможет.

Кроме того, нигде не документированно, на какие ограничения (например, по длинне ключей) вы можете рассчитывать.

А поскольку требование совместимости с альтернативной реализацией рано или поздно может появиться, то использовать CryptoAPI в новых проектах несколько рискованно, вы оказываетесь навсегда привязаны к венде.
Re[2]: Использование Crypto API
От: yudinetz Чехия  
Дата: 30.08.09 15:23
Оценка:
все, разобрался. вместо "CryptGenKey(hProv, CALG_RC4, CRYPT_ENCRYPT | CRYPT_DECRYPT, &hSessionKey)"
следует писать "CryptGenKey(hProv, CALG_RC4, 0, &hSessionKey)", тогда все нормально шифруется и пример работает.
Re[3]: Использование Crypto API
От: Mizantrop  
Дата: 01.09.09 02:12
Оценка:
Здравствуйте, yudinetz, Вы писали:

Y>все, разобрался. вместо "CryptGenKey(hProv, CALG_RC4, CRYPT_ENCRYPT | CRYPT_DECRYPT, &hSessionKey)"

Y>следует писать "CryptGenKey(hProv, CALG_RC4, 0, &hSessionKey)", тогда все нормально шифруется и пример работает.

Вообще-то в этом параметре надо длину ключа передавать в старшем слове, при нуле берётся дефолтное, а оно от версии провайдера зависит. Плюс флаги разные в младшем слове — по желанию.
"Нормальные герои всегда идут в обход!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.