Sample code for 30+ languages & platforms
C++

Generate an RSA Key and Save to Encrypted PEM

See more RSA Examples

Demonstrates how to generate an RSA key and save to an encrypted PEM file.

Chilkat C++ Downloads

C++
#include <CkRsa.h>
#include <CkPrivateKey.h>
#include <CkPublicKey.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkRsa rsa;

    //  Generate a 2048-bit key.
    CkPrivateKey privKey;
    success = rsa.GenKey(2048,privKey);
    if (success == false) {
        std::cout << rsa.lastErrorText() << "\r\n";
        return;
    }

    const char *password = "secret";
    //  Saving to a relative path (from the current working directory of the process).
    const char *path = "rsaKeys/myTestRsaPrivate.pem";
    //  Encrypt the PEM using 256-bit AES encryption.
    privKey.put_Pkcs8EncryptAlg("aes256");
    success = privKey.SavePkcs8EncryptedPemFile(password,path);
    if (success == false) {
        std::cout << privKey.lastErrorText() << "\r\n";
        return;
    }

    //  image

    //  We can also save the public key.
    //  There is no need to encrypt public keys.
    CkPublicKey pubKey;
    privKey.ToPublicKey(pubKey);

    path = "rsaKeys/myTestRsaPublic.pem";
    //  Choose PKCS1 or PKCS8
    //  We'll choose PKCS8.
    bool preferPkcs1 = false;
    success = pubKey.SavePemFile(preferPkcs1,path);
    if (success == false) {
        std::cout << pubKey.lastErrorText() << "\r\n";
        return;
    }

    //  image

    std::cout << "Success." << "\r\n";
    }