Sample code for 30+ languages & platforms
PureBasic

Get Certificate Subject Part by Name or OID

Demonstrates the GetSubjectPart method where a name or OID can be passed.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCert.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    ; This example demonstrates getting the SERIALNUMBER part of the subject,
    ; if one such part exists in the cert's subject.
    ; Not too many certicates include the serial number in the Subject.
    ; (Chilean issued certificates for SII is one such case where the SERIALNUMBER part exists within the Subject.)
    serialNum.s = CkCert::ckGetSubjectPart(cert,"SERIALNUMBER")
    If CkCert::ckLastMethodSuccess(cert) = 0
        Debug "No SERIALNUMBER part exists."
        CkCert::ckDispose(cert)
        ProcedureReturn
    EndIf

    Debug serialNum

    ; We could also get the part by the OID.
    ; See https://oidref.com/2.5.4.5 for a list of OID's in the 2.5.4.* range..
    ; The OID for SERIALNUMBER is "2.5.4.5"
    serialNum = CkCert::ckGetSubjectPart(cert,"2.5.4.5")
    If CkCert::ckLastMethodSuccess(cert) = 0
        Debug "No SERIALNUMBER part exists."
        CkCert::ckDispose(cert)
        ProcedureReturn
    EndIf

    Debug serialNum


    CkCert::ckDispose(cert)


    ProcedureReturn
EndProcedure