Sample code for 30+ languages & platforms
DataFlex

Transition from Email.GetSignedByCertChain to Email.LastSignerCert

Provides instructions for replacing deprecated GetSignedByCertChain method calls with LastSignerCert.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoEmail
    Variant vCertChainObj
    Handle hoCertChainObj
    Variant vSignerCert
    Handle hoSignerCert
    Variant vCertChain
    Handle hoCertChain
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    // ...
    // ...

    // ------------------------------------------------------------------------
    // The GetSignedByCertChain method is deprecated:

    Get ComGetSignedByCertChain Of hoEmail To vCertChainObj
    If (IsComObject(vCertChainObj)) Begin
        Get Create (RefClass(cComChilkatCertChain)) To hoCertChainObj
        Set pvComObject Of hoCertChainObj To vCertChainObj
    End
    Get ComLastMethodSuccess Of hoEmail To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // ...
    // ...

    Send Destroy of hoCertChainObj

    // ------------------------------------------------------------------------
    // Do the equivalent using LastSignerCert to get the signing certificate,
    // then build the cert chain from the signing certificate object.

    Get Create (RefClass(cComChilkatCert)) To hoSignerCert
    If (Not(IsComObjectCreated(hoSignerCert))) Begin
        Send CreateComObject of hoSignerCert
    End
    Get pvComObject of hoSignerCert to vSignerCert
    Get ComLastSignerCert Of hoEmail 0 vSignerCert To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Get the certificate chain from the signer certificate.
    Get Create (RefClass(cComChilkatCertChain)) To hoCertChain
    If (Not(IsComObjectCreated(hoCertChain))) Begin
        Send CreateComObject of hoCertChain
    End
    Get pvComObject of hoCertChain to vCertChain
    Get ComBuildCertChain Of hoSignerCert vCertChain To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoSignerCert To sTemp1
        Showln sTemp1
        Procedure_Return
    End



End_Procedure