Sample code for 30+ languages & platforms
Visual FoxPro

Duplicate openssl smime -decrypt -in some_file.dat.enc -binary -inform DER -inkey private.key -out some_file.dat

See more OpenSSL Examples

Demonstrates how to decrypt binary DER that was encrypted using the following openssl command:
openssl smime -encrypt -binary -aes-256-cbc -in some_file.dat -out some_file.dat.enc -outform DER cert.crt

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loCert
LOCAL loBd
LOCAL loPrivKey
LOCAL loCrypt

lnSuccess = 0

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

* Duplicates the following openssl command:
* openssl smime -decrypt -in hello.txt.enc -binary -inform DER -inkey private.key -out hello.txt

loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadFromFile("qa_data/openssl/EE.cer")
IF (lnSuccess = 0) THEN
    ? loCert.LastErrorText
    RELEASE loCert
    CANCEL
ENDIF

loBd = CreateObject('Chilkat.BinData')
lnSuccess = loBd.LoadFile("qa_data/openssl/EE.key")
* Assuming success..

loPrivKey = CreateObject('Chilkat.PrivateKey')
lnSuccess = loPrivKey.LoadAnyFormat(loBd,"")
IF (lnSuccess = 0) THEN
    ? loPrivKey.LastErrorText
    RELEASE loCert
    RELEASE loBd
    RELEASE loPrivKey
    CANCEL
ENDIF

loCrypt = CreateObject('Chilkat.Crypt2')
lnSuccess = loCrypt.SetDecryptCert2(loCert,loPrivKey)
IF (lnSuccess = 0) THEN
    ? loCrypt.LastErrorText
    RELEASE loCert
    RELEASE loBd
    RELEASE loPrivKey
    RELEASE loCrypt
    CANCEL
ENDIF

loCrypt.CryptAlgorithm = "PKI"
lnSuccess = loCrypt.CkDecryptFile("qa_data/openssl/hello.txt.enc","qa_output/hello.txt")
IF (lnSuccess = 0) THEN
    ? loCrypt.LastErrorText
    RELEASE loCert
    RELEASE loBd
    RELEASE loPrivKey
    RELEASE loCrypt
    CANCEL
ENDIF

? "Success."

RELEASE loCert
RELEASE loBd
RELEASE loPrivKey
RELEASE loCrypt