Visual FoxPro
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
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