Sample code for 30+ languages & platforms
Unicode C

Convert RSA Private Key to Public Key

See more RSA Examples

Demonstrates how to get a public RSA key from a private RSA key.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkPrivateKeyW.h>
#include <C_CkPublicKeyW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkPrivateKeyW privKey;
    HCkPublicKeyW pubKey;
    BOOL bPreferPkcs1;

    success = FALSE;

    privKey = CkPrivateKeyW_Create();

    // Step 1: Load the private key from a source.
    // (Chilkat can load private keys from all types of formats, and from in-memory bytes or encoded strings.
    // see the online reference documentation for more options.)
    success = CkPrivateKeyW_LoadPemFile(privKey,L"qa_data/pem/VP_Private.pem");
    if (success == FALSE) {
        wprintf(L"%s\n",CkPrivateKeyW_lastErrorText(privKey));
        CkPrivateKeyW_Dispose(privKey);
        return;
    }

    // Step 2: Get the public key object from the private key object.
    pubKey = CkPublicKeyW_Create();
    CkPrivateKeyW_ToPublicKey(privKey,pubKey);

    // Step 3: Save the public key in a desired format. 
    // (Chilkat can load or save public and private keys in many different formats.  See
    // the online reference documentation for more options.)

    // Saves to a PKCS8 PEM file.
    bPreferPkcs1 = FALSE;
    success = CkPublicKeyW_SavePemFile(pubKey,bPreferPkcs1,L"qa_data/pem/VP_Public.pem");
    if (CkPublicKeyW_getLastMethodSuccess(pubKey) == FALSE) {
        wprintf(L"%s\n",CkPublicKeyW_lastErrorText(pubKey));
        CkPrivateKeyW_Dispose(privKey);
        CkPublicKeyW_Dispose(pubKey);
        return;
    }

    wprintf(L"Extracted and saved public key from private key.\n");


    CkPrivateKeyW_Dispose(privKey);
    CkPublicKeyW_Dispose(pubKey);

    }