CryptoSys API Library Manual

BLF_FileHex

Encrypts or decrypts a file using a specified mode. The key and initialization vector are passed as hexadecimal strings.

VB6/VBA Syntax

Public Declare Function BLF_FileHex Lib "diCryptoSys.dll" (ByVal strFileOut As String, ByVal strFileIn As String, ByVal strHexKey As String, ByVal bEncrypt As Boolean, ByVal strMode As String, ByVal strHexIV As String) As Long

nRet = BLF_FileHex(strFileOut, strFileIn, strHexKey, bEncrypt, strMode, strHexIV)

Parameters

strFileOut
[in] String with the full path name of the output file to be created.
strFileIn
[in] String with the full path name of the input file to be processed.
strHexKey
[in] String containing the key in hexadecimal.
bEncrypt
[in] Boolean direction flag: set as True to encrypt or False to decrypt.
strMode
[in] String specifying the confidentiality mode:
"ECB" for Electronic Codebook mode,
"CBC" for Cipher Block Chaining mode,
"CFB" for 64-bit Cipher Feedback mode,
"OFB" for Output Feedback mode, or
"CTR" for Counter mode.
strHexIV
[in] String containing the initialization vector (IV) in hexadecimal.

C/C++ Syntax

long _stdcall BLF_FileHex(const char *strFileOut, const char *strFileIn, const char *strHexKey, int bEncrypt, const char *strMode, const char *strHexIV);

Returns (VB6/C)

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

.NET Equivalent

Blowfish.FileEncrypt Method (String, String, String, Mode, String)
Blowfish.FileDecrypt Method (String, String, String, Mode, String)

Remarks

The initialization vector string strHexIV must be exactly 16 hex characters long (i.e. representing exactly 8 bytes) unless strMode is ECB, in which case strHexIV is ignored (use ""). The key strKey can be any even length between 2 and 112 hexadecimal characters. Valid hexadecimal characters are [0-9A-Fa-f]. The output file strFileOut 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].

Note that even though the parameters are in hexadecimal-encoded form, the encrypted file is still binary.

Example

This example will encrypt the file "bigfile.dat" in CBC mode using the key 0xfedcba9876543210fedcba9876543210 and initialization vector 0x0123456789abcdef. The output file "bigfile.cbc" will be created or overwritten.

    Dim nRet As Long

    ' Encrypt plaintext file to cipher
    nRet = BLF_FileHex("bigfile.cbc", "bigfile.dat", _
        "fedcba9876543210fedcba9876543210", ENCRYPT, "CBC", "0123456789abcdef")
    Debug.Print nRet

See Also

BLF_File

[Contents] [Index]

[HOME]   [NEXT: BLF_Final...]

Copyright © 2001-11 D.I. Management Services Pty Ltd. All rights reserved.