Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) RSA Encrypt Randomly Generated AES KeyDemonstrates how to RSA encrypt a randomly generated AES key.
#include <CkPrng.h> #include <CkBinData.h> #include <CkCert.h> #include <CkPublicKey.h> #include <CkRsa.h> void ChilkatSample(void) { CkString strOut; // 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). CkPrng prng; CkBinData bdAesKey; bool success = prng.GenRandomBd(32,bdAesKey); // Use a public key from a certificate for RSA encryption. CkCert cert; success = cert.LoadFromFile("qa_data/pem/mf_public_rsa.pem"); if (success == false) { strOut.append(cert.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkPublicKey *pubKey = cert.ExportPublicKey(); if (cert.get_LastMethodSuccess() != true) { strOut.append(cert.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkRsa rsa; success = rsa.ImportPublicKeyObj(*pubKey); if (success == false) { strOut.append(rsa.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } delete pubKey; // RSA encrypt our 32-byte AES key. // The contents of bdAesKey are replaced with result of the RSA encryption. success = rsa.EncryptBd(bdAesKey,false); if (success == false) { strOut.append(rsa.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Return the result as a base64 string const char *encryptedAesKey = bdAesKey.getEncoded("base64"); strOut.append("encrypted AES key = "); strOut.append(encryptedAesKey); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.