Sample code for 30+ languages & platforms
AutoIt

Decrypt S/MIME using a Certificate with Private Key Access

See more MIME Examples

Loads a CMS/PKCS #7 encrypted S/MIME message and decrypts it back to the original MIME content.

DecryptUsingCert takes a single certificate that already has access to its associated private key, for example a certificate loaded from a PFX.

The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background. A public-only certificate is insufficient for decryption. The certificate passed to DecryptUsingCert must be linked to its private key, as happens when it is loaded from a PFX/P12 file.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

$oMime = ObjCreate("Chilkat.Mime")
$bSuccess = $oMime.LoadMimeFile("qa_data/encrypted.eml")
If ($bSuccess = False) Then
    ConsoleWrite($oMime.LastErrorText & @CRLF)
    Exit
EndIf

;  Decrypt using a certificate that already provides access to its private key (for example loaded
;  from a PFX).  The only argument is the certificate.
Local $sPfxPassword = "myPfxPassword"
$oCert = ObjCreate("Chilkat.Cert")
$bSuccess = $oCert.LoadPfxFile("qa_data/recipient.pfx",$sPfxPassword)
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

$bSuccess = $oMime.DecryptUsingCert($oCert)
If ($bSuccess = False) Then
    ConsoleWrite($oMime.LastErrorText & @CRLF)
    Exit
EndIf

Local $sBody = $oMime.GetBodyDecoded()
If ($oMime.LastMethodSuccess = False) Then
    ConsoleWrite($oMime.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite($sBody & @CRLF)