Sample code for 30+ languages & platforms
DataFlex

Twofish CFB Mode Encryption

See more Encryption Examples

Demonstrates how to encrypt using Twofish CFB (Cipher Feedback) mode.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoCrypt
    String sIvHex
    String sKeyHex
    String sEncStr
    Handle hoDecrypt
    String sDecStr

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt
    If (Not(IsComObjectCreated(hoCrypt))) Begin
        Send CreateComObject of hoCrypt
    End

    Set ComCryptAlgorithm Of hoCrypt To "twofish"
    Set ComCipherMode Of hoCrypt To "cfb"
    Set ComKeyLength Of hoCrypt To 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.
    Set ComEncodingMode Of hoCrypt To "hex"

    Move "000102030405060708090A0B0C0D0E0F" To sIvHex
    Send ComSetEncodedIV To hoCrypt sIvHex "hex"

    // The secret key must equal the size of the key.  For
    // 256-bit encryption, the binary secret key is 32 bytes.
    Move "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" To sKeyHex
    Send ComSetEncodedKey To hoCrypt sKeyHex "hex"

    // Encrypt a string...
    Get ComEncryptStringENC Of hoCrypt "We must face the fact that the preservation of individual freedom is incompatible with a full satisfaction of our views of distributive justice. -- Friedrich Hayek" To sEncStr
    Showln sEncStr

    Get Create (RefClass(cComChilkatCrypt2)) To hoDecrypt
    If (Not(IsComObjectCreated(hoDecrypt))) Begin
        Send CreateComObject of hoDecrypt
    End

    Set ComCryptAlgorithm Of hoDecrypt To "twofish"
    Set ComCipherMode Of hoDecrypt To "cfb"
    Set ComKeyLength Of hoDecrypt To 256
    Set ComEncodingMode Of hoDecrypt To "hex"
    Send ComSetEncodedIV To hoDecrypt sIvHex "hex"
    Send ComSetEncodedKey To hoDecrypt sKeyHex "hex"

    // Now decrypt:
    Get ComDecryptStringENC Of hoDecrypt sEncStr To sDecStr
    Showln sDecStr


End_Procedure