Sample code for 30+ languages & platforms
DataFlex

Add S/MIME Signature using PFX

See more MIME Examples

Add a digital signature to a MIME message using the certificate + private key from a PFX file.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMime
    Variant vCert
    Handle hoCert
    String sPfxFilepath
    String sPfxPassword
    String sTemp1

    Move False To iSuccess

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatMime)) To hoMime
    If (Not(IsComObjectCreated(hoMime))) Begin
        Send CreateComObject of hoMime
    End

    // Load a PFX file into a certificate object.
    Get Create (RefClass(cComChilkatCert)) To hoCert
    If (Not(IsComObjectCreated(hoCert))) Begin
        Send CreateComObject of hoCert
    End
    Move "pfxFiles/something.pfx" To sPfxFilepath
    Move "secret" To sPfxPassword
    Get ComLoadPfxFile Of hoCert sPfxFilepath sPfxPassword To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoCert To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComSetBodyFromPlainText Of hoMime "This is the plain-text MIME body." To iSuccess

    Set ComCharset Of hoMime To "utf-8"
    Set ComEncoding Of hoMime To "quoted-printable"

    // Sign the MIME (adds a PKCS7 detached signature)
    Get pvComObject of hoCert to vCert
    Get ComAddDetachedSignature Of hoMime vCert To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMime To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Save the S/MIME to a file.
    Get ComSaveMime Of hoMime "/temp/signedMime.txt" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMime To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "success!"


End_Procedure