Не получается заставить работать код декрипта 3DES = \ Code: bool Decode3Des(uchar* input,DWORD szInput,uchar* key1,uchar* key2,uchar* key3,uchar* iVector) { HCRYPTPROV hProv; CryptAcquireContext(&hProv,NULL,MS_ENHANCED_PROV,PROV_RSA_FULL,CRYPT_DELETEKEYSET); if(CryptAcquireContext(&hProv,NULL,MS_ENHANCED_PROV,PROV_RSA_FULL,CRYPT_NEWKEYSET)){ BLOBHEADER keyHeader; keyHeader.bType=PLAINTEXTKEYBLOB; keyHeader.bVersion=CUR_BLOB_VERSION; keyHeader.reserved=0; keyHeader.aiKeyAlg=CALG_3DES; uchar bKey[36]; memset(bKey,0,36); memcpy(bKey,&keyHeader,sizeof(keyHeader)); bKey[sizeof(keyHeader)]=24; memcpy(bKey+sizeof(keyHeader)+sizeof(DWORD),key1,8); memcpy(bKey+sizeof(keyHeader)+sizeof(DWORD)+8,key2,8); memcpy(bKey+sizeof(keyHeader)+sizeof(DWORD)+16,key3,8); HCRYPTKEY hKey; uint result0 =CryptImportKey(hProv,bKey,sizeof(keyHeader)+sizeof(DWORD)+24,NULL,0,&hKey); DWORD desMode=CRYPT_MODE_CBC; uint result = CryptSetKeyParam(hKey,KP_MODE,(BYTE*)&desMode,0); desMode=PKCS5_PADDING; //ZERO_PADDING; uint result1 = CryptSetKeyParam(hKey,KP_PADDING,(BYTE*)&desMode,0); uint error1=GetLastError(); uint result2 =CryptSetKeyParam(hKey,KP_IV,iVector,0); uint result213=CryptDecrypt(hKey,0,TRUE,0,input,&szInput); uint error=GetLastError(); CryptDestroyKey(hKey); CryptReleaseContext(hProv,0); return 1; } return 0; } CryptDecrypt завершается с ошибкой. код ошибки 80090005 2148073477 NTE_BAD_DATA: Bad Data.