Limagito Filemover Software Blog and News

February 29, 2020

How-To Simple Encrypt and Decrypt using Pascal Script (AES-256)

Dear users,

We’ve added the following Pascal Script functions in v2020.2.29.0:

  • Function psSimpleDecryptFile(Source, Destination, Key: String; IVAtBeginning: Boolean): Boolean;
  • Function psSimpleEncryptFile(Source, Destination, Key: String; IVAtBeginning: Boolean): Boolean;

psSimpleEncryptFile and psSimpleDecryptFile can be used to cypher/decypher any file content using AES-256 as encryption standard. The code uses a safe block chaining mode like CFB and PKCS7 padding. If ‘IVAtBeginning‘ is TRUE, a random Initialization Vector will be computed, and stored at the beginning of the output binary buffer. It will generate the binary key using SHA-256 over the supplied ‘Key’ string, and will use AES-NI hardware instructions if your CPU supports it.

Some screenshots to get you started. Let’s begin with the encryption script. Source will be the directory of files you want to Encrypt. As Destination you’ll need to add a Pascal Script.

The Script itself, don’t forget to adjust the ctOut path and the ctKey Const:

 

Const
ctOut = ‘C:\Test\Out\Encrypted\’;
ctKey = ‘*-+Key0123456789’;
Begin
// … add your code here
If psSimpleEncryptFile(psFilePath+psFilename, ctOut+psFileName, ctKey, True) then
Begin
psExitCode:= 1;
psLogWrite(1, ”, ‘Encryption Successful: ‘ + psFilename + psFilePath);
End
Else
Begin
psExitCode:= 0;
psLogWrite(1, ”, ‘Encryption Error: ‘ + psFilePath + psFilename);
End;
End.

AES-256.Encryption.Setup

In case you want to Decrypt Files, Source will be the directory containg the encrypted files (AES-256). As Destination you’ll need to add a different Pascal Script. Same here, don’t forget to adjust the ctOut path and the ctKey Const.

 

Const
ctOut = ‘C:\Test\Out\Encrypted\Decrypted\’;
ctKey = ‘*-+Key0123456789’;
Begin
psExitCode:= 1;
// … add your code here
If psSimpleDecryptFile(psFilePath+psFilename, ctOut+psFileName, ctKey, True) then
Begin
psExitCode:= 1;
psLogWrite(1, ”, ‘Decryption Successful: ‘ + psFilename);
End
Else
Begin
psExitCode:= 0;
psLogWrite(1, ”, ‘Decryption Error: ‘ + psFilename);
End;
End.

AES-256.Decryption.Setup

If you need any help, please let us know.

Regards,

Limagito Team