Sample code for 30+ languages & platforms
Visual FoxPro

Encrypt with Chilkat, Decrypt with OpenSSL

See more OpenSSL Examples

Demonstrates how to RSA encrypt a string using Chilkat, and then shows the corresponding OpenSSL command to RSA decrypt. The OpenSSL command to decrypt is as follows:
openssl rsautl -decrypt -inkey VP_Private.pem -in rsa_encrypted.bin -out original.txt

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRsa
LOCAL loKey
LOCAL lcStrToEncrypt
LOCAL lnUsePrivateKey
LOCAL loEncryptedBytes
LOCAL loFac

lnSuccess = 0

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

loRsa = CreateObject('Chilkat.Rsa')

* Note: RSA encryption uses the public key.  
* RSA decryption uses the private key.
* The reason is that the public key can be freely provided to anybody.  This allows anybody
* to send an encrypted message to the private key owner, and only the private key owner 
* can decrypt.
loKey = CreateObject('Chilkat.PublicKey')

* Load an RSA public key from a PEM file:
lnSuccess = loKey.LoadFromFile("qa_data/pem/VP_Public.pem")
IF (lnSuccess = 0) THEN
    ? loKey.LastErrorText
    RELEASE loRsa
    RELEASE loKey
    CANCEL
ENDIF

* Load the public key into the RSA object.
lnSuccess = loRsa.UsePublicKey(loKey)
IF (lnSuccess = 0) THEN
    ? loRsa.LastErrorText
    RELEASE loRsa
    RELEASE loKey
    CANCEL
ENDIF

lcStrToEncrypt = "00000000;XYZ2-3BHQ-ABCD-MMVV;6MY1-GHJK-9LRR;0"

* The LittleEndian property is 0 by default, but it is set here
* anyway to show that LittleEndian byte ordering is required for OpenSSL compatibility.
loRsa.LittleEndian = 0

lnUsePrivateKey = 0

loEncryptedBytes = loRsa.EncryptString(lcStrToEncrypt,lnUsePrivateKey)
IF (loRsa.LastMethodSuccess = 0) THEN
    ? loRsa.LastErrorText
    RELEASE loRsa
    RELEASE loKey
    CANCEL
ENDIF

* The OpenSSL command to decrypt would be this:
* openssl rsautl -decrypt -inkey VP_Private.pem -in rsa_encrypted.bin -out original.txt

loFac = CreateObject('Chilkat.FileAccess')
lnSuccess = loFac.WriteEntireFile("qa_output/rsa_encrypted.bin",loEncryptedBytes)
IF (lnSuccess = 0) THEN
    ? loFac.LastErrorText
    RELEASE loRsa
    RELEASE loKey
    RELEASE loFac
    CANCEL
ENDIF

? "RSA Encryption Succeeded."

RELEASE loRsa
RELEASE loKey
RELEASE loFac