Lianja
Lianja
RSA Encrypt Randomly Generated AES Key
See more RSA Examples
Demonstrates how to RSA encrypt a randomly generated AES key.Chilkat Lianja Downloads
llSuccess = .F.
// 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("CkPrng")
loBdAesKey = createobject("CkBinData")
llSuccess = loPrng.GenRandomBd(32,loBdAesKey)
// Use a public key from a certificate for RSA encryption.
loCert = createobject("CkCert")
llSuccess = loCert.LoadFromFile("qa_data/pem/mf_public_rsa.pem")
if (llSuccess = .F.) then
? loCert.LastErrorText
release loPrng
release loBdAesKey
release loCert
return
endif
loPubKey = createobject("CkPublicKey")
loCert.GetPublicKey(loPubKey)
loRsa = createobject("CkRsa")
llSuccess = loRsa.UsePublicKey(loPubKey)
if (llSuccess = .F.) then
? loRsa.LastErrorText
release loPrng
release loBdAesKey
release loCert
release loPubKey
release loRsa
return
endif
// RSA encrypt our 32-byte AES key.
// The contents of bdAesKey are replaced with result of the RSA encryption.
llSuccess = loRsa.EncryptBd(loBdAesKey,.F.)
if (llSuccess = .F.) then
? loRsa.LastErrorText
release loPrng
release loBdAesKey
release loCert
release loPubKey
release loRsa
return
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