CryptoSys API Library Manual

AES128_File

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.

VBA/VB6 Syntax

Public Declare Function AES128_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 = AES128_File(strFileOut, strFileIn, abKey(0), bEncrypt, strMode, abInitV(0))

C/C++ Syntax

long __stdcall AES128_File(const char *szFileOut, const char *szFileIn, const unsigned char *lpKey, int fEncrypt, const char *szMode, const unsigned char *lpIV);

Parameters

szFileOut
[in] with the full path name of the output file to be created.
szFileIn
[in] with the full path name of the input file to be processed.
lpKey
[in] array containing the key.
fEncrypt
[in] direction flag: set as ENCRYPT (True) to encrypt or DECRYPT (False) to decrypt.
szMode
[in] specifying the confidentiality mode:
"ECB" for Electronic Codebook mode,
"CBC" for Cipher Block Chaining mode,
"CFB" for 128-bit Cipher Feedback mode,
"OFB" for Output Feedback mode, or
"CTR" for Counter mode.
lpIV
[in] array containing the initialization vector (IV), or zero (0) for ECB mode.

Returns (VBA/C)

If successful, the return value is 0; otherwise it returns a non-zero error code.

.NET Equivalent

Aes128.FileEncrypt Method (String, String, Byte[], Mode, Byte[])
Aes128.FileDecrypt Method (String, String, Byte[], Mode, Byte[])

Remarks

The key array abKey() must be exactly 16 bytes long. The initialization vector abInitV() must be exactly the block size of 16 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].

Example

This example will encrypt the file "now.txt" in ECB mode using the 128-bit key 0xfedcba9876543210fedcba9876543210, and then decrypt back to the plain text file "aesnow.chk" as a check. Both output files "aesnow.enc" and "aesnow.chk" will be created or overwritten.

Const MY_PATH As String = "C:\Test\"
Dim strFileOut As String, strFileIn As String, strFileChk As String
Dim nRet As Long
Dim abKey() As Byte

' Construct full path names to files
strFileIn = MY_PATH & "now.txt"
strFileOut = MY_PATH & "now.aes128.enc.dat"
strFileChk = MY_PATH & "now.aes128.chk.txt"

' Convert key to byte array
abKey = cnvBytesFromHexStr("0123456789ABCDEFF0E1D2C3B4A59687")
' Encrypt plaintext file to cipher
nRet = AES128_File(strFileOut, strFileIn, abKey(0), ENCRYPT, "ECB", 0)
If nRet <> 0 Then
    Debug.Print "Error " & nRet & ": " & apiErrorLookup(nRet)
End If

' Now decrypt it
nRet = AES128_File(strFileChk, strFileOut, abKey(0), DECRYPT, "ECB", 0)
If nRet <> 0 Then
    Debug.Print "Error " & nRet & ": " & apiErrorLookup(nRet)
End If

See Also

AES128_FileExt AES128_FileHex

[Contents] [Index]

[PREV: AES128_BytesMode...]   [Contents]   [Index]   
   [NEXT: AES128_FileExt...]

Copyright © 2001-24 D.I. Management Services Pty Ltd. All rights reserved. Generated 2024-01-07T07:42:00Z.