Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
AES CFB Mode Encryption
See more Encryption Examples
Demonstrates how to encrypt using AES CFB (Cipher Feedback) mode.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Crypt2;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
crypt: TCrypt2;
ivHex: string;
keyHex: string;
encStr: string;
decrypt: TCrypt2;
decStr: string;
begin
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
crypt := TCrypt2.Create;
crypt.CryptAlgorithm := 'aes';
crypt.CipherMode := 'cfb';
crypt.KeyLength := 256;
// EncodingMode specifies the encoding of the output for
// encryption, and the input for decryption.
// It may be "hex", "url", "base64", "quoted-printable", or many other choices.
crypt.EncodingMode := 'hex';
ivHex := '000102030405060708090A0B0C0D0E0F';
crypt.SetEncodedIV(ivHex,'hex');
// The secret key must equal the size of the key. For
// 256-bit encryption, the binary secret key is 32 bytes.
keyHex := '603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4';
crypt.SetEncodedKey(keyHex,'hex');
// Encrypt a string...
encStr := crypt.EncryptStringENC('Good night, good night! parting is such sweet sorrow, That I shall say good night till it be morrow. -- William Shakespeare');
WriteLn(encStr);
decrypt := TCrypt2.Create;
decrypt.CryptAlgorithm := 'aes';
decrypt.CipherMode := 'cfb';
decrypt.KeyLength := 256;
decrypt.EncodingMode := 'hex';
decrypt.SetEncodedIV(ivHex,'hex');
decrypt.SetEncodedKey(keyHex,'hex');
// Now decrypt:
decStr := decrypt.DecryptStringENC(encStr);
WriteLn(decStr);
crypt.Free;
decrypt.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.