Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
53
Добавлен:
28.06.2014
Размер:
3 Кб
Скачать
unit Wincrypt;

interface
uses Windows;
const
      //коды криптографических алгоритмов
      CALG_MD2=$8001;
      CALG_MD4=$8002;
      CALG_MD5=$8003;
      CALG_SHA=$8004;
      CALG_RC2=$6602;
      CALG_RC4=$6801;
      //константы для функции CryptAcquireContext
      PROV_RSA_FULL=1;
      CRYPT_NEWKEYSET=$8;
      //константы для функции создания ключа
      CRYPT_EXPORTABLE=$1;
      CRYPT_CREATE_SALT=$4;
      AT_SIGNATURE= 2;
      //константы для функции установки параметров ключа
      KP_MODE=4;
                //коды режимов шифрования
      CRYPT_MODE_CBC=1;
      CRYPT_MODE_ECB=2;
      CRYPT_MODE_CFB=4;
type
      ALG_ID=Cardinal;      
      //функции CryptoAPI
function CryptAcquireContext(
   var hProv:THandle;
   pszContainer,pszProvider:PChar;
   dwProvType,dwFlags:Longint):Longbool;
   stdcall; external 'advapi32.dll' name 'CryptAcquireContextA';
function CryptCreateHash(
   hProv:THandle;
   Algid:ALG_ID;
   hKey:THandle;
   dwFlags:Longint;
   var hHash:THandle):Longbool;
   stdcall; external 'advapi32.dll';
function CryptHashData(
   hHash:THandle;
   pbData:Pointer;
   dwDataLen,dwFlags:Longint):Longbool;
   stdcall; external 'advapi32.dll';
function CryptDestroyHash(
   hHash:THandle):Longbool;
   stdcall; external 'advapi32.dll';
function CryptDeriveKey(
   hProv:THandle;
   Algid:ALG_ID;
   hBaseData:THandle;
   dwFlags:Longint;
   var hKey:THandle):Longbool;
   stdcall; external 'advapi32.dll';
function CryptDestroyKey(
   hKey:THandle):Longbool;
   stdcall; external 'advapi32.dll';
function CryptReleaseContext(
   hProv:THandle;
   dwFlags:Longint):Longbool;
   stdcall; external 'advapi32.dll';
function CryptEncrypt(
   hKey,hHash:THandle;
   Final:Longbool;
   dwFlags:Longint;
   pbData:Pointer;
   var dwDataLen:Longint;
   dwBufLen:Longint):Longbool;
   stdcall; external 'advapi32.dll';
function CryptDecrypt(
   hKey,hHash:THandle;
   Final:Longbool;
   dwFlags:Longint;
   pbData:Pointer;
   var dwDataLen:Longint):Longbool;
   stdcall; external 'advapi32.dll';
function CryptSetKeyParam(
    hKey:THandle;
    dwParam:Longint;
    pbData:Pointer;
    dwFlags:Longint):Longbool;
    stdcall; external 'advapi32.dll';
function CryptGenKey(
    hProv:THandle;
    Algid:ALG_ID;
    dwFlags:Longint;
    var phKey:THandle):Longbool;
    stdcall; external 'advapi32.dll';
function CryptGetUserKey(
    hProv:THandle;
    dwKeySpec:Longint;
    var phUserKey:THandle):Longbool;
    stdcall; external 'advapi32.dll';
function CryptSignHash(
    hHash:THandle;
    dwKeySpec:Longint;
    sDescription:PChar;	
    dwFlags:Longint;
    pbSignature:Pointer;
    var pdwSigLen:Longint):Longbool; 
    stdcall; external 'advapi32.dll' name 'CryptSignHashA';
function CryptVerifySignature(
    hHash:THandle;
    pbSignature:Pointer;
    dwSigLen:Longint;	
    hPubKey:THandle;
    sDescription:PChar;
    dwFlags:Longint):Longbool; 
    stdcall; external 'advapi32.dll' name 'CryptVerifySignatureA';
implementation

end.