Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkPublicKey.pb"
IncludeFile "CkPrivateKey.pb"

Procedure ChilkatExample()

    success.i = 0

    privKey.i = CkPrivateKey::ckCreate()
    If privKey.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; 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 = CkPrivateKey::ckLoadPemFile(privKey,"qa_data/pem/VP_Private.pem")
    If success = 0
        Debug CkPrivateKey::ckLastErrorText(privKey)
        CkPrivateKey::ckDispose(privKey)
        ProcedureReturn
    EndIf

    ; Step 2: Get the public key object from the private key object.
    pubKey.i = CkPublicKey::ckCreate()
    If pubKey.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkPrivateKey::ckToPublicKey(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.i = 0
    success = CkPublicKey::ckSavePemFile(pubKey,bPreferPkcs1,"qa_data/pem/VP_Public.pem")
    If CkPublicKey::ckLastMethodSuccess(pubKey) = 0
        Debug CkPublicKey::ckLastErrorText(pubKey)
        CkPrivateKey::ckDispose(privKey)
        CkPublicKey::ckDispose(pubKey)
        ProcedureReturn
    EndIf

    Debug "Extracted and saved public key from private key."


    CkPrivateKey::ckDispose(privKey)
    CkPublicKey::ckDispose(pubKey)


    ProcedureReturn
EndProcedure