Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CryptoAPI

399
30 июля 2010 года
KIV
432 / / 20.01.2009
Разбираюсь с использованием MS CryptoAPI. Написал три приложения. Одно - генерирует пару из публичного и секретного ключа для RSA и сохраняет сначала публичный ключ в один файл, а потом пару ключей в другой файл. Я получаю двоичные данные открытого ключа вот так:
 
Код:
CryptExportKey(KeyHandle,0,PUBLICKEYBLOB,0,@public_key,@public_key_size);

Всё проходит без ошибок (функция возвращает не нулевое значение). Затем в другой программе я шифрую текст секретным ключом. Ну тут всё проходит тоже нормально. И наконец в третьей программе я дешифрую текст открытым ключом из файла. Верней хочу дешифровать открытым. А не получается. Открытый ключ нормально импортируется:
 
Код:
CryptImportKey(rsa,public_key,public_key_size,0,0,@public_key_handle);

А вот дешифровка не проходит:
 
Код:
CryptDecrypt(public_key_handle,0,True,0,buffer,@buffer_size );

Возвращает ноль. GetLastError (а потом ещё и получение по коду строки с сообщением об ошибке средствами ОС) возвращает "Ключ не существует". А вот если вместо данных публичного ключа я помещаю данные пары публичного/секретного ключа, то дешифровка проходит нормально. Вопрос: как мне заставить CryptoAPI расшифровывать текст только по открытому ключу?
P. S.: Код выше может содержать ошибки, т. к. я на самом деле пишу все три программы на Ассемблере, а перевёл ключевые вызовы на Pascal только для удобства отвечающих.
342
30 июля 2010 года
Yos
209 / / 21.06.2003
Может я чего-то не знаю и уже несколько лет пишу и делаю не то, но идея публичного/секретного ключа всегда использовалась наоборот - шифруется публичным а открывается секретным... Кстати, вопрос, как Вы думаете, почему сформировались два файлеца в одном только публичный, а в другом оба...

PS про ASM - при использовании технологии средства второстепенны...
399
30 июля 2010 года
KIV
432 / / 20.01.2009
Цитата:
Может я чего-то не знаю и уже несколько лет пишу и делаю не то, но идея публичного/секретного ключа всегда использовалась наоборот - шифруется публичным а открывается секретным...


А если надо наоборот? Мне нужно что-то вроде цифровой подписи (но не совсем). То есть зашифровать могу только я, а дешифровать и проверить может каждый.

5
30 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: KIV
А если надо наоборот? Мне нужно что-то вроде цифровой подписи (но не совсем). То есть зашифровать могу только я, а дешифровать и проверить может каждый.



CryptSignHash.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог