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
(Unicode 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_CkPublicKeyW.h> #include <C_CkRsaW.h> #include <C_CkBinDataW.h> #include <C_CkPrngW.h> void ChilkatSample(void) { HCkPublicKeyW pubKey; BOOL success; HCkRsaW rsa; HCkBinDataW bdAesKey; HCkPrngW 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 = CkPublicKeyW_Create(); // In all Chilkat methods expecting a path, you pass either absolute or relative paths. success = CkPublicKeyW_LoadFromFile(pubKey,L"rsaKeys/Test2048Rsa.pem"); if (success == FALSE) { wprintf(L"%s\n",CkPublicKeyW_lastErrorText(pubKey)); CkPublicKeyW_Dispose(pubKey); return; } rsa = CkRsaW_Create(); // Tell RSA to use the public key. CkRsaW_ImportPublicKeyObj(rsa,pubKey); // Generate a random 256-bit AES key (32 bytes) bdAesKey = CkBinDataW_Create(); prng = CkPrngW_Create(); CkPrngW_GenRandomBd(prng,32,bdAesKey); // RSA encrypt. CkRsaW_EncryptBd(rsa,bdAesKey,FALSE); // Save the RSA encrypted AES key to a file. success = CkBinDataW_WriteFile(bdAesKey,L"rsaEncrypted/myAes.key"); CkPublicKeyW_Dispose(pubKey); CkRsaW_Dispose(rsa); CkBinDataW_Dispose(bdAesKey); CkPrngW_Dispose(prng); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.