Sample code for 30+ languages & platforms
PureBasic

Export Digital Certificate's Public Key

See more Certificates Examples

The ExportPublicKey method can be called to get a certificate's public key. It can then be saved to any of a number of formats: (1) OpenSSL DER, (2) OpenSSL PEM, (3) RSA DER, (4) XML.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkPublicKey.pb"
IncludeFile "CkCert.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ; LoadFromFile will load virtually any certificate format file.
    ; It will auto-recognize the format and load appropiately.
    success = CkCert::ckLoadFromFile(cert,"/Users/chilkat/testData/cer/chilkat.cer")
    If success = 0
        Debug CkCert::ckLastErrorText(cert)
        CkCert::ckDispose(cert)
        ProcedureReturn
    EndIf

    ; Get the public key:
    pubkey.i = CkPublicKey::ckCreate()
    If pubkey.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkCert::ckGetPublicKey(cert,pubkey)

    ; Save to various formats:
    success = CkPublicKey::ckSaveDerFile(pubkey,0,"/Users/chilkat/testData/pubkeys/chilkat_pkcs8.der")
    If success <> 1
        Debug CkPublicKey::ckLastErrorText(pubkey)
        CkCert::ckDispose(cert)
        CkPublicKey::ckDispose(pubkey)
        ProcedureReturn
    EndIf

    success = CkPublicKey::ckSavePemFile(pubkey,0,"/Users/chilkat/testData/pubkeys/chilkat.pem")
    If success <> 1
        Debug CkPublicKey::ckLastErrorText(pubkey)
        CkCert::ckDispose(cert)
        CkPublicKey::ckDispose(pubkey)
        ProcedureReturn
    EndIf

    success = CkPublicKey::ckSaveDerFile(pubkey,1,"/Users/chilkat/testData/pubkeys/chilkat_pkcs1.der")
    If success <> 1
        Debug CkPublicKey::ckLastErrorText(pubkey)
        CkCert::ckDispose(cert)
        CkPublicKey::ckDispose(pubkey)
        ProcedureReturn
    EndIf

    success = CkPublicKey::ckSaveXmlFile(pubkey,"/Users/chilkat/testData/pubkeys/chilkat.xml")
    If success <> 1
        Debug CkPublicKey::ckLastErrorText(pubkey)
        CkCert::ckDispose(cert)
        CkPublicKey::ckDispose(pubkey)
        ProcedureReturn
    EndIf

    Debug "Public key exported to all file formats."


    CkCert::ckDispose(cert)
    CkPublicKey::ckDispose(pubkey)


    ProcedureReturn
EndProcedure