(Tcl) RSA Encrypt and OpenSSL Decrypt
Demonstrates how to use Chilkat to RSA encrypt, and then use OpenSSL to decrypt. Note: This example requires Chilkat v11.0.0 or greater.
load ./chilkat.dll
set success 0
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set rsa [new_CkRsa]
set privKey [new_CkPrivateKey]
set success [CkRsa_GenKey $rsa 2048 $privKey]
set success [CkPrivateKey_SavePkcs8PemFile $privKey "qa_output/privKey.pem"]
set pubKey [new_CkPublicKey]
CkPrivateKey_ToPublicKey $privKey $pubKey
CkRsa_put_EncodingMode $rsa "base64"
set plainText "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890"
set bUsePrivateKey 0
CkRsa_UsePublicKey $rsa $pubKey
set encryptedStr [CkRsa_encryptStringENC $rsa $plainText $bUsePrivateKey]
set bd [new_CkBinData]
CkBinData_AppendEncoded $bd $encryptedStr "base64"
set success [CkBinData_WriteFile $bd "qa_output/enc.dat"]
# The OpenSSL command to decrypt is:
# openssl pkeyutl -in enc.dat -inkey privKey.pem -keyform PEM -pkeyopt rsa_padding_mode:pkcs1 -decrypt
puts "OK"
delete_CkRsa $rsa
delete_CkPrivateKey $privKey
delete_CkPublicKey $pubKey
delete_CkBinData $bd
|