Sample code for 30+ languages & platforms
C++

RSA Sign using Base64 Private Key

See more RSA Examples

Signs a string using a non-encrypted RSA private key in base64 encoding. Returns the RSA signature as a base64 string.

Chilkat C++ Downloads

C++
#include <CkPrivateKey.h>
#include <CkStringBuilder.h>
#include <CkRsa.h>
#include <CkBinData.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkPrivateKey privKey;

    CkStringBuilder sbPem;
    sbPem.AppendLine("-----BEGIN RSA PRIVATE KEY-----",true);
    sbPem.AppendLine("MIIC .... j5A==",true);
    sbPem.AppendLine("-----END RSA PRIVATE KEY-----",true);

    success = privKey.LoadPem(sbPem.getAsString());
    if (success == false) {
        std::cout << privKey.lastErrorText() << "\r\n";
        return;
    }

    CkRsa rsa;

    success = rsa.UsePrivateKey(privKey);
    if (success == false) {
        std::cout << rsa.lastErrorText() << "\r\n";
        return;
    }

    CkBinData bd;
    bd.AppendString("12345678","utf-8");

    success = rsa.SignRawBd(bd);
    if (success == false) {
        std::cout << rsa.lastErrorText() << "\r\n";
        return;
    }

    // Get the base64 RSA signature.
    std::cout << bd.getEncoded("base64") << "\r\n";

    success = rsa.VerifyRawBd(bd);
    if (success == false) {
        std::cout << rsa.lastErrorText() << "\r\n";
        return;
    }

    const char *strOriginal = bd.getString("utf-8");
    std::cout << strOriginal << "\r\n";
    }