Sample code for 30+ languages & platforms
PureBasic

Apple Keychain - Get Certificate by Common Name

See more Apple Keychain Examples

Retrieves the certificate from the Apple Keychain that matches the specified common name (CN).

Note: This example requires Chilkat v10.0.0 or greater.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCert.pb"

Procedure ChilkatExample()

    success.i = 0

    ; On MacOS or iOS, this searches both the Default keychains and System keychains for the certificate
    ; having the specified CN.
    cert.i = CkCert::ckCreate()
    If cert.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkCert::ckLoadByCommonName(cert,"Certum CA")
    If success = 0
        Debug CkCert::ckLastErrorText(cert)
        CkCert::ckDispose(cert)
        ProcedureReturn
    EndIf

    Debug CkCert::ckSubjectDN(cert)

    ; Note: In the Apple Keychain, a certificate with its private key represents an identity because it combines the certificate and its private key.
    ; When Chilkat loads a certificate from the Apple Keychain, it also gets the associated private key.
    ; You can simply use the cert in other places in Chilkat where a cert w/ private key is required.
    cert2.i = CkCert::ckCreate()
    If cert2.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkCert::ckLoadByCommonName(cert2,"Chilkat Software, Inc.")
    If success = 0
        Debug CkCert::ckLastErrorText(cert2)
        CkCert::ckDispose(cert)
        CkCert::ckDispose(cert2)
        ProcedureReturn
    EndIf

    Debug CkCert::ckSubjectDN(cert2)
    hasPrivKey.i = CkCert::ckHasPrivateKey(cert2)
    Debug "Has private key: " + Str(hasPrivKey)

    Debug "Success."


    CkCert::ckDispose(cert)
    CkCert::ckDispose(cert2)


    ProcedureReturn
EndProcedure