Visual FoxPro
Visual FoxPro
RSA Encrypt Randomly Generated AES Key
See more RSA Examples
Demonstrates how to RSA encrypt a randomly generated AES key.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loPrng
LOCAL loBdAesKey
LOCAL loCert
LOCAL loPubKey
LOCAL loRsa
LOCAL lcEncryptedAesKey
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* First generate a 256-bit AES key (32 bytes).
loPrng = CreateObject('Chilkat.Prng')
loBdAesKey = CreateObject('Chilkat.BinData')
lnSuccess = loPrng.GenRandomBd(32,loBdAesKey)
* Use a public key from a certificate for RSA encryption.
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadFromFile("qa_data/pem/mf_public_rsa.pem")
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loPrng
RELEASE loBdAesKey
RELEASE loCert
CANCEL
ENDIF
loPubKey = CreateObject('Chilkat.PublicKey')
loCert.GetPublicKey(loPubKey)
loRsa = CreateObject('Chilkat.Rsa')
lnSuccess = loRsa.UsePublicKey(loPubKey)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loPrng
RELEASE loBdAesKey
RELEASE loCert
RELEASE loPubKey
RELEASE loRsa
CANCEL
ENDIF
* RSA encrypt our 32-byte AES key.
* The contents of bdAesKey are replaced with result of the RSA encryption.
lnSuccess = loRsa.EncryptBd(loBdAesKey,0)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loPrng
RELEASE loBdAesKey
RELEASE loCert
RELEASE loPubKey
RELEASE loRsa
CANCEL
ENDIF
* Return the result as a base64 string
lcEncryptedAesKey = loBdAesKey.GetEncoded("base64")
? "encrypted AES key = " + lcEncryptedAesKey
RELEASE loPrng
RELEASE loBdAesKey
RELEASE loCert
RELEASE loPubKey
RELEASE loRsa