![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Generate a Random 256-bit AES Key and RSA EncryptSee more RSA ExamplesGenerates a random 256-bit AES key and encrypts using an RSA public key. Only the owner of the RSA private key will be able to decrypt the AES key.Note: This example requires Chilkat v11.0.0 or greater.
IncludeFile "CkBinData.pb" IncludeFile "CkPublicKey.pb" IncludeFile "CkPrng.pb" IncludeFile "CkRsa.pb" Procedure ChilkatExample() success.i = 0 ; The RSA public key is used for encryption, and the private key for decryption. ; The public key's role is to make encryption accessible to anyone while ensuring that ; only the private key holder can decrypt the messages. ; The public key is designed to be widely distributed so anyone can use it to encrypt messages ; intended for the owner of the private key. ; Load our 2048-bit RSA public key. pubKey.i = CkPublicKey::ckCreate() If pubKey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; In all Chilkat methods expecting a path, you pass either absolute or relative paths. success = CkPublicKey::ckLoadFromFile(pubKey,"rsaKeys/Test2048Rsa.pem") If success = 0 Debug CkPublicKey::ckLastErrorText(pubKey) CkPublicKey::ckDispose(pubKey) ProcedureReturn EndIf rsa.i = CkRsa::ckCreate() If rsa.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Tell RSA to use the public key. CkRsa::ckUsePublicKey(rsa,pubKey) ; Generate a random 256-bit AES key (32 bytes) bdAesKey.i = CkBinData::ckCreate() If bdAesKey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf prng.i = CkPrng::ckCreate() If prng.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkPrng::ckGenRandomBd(prng,32,bdAesKey) ; RSA encrypt. CkRsa::ckEncryptBd(rsa,bdAesKey,0) ; Save the RSA encrypted AES key to a file. success = CkBinData::ckWriteFile(bdAesKey,"rsaEncrypted/myAes.key") CkPublicKey::ckDispose(pubKey) CkRsa::ckDispose(rsa) CkBinData::ckDispose(bdAesKey) CkPrng::ckDispose(prng) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.