Sample code for 30+ languages & platforms
Unicode C++

RSA Encrypt with Modulus and Exponent

See more RSA Examples

Demonstrates how to RSA encrypt with a given modulus and exponent.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkRsaW.h>
#include <CkXmlW.h>
#include <CkPublicKeyW.h>

void ChilkatSample(void)
    {
    bool success = false;

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    CkRsaW rsa;

    // Assuming you already have a base64 modulus and exponent,
    // wrap it in XML like this:
    const wchar_t *modulus = L"qMBRpdYrAy5aMmo31NErUizh5sbweguSmh4wlK6uJEIDl+kwTlROnE34KOFExeTbJSX0WygPi+vWl0yNq7buIMUKpytossAAWut5khO3CQJxTk7G2gnEPNUUXHiExGgNrLzcSLv8YIlfVALhoRWyC67KOL+a+3taNq3h+BHeWhM=";
    const wchar_t *exponent = L"AQAB";

    CkXmlW xml;
    xml.put_Tag(L"RSAPublicKey");
    xml.NewChild2(L"Modulus",modulus);
    xml.NewChild2(L"Exponent",exponent);

    CkPublicKeyW pubKey;
    success = pubKey.LoadFromString(xml);
    if (success == false) {
        wprintf(L"%s\n",pubKey.lastErrorText());
        return;
    }

    success = rsa.UsePublicKey(pubKey);
    if (success == false) {
        wprintf(L"%s\n",rsa.lastErrorText());
        return;
    }

    bool usePrivateKey = false;
    const wchar_t *plainText = L"message in a bottle";

    rsa.put_EncodingMode(L"base64");
    const wchar_t *encryptedStrBase64 = rsa.encryptStringENC(plainText,usePrivateKey);
    wprintf(L"%s\n",encryptedStrBase64);
    }