Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline VitGun  
#1 Оставлено : 13 декабря 2010 г. 12:58:36(UTC)
VitGun

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.12.2010(UTC)
Сообщений: 2

есть Outlook, принимает шифрованные и подписанные сообщения с вложениями. Задача - реализовать автоматическое сохранение вложений. Сохранение нешифрованных сообщений я реализовал, теперь стоит задача расшифровки сообщения. Сертификат подписи хранится в реестре. В VBA описал функции криптопровайдера.

Код:

Private Declare Function CPAcquireContext Lib "cpcspe.dll" (phProv As Long, pszContainer As String, ByVal dwFlags As Long, ByVal pVTable As Long) As Integer
Private Declare Function CPDeriveKey Lib "cpcspe.dll" (ByVal hProv As Long, ByVal Algid As Long, ByVal hBaseData As Long, ByVal dwFlags As Long, phKey As Long) As Integer
Private Declare Function CPCreateHash Lib "cpcspe.dll" (ByVal hProv As Long, ByVal Algid As Long, ByVal hKey As Long, ByVal dwFlags As Long, phHash As Long) As Integer
Private Declare Function CPDecrypt Lib "cpcspe.dll" (ByVal hProv As Long, ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Boolean, ByVal dwFlags As Long, ByRef pbData() As Byte, pdwDataLen As Long) As Long



далее делаю так:
Код:

res = CPAcquireContext(phProv, ByVal sCont, 0, 0)
res = CPCreateHash(phProv, CALG_GR3411, 0, 0, lHash)
res = CPDeriveKey(phProv, CALG_G28147, lHash, CRYPT_EXPORTABLE, phKey)


в данном случае все три функции возвращают TRUE.

затем загружаю сообщение из файла

Код:

MyFile = FreeFile
Open ("C:\1\v.msg") For Binary As #MyFile
Ln = LOF(MyFile)
ReDim Buffer(1 To Ln) As Byte
Get #MyFile, , Buffer


и пытаюсь его зашифровать

Код:

res = CPDecrypt(phProv, phKey, lHash, True, 0, Buffer, Ln)


в итоге GetLastError позвращает ошибку 0x80090020 (-2146893792). ДСЧ только один, биологический. куда копать не представляю. надеюсь на вашу помощь или подсказку. заранее спасибо.
Offline Максим Коллегин  
#2 Оставлено : 13 декабря 2010 г. 13:19:14(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
хм. Все мягко говоря сложнее. Смотрите в сторону SMIME, а еще лучше автоматизации Outlook.
Знания в базе знаний, поддержка в центре поддержки
Offline VitGun  
#3 Оставлено : 13 декабря 2010 г. 13:40:32(UTC)
VitGun

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.12.2010(UTC)
Сообщений: 2

а вы не могли бы рассказать поподробнее?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.