Encrypts or decrypts a file using a specified mode. The key and initialization vector are passed as arrays of bytes.
@deprecated use CIPHER_FileEncrypt() and CIPHER_FileDecrypt() instead.
Public Declare Function TDEA_File Lib "diCryptoSys.dll"
(ByVal strFileOut As String, ByVal strFileIn As String,
ByRef lpKey As Byte, ByVal bEncrypt As Boolean,
ByVal strMode As String, ByRef lpInitV As Byte) As Long
nRet = TDEA_File(strFileOut, strFileIn, abKey(0), bEncrypt, strMode, abInitV(0))
long __stdcall TDEA_File(const char *szFileOut, const char *szFileIn, const unsigned char *lpKey, int fEncrypt, const char *szMode, const unsigned char *lpIV);
If successful, the return value is 0; otherwise it returns a non-zero error code.
Tdea.FileEncrypt Method (String, String, Byte[], Mode, Byte[])
Tdea.FileDecrypt Method (String, String, Byte[], Mode, Byte[])
The key lpKey must be exactly 24 bytes long.
The initialization vector
byte array lpInitV must be exactly the block size of 8 bytes long,
except for ECB mode, where it is ignored (use 0
).
The output file szFileOut will be overwritten without warning.
If there is an error [new in version 3.3], the output file will not exist.
The input and output filepaths must not be the same.
In ECB and CBC modes, a padding string will be added or assumed according to the method outlined in Section 6.3 of
[CMS],
which is the same as the padding method in [PKCS7] and [PKCS5].
Const MY_PATH As String = "C:\Test\" Dim abKey() As Byte Dim strFileOut As String Dim strFileIn As String Dim strFileChk As String Dim nRet As Long ' Construct full path names to files strFileIn = MY_PATH & "hello.txt" strFileOut = MY_PATH & "hello.tdea.enc.dat" strFileChk = MY_PATH & "hello.tdea.chk.txt" ' Create the key as an array of bytes ' This creates an array of 24 bytes {&HFE, &HDC, ... &H10} abKey = cnvBytesFromHexStr("fedcba9876543210fedcba9876543210fedcba9876543210") ' Encrypt plaintext file to ciphertext ' Output file = 16-byte ciphertext file hello.enc nRet = TDEA_File(strFileOut, strFileIn, abKey(0), ENCRYPT, "ECB", 0) Debug.Print nRet ' Now decrypt it nRet = TDEA_File(strFileChk, strFileOut, abKey(0), DECRYPT, "ECB", 0) Debug.Print nRet