Opened 15 years ago
Closed 15 years ago
#1738 closed Bug (Duplicate)
crypt.au3 - Calling of _Crypt_EncryptData
| Reported by: | pille2009@… | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | 3.3.6.0 | Severity: | None |
| Keywords: | crypt | Cc: |
Description
The function callings of _Crypt_EncryptData() for example in _Crypt_EncryptFile() are wrong. The last Parameter $fFinal in _Crypt_EncryptData() must only be switch to false if you are using a stream cipher like RC4.
if using a blockcipher like AES or DES, this param must always be TRUE
Attachments (0)
Change History (4)
comment:1 Changed 15 years ago by anonymous
comment:2 Changed 15 years ago by Jpm
the _Crypt_EncryptData() has been fixed for the next beta/Release with
Func _Crypt_EncryptData($vData, $vCryptKey, $iALG_ID, $fFinal = True)
Local $hBuff
Local $iError
Local $vReturn
Local $ReqBuffSize
Local $aRet
_Crypt_Startup()
Do
If $iALG_ID <> $CALG_USERKEY Then
$vCryptKey = _Crypt_DeriveKey( $vCryptKey,$iALG_ID)
If @error Then
$iError = 1
$vReturn = -1
ExitLoop
EndIf
EndIf
$aRet = DllCall(__Crypt_DllHandle(), "bool", "CryptEncrypt", "handle", $vCryptKey, "handle", 0, "bool", $fFinal, "dword", 0, "ptr", 0, _
"dword*", BinaryLen($vData), "dword", 0)
If @error Or Not $aRet[0] Then
$iError = 2
$vReturn = -1
ExitLoop
EndIf
$ReqBuffSize = $aRet[6]
$hBuff = DllStructCreate("byte[" & $ReqBuffSize & "]")
DllStructSetData($hBuff, 1, $vData)
$aRet = DllCall(__Crypt_DllHandle(), "bool", "CryptEncrypt", "handle", $vCryptKey, "handle", 0, "bool", $fFinal, "dword", 0, "ptr", DllStructGetPtr($hBuff), _
"dword*", BinaryLen($vData), "dword", DllStructGetSize($hBuff))
If @error Or Not $aRet[0] Then
$iError = 3
$vReturn = -1
ExitLoop
EndIf
$iError = 0
$vReturn = DllStructGetData($hBuff, 1)
Until True
If $iALG_ID <> $CALG_USERKEY Then _Crypt_DestroyKey($vCryptKey)
_Crypt_Shutdown()
Return SetError($iError, 0, $vReturn)
EndFunc ;==>_Crypt_EncryptData
Does that solve your issue?
comment:3 Changed 15 years ago by pille2009@…
Works like a charme.
Tested on various files with a varying filesize from 10 KB up to 700 MB. Tested using RC4 and AES256. MD5-Hashsums machting.
This Bug can be closed
comment:4 Changed 15 years ago by Jpm
- Resolution set to Duplicate
- Status changed from new to closed
no problem as it was already closed with a previous ticket ...
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.

this issue is the reason why crypting/decrypting of files larger than buffer (1024 * 1024) e.q. 1MB corrupts the file