Крипто-Про CSP

CPDecrypt

Функция CPDecrypt() расшифровывает данные, предварительно зашифрованные функцией CPEncrypt(). Одновременно может быть произведено хеширование данных.

BOOL WINAPI CPDecrypt(
  HCRYPTPROV hProv,
  HCRYPTKEY hKey,
  HCRYPTHASH hHash,
  BOOL Final,
  DWORD dwFlags,
  BYTE * pbData,
  DWORD * pdwDataLen
);

Аргументы

hProv
[in] Дескриптор криптопровайдера. Получается при помощи функции CPAcquireContext().
hKey
[in] Дескриптор сессионного ключа, используемого для расшифрования данных.
hHash
[in] Дескриптор объекта хеширования. Если хеширование данных одновременно с их расшифрованием не требуется, этот параметр должен быть нулевым.
Final
[in] Булева величина. Определяет, является ли переданный функции блок последним расшифрованным блоком данных. Она должна быть установлена TRUE, если блок - последний или единственный, и FALSE – в противном случае.
dwFlags
[in] Значения флагов. Параметр зарезервирован для будущего использования и должен быть нулевым.
pbData
[in/out] Указатель на буфер, содержащий данные для расшифрования. После выполнения расшифрования открытый текст помещается в этот же буфер.
pdwDataLen
[in/out] Указатель на буфер, содержащий длину данных. Параметр dwDataLen определяет число байтов шифртекста в буфере pbData . Через этот параметр функция возвращает указатель на число байтов открытого текста, помещенного в буфер pbData .

Возвращаемые значения:

При успешном завершении функция возвращает TRUE, в противном случае возвращается FALSE. Если возвращается FALSE, соответствующий код ошибки (см. таблицу) может быть получен через функцию GetLastError().
Коды возврата Описание
NTE_BAD_ALGID Параметр AlgId определяет алгоритм, который не поддерживается криптопровайдером.
NTE_BAD_FLAGS Величина dwFlags имеет ненулевое значение.
NTE_BAD_DATA Данные для расшифрования недействительны. В частности, в блочных режимах шифрования, если Final = FALSE, а длина шифртекста не кратна длине блока шифрования, возвращается данная ошибка. Эта ошибка также возвращается в блочных режимах шифрования, если используется дополнение PKCS#5, Final = TRUE, а дополнение блока не удовлетворяет условиям дополнения PKCS#5.
NTE_BAD_LEN Размер буфера для полученного открытого текста.
NTE_PERM Право расшифрования на данном ключе криптопровайдером не предоставлено.
NTE_FAIL Нарушение целостности ключей в ОЗУ. см. Дополнительные параметры и определения .

Требования:

Windows 2000/XP/2003: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.
Windows NT/95/98/ME: CSP 3.0 не поддерживает (см. КриптоПро CSP 2.0 World Wide Web link ).
Solaris: 9 Update 4 или выше.
FreeBSD: FreeBSD 5.2 или выше
Linux: RedHat 7.3, RedHad 9.0.
Файл описания: Прототип описан в файле wincsp.h.
Ядро Windows NT: IRQL < DISPATCH_LEVEL

См. также:

CPEncrypt() ,CPGenKey() ,CPDecrypt в MS CSP World Wide Web link ,CryptDecrypt в MS CryptoAPI 2.0 World Wide Web link

Крипто-Про CSP Версия: 3.0 Сборка 3293
Что Вы думаете по поводу данной статьи?
Закажите CD c Крипто-Про CSP