Sample code for 30+ languages & platforms
Delphi DLL

PKCS7 Decrypt Using .pfx or .p12 File

See more MIME Examples

Demonstrates how to decrypt MIME using a specifc PFX file (.pfx or .p12) for the source of certificate(s) and private key(s).

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Mime;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
mime: HCkMime;
pfxPassword: PWideChar;

begin
success := False;

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

mime := CkMime_Create();

// Load the MIME
success := CkMime_LoadMimeFile(mime,'encrypted.mim');
if (success = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(mime));
    Exit;
  end;

// Decrypt using a specific PFX file:
pfxPassword := 'myPassword';
success := CkMime_DecryptUsingPfxFile(mime,'c:/myPfxFiles/myCertAndPrivateKey.pfx',pfxPassword);
if (success = False) then
  begin
    Memo1.Lines.Add(CkMime__lastErrorText(mime));
    Exit;
  end;

// Display the decrypted MIME:
Memo1.Lines.Add(CkMime__getMime(mime));

// Note: The MIME to be decrypted should look something like this
// when viewed in a text editor:
// (Note that the Content-Type is application/x-pkcs7-mime)

// Content-Disposition: attachment; filename="smime.p7m"
// Content-Transfer-Encoding: base64
// Content-Type: application/x-pkcs7-mime;
//  name="smime.p7m"
// 
// MIICRAYJKoZIhvcNAQcDoIICNTCCAjECAQAxggHIMIIBxAIBADCBqzCBlTELMAkGA1UEBhMCVVMx
// CzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJU
// UlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNVBAMT
// FFVUTi1VU0VSRmlyc3QtT2JqZWN0AhEA5vxolKNrYgp1Z7ABICdK+zANBgkqhkiG9w0BAQEFAASC
// AQAJ68jTh3u3ovsOuz1aHXTV90GBB6DMfCdx0bZ85trSvDXBevMOtQdctz653de8EB2xU4RlaPQa
// oBpF8G01PMaKezd+FGLbhm7gmKl7boej3BboUzM4wrwjc8qHTGc/haT1ZA3jUU3DR4emVXNmRgWc
// FDU5Dnkf+Z2YXQop9wPCf1Ng+8LLjBX9yxgXP1ZyFDe9vUnSkk2fmZatEY2Y6eWHNbrj6q4F40qN
// PAyZW1rJSFmKTSPSzv7S0VWBMh+FgUKtqk4I6/+zhneLYeJBZFskmMIGFpgKdgrN7vbbr1a2gv/M
// PbHUxwKMD4KZ2auyuGKMVLBOm+n8v5f8EegloL/UMGAGCSqGSIb3DQEHATAZBggqhkiG9w0DAjAN
// AgE6BAgcohHNLdl9FoA4q22x8vXs05wuScRgLhwMOzvdGQkBJx+6iQDBuoCVxF8sQ35g+0PPxN3M
// 6Zw6nI1gSIIKBS3ZjtI=

CkMime_Dispose(mime);

end;