Sample code for 30+ languages & platforms
DataFlex

openssl enc decrypt

See more Encryption Examples

Demonstrates how to decrypt a file that was encrypted using "openssl enc".

This example shows how to decrypt what was created using this openssl command:

openssl enc -e -aes-256-cbc -in hamlet.xml -out hamlet.enc -pass file:./secret.txt

This example shows how to do this:

openssl enc -d -aes-256-cbc -in hamlet.enc -out hamlet_dec.xml -pass file:./secret.txt

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoCrypt
    Variant vFileData
    Handle hoFileData
    String sTemp1

    Move False To iSuccess

    // This example requires 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

    // Use aes-256-cbc
    Set ComCryptAlgorithm Of hoCrypt To "aes"
    Set ComCipherMode Of hoCrypt To "cbc"
    Set ComKeyLength Of hoCrypt To 256

    // We'll need to set the hash algorithm to either MD5 or SHA256.
    // openssl version 1.0.* or earlier used MD5 by default
    // openssl version 1.1.* uses SHA-256 for the password to secret key derivation.

    // For example, if openssl 1.1.0 was used, we should do this:
    Set ComHashAlgorithm Of hoCrypt To "sha256"

    // This example assumes openssl 1.0.2 was used to encrypt what we're now decrypting:
    Set ComHashAlgorithm Of hoCrypt To "md5"

    // The openssl command we are duplicating is:
    // 
    //    openssl enc -d -aes-256-cbc -in hamlet.enc -out hamlet_dec.xml -pass file:./secret.txt
    // 
    // The file secret.txt contains the word "secret".  We could write code to load the contents
    // of secret.txt, but instead we'll just do this:
    Send ComSetEncodedKey To hoCrypt "secret" "openssl"

    // Load the file to be decrypted.
    Get Create (RefClass(cComChilkatBinData)) To hoFileData
    If (Not(IsComObjectCreated(hoFileData))) Begin
        Send CreateComObject of hoFileData
    End
    Get ComLoadFile Of hoFileData "qa_data/openssl_enc/hamlet.enc" To iSuccess

    // Decrypt
    Set ComVerboseLogging Of hoCrypt To True
    Get pvComObject of hoFileData to vFileData
    Get ComDecryptBd Of hoCrypt vFileData To iSuccess
    Get ComLastErrorText Of hoCrypt To sTemp1
    Showln sTemp1

    // Save the decrypted output.
    Get ComWriteFile Of hoFileData "c:/temp/qa_output/hamlet_dec.xml" To iSuccess

    Showln "success = " iSuccess


End_Procedure