Sample code for 30+ languages & platforms
PureBasic

Get Certificate Valid To/From Dates

Demonstrates how to get the certificate "valid from" and "valid to" dates.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCert.pb"
IncludeFile "CkDateTime.pb"
IncludeFile "CkDtObj.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    ; Get the certificate valid-from date/time
    ckdt.i = CkDateTime::ckCreate()
    If ckdt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkDateTime::ckSetFromRfc822(ckdt,CkCert::ckValidFromStr(cert))

    ; Get the local timestamp string.
    Debug "Valid from: " + CkDateTime::ckGetAsTimestamp(ckdt,1)
    ; Valid from: 2017-03-17T19:00:00-05:00

    ; Now get the date/time as another object where we can get the individual numeric date parts.
    dt.i = CkDtObj::ckCreate()
    If dt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkDateTime::ckToDtObj(ckdt,1,dt)

    Debug Str(CkDtObj::ckDay(dt)) + "/" + Str(CkDtObj::ckMonth(dt)) + "/" + Str(CkDtObj::ckYear(dt)) + "  " + Str(CkDtObj::ckHour(dt)) + ":" + Str(CkDtObj::ckMinute(dt))

    ; Get the certificate valid-to date/time
    CkDateTime::ckSetFromRfc822(ckdt,CkCert::ckValidToStr(cert))

    Debug "Valid to: " + CkDateTime::ckGetAsTimestamp(ckdt,1)
    ; Valid to: 2020-03-18T18:59:59-05:00new DtObj dt;
    CkDateTime::ckToDtObj(ckdt,1,dt)

    Debug Str(CkDtObj::ckDay(dt)) + "/" + Str(CkDtObj::ckMonth(dt)) + "/" + Str(CkDtObj::ckYear(dt)) + "  " + Str(CkDtObj::ckHour(dt)) + ":" + Str(CkDtObj::ckMinute(dt))


    CkCert::ckDispose(cert)
    CkDateTime::ckDispose(ckdt)
    CkDtObj::ckDispose(dt)


    ProcedureReturn
EndProcedure