Sample code for 30+ languages & platforms
PureBasic

Load Certificate (.cer) and Private Key (.pvk) generated from makecert

See more Certificates Examples

Demonstrates how to load a certificate (.cer) and private key (.pvk) from the files produced by makecert, such as in the following command:
makecert -sv mycertificate.pvk -n "CN=My Simple Certificate" mycertificate.cer -sky Exchange

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCert.pb"
IncludeFile "CkPrivateKey.pb"
IncludeFile "CkPdf.pb"

Procedure ChilkatExample()

    success.i = 0

    ; First load the .cer file.
    ; The certificate file (.cer) contains only the certificate (does not include the private key)
    cert.i = CkCert::ckCreate()
    If cert.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkCert::ckLoadFromFile(cert,"qa_data/certs_and_keys/makecert/mycertificate.cer")
    If success = 0
        Debug CkCert::ckLastErrorText(cert)
        CkCert::ckDispose(cert)
        ProcedureReturn
    EndIf

    ; Next, load the .pvk file.
    ; Note: The password "secret" is what you entered when makecert displayed the dialog asking for a password..
    privKey.i = CkPrivateKey::ckCreate()
    If privKey.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkPrivateKey::ckLoadPvkFile(privKey,"qa_data/certs_and_keys/makecert/mycertificate.pvk","secret")
    If success = 0
        Debug CkPrivateKey::ckLastErrorText(privKey)
        CkCert::ckDispose(cert)
        CkPrivateKey::ckDispose(privKey)
        ProcedureReturn
    EndIf

    ; Finally, associate the private key with the certificate.
    success = CkCert::ckSetPrivateKey(cert,privKey)
    If success = 0
        Debug CkCert::ckLastErrorText(cert)
        CkCert::ckDispose(cert)
        CkPrivateKey::ckDispose(privKey)
        ProcedureReturn
    EndIf

    ; At this point, the certificate can be used for signing.  For example..
    pdf.i = CkPdf::ckCreate()
    If pdf.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; ....
    ; ....

    success = CkPdf::ckSetSigningCert(pdf,cert)

    ; ...
    ; ....

    ; Some Chilkat classes also provide a method where the cert and private key can be passed separately.
    ; For example, if SetSigningCert2 is called, then we don't need to explicitly associate the private key with the cert.
    success = CkPdf::ckSetSigningCert2(pdf,cert,privKey)

    ; ...
    ; ....


    CkCert::ckDispose(cert)
    CkPrivateKey::ckDispose(privKey)
    CkPdf::ckDispose(pdf)


    ProcedureReturn
EndProcedure