Sample code for 30+ languages & platforms
PHP

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 PHP Downloads

Chilkat2 PHP
<?php

use Chilkat2\Cert;
use Chilkat2\Mime;

$mime = new Mime();
try {
    $mime->LoadMimeFile('qa_data/encrypted.eml');

    // Decrypt using a certificate that already provides access to its private key (for example loaded
    // from a PFX).  The only argument is the certificate.
    $pfxPassword = 'myPfxPassword';
    $cert = new Cert();
    $cert->LoadPfxFile('qa_data/recipient.pfx', $pfxPassword);

    $mime->DecryptUsingCert($cert);

    $body = $mime->GetBodyDecoded();
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

echo $body, "\n";