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
(C) 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.
#include <C_CkPublicKey.h> #include <C_CkRsa.h> #include <C_CkBinData.h> #include <C_CkPrng.h> void ChilkatSample(void) { HCkPublicKey pubKey; BOOL success; HCkRsa rsa; HCkBinData bdAesKey; HCkPrng prng; // 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 = CkPublicKey_Create(); // In all Chilkat methods expecting a path, you pass either absolute or relative paths. success = CkPublicKey_LoadFromFile(pubKey,"rsaKeys/Test2048Rsa.pem"); if (success == FALSE) { printf("%s\n",CkPublicKey_lastErrorText(pubKey)); CkPublicKey_Dispose(pubKey); return; } rsa = CkRsa_Create(); // Tell RSA to use the public key. CkRsa_ImportPublicKeyObj(rsa,pubKey); // Generate a random 256-bit AES key (32 bytes) bdAesKey = CkBinData_Create(); prng = CkPrng_Create(); CkPrng_GenRandomBd(prng,32,bdAesKey); // RSA encrypt. CkRsa_EncryptBd(rsa,bdAesKey,FALSE); // Save the RSA encrypted AES key to a file. success = CkBinData_WriteFile(bdAesKey,"rsaEncrypted/myAes.key"); CkPublicKey_Dispose(pubKey); CkRsa_Dispose(rsa); CkBinData_Dispose(bdAesKey); CkPrng_Dispose(prng); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.