Sample code for 30+ languages & platforms
Delphi DLL

Encrypt using Cert to produce -----BEGIN PKCS7----- ... -----END PKCS7-----

See more Encryption Examples

Demonstrates how to encrypt using a certificate to produce output such as:
-----BEGIN PKCS7-----
MIIHPwYJKoZIhvcNAQcEoIIHMDCCBywC ...
...
...
-----END PKCS7-----
The certificate to be used is not your own, but the certificate of the intended recipient of the message.

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, StringBuilder, Cert, Crypt2;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
crypt: HCkCrypt2;
cert: HCkCert;
toBeEncrypted: PWideChar;
encryptedStr: PWideChar;
sb: HCkStringBuilder;
outStr: PWideChar;

begin
success := False;

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

crypt := CkCrypt2_Create();

// Specify the encryption to be used.
// "pki" indicates "Public Key Infrastructure" and will create a PKCS7 encrypted (enveloped) message.
CkCrypt2_putCryptAlgorithm(crypt,'pki');
CkCrypt2_putPkcs7CryptAlg(crypt,'aes');
CkCrypt2_putKeyLength(crypt,128);
CkCrypt2_putOaepHash(crypt,'sha256');
CkCrypt2_putOaepPadding(crypt,True);

// A certificate is needed as the encryption key..
cert := CkCert_Create();
success := CkCert_LoadFromFile(cert,'qa_data/certs/testCert.pem');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkCert__lastErrorText(cert));
    Exit;
  end;

// Tell the crypt object to use the certificate.
CkCrypt2_SetEncryptCert(crypt,cert);

toBeEncrypted := 'This string is to be encrypted.';

// Get the result in multi-line BASE64 MIME format.
CkCrypt2_putEncodingMode(crypt,'base64_mime');

encryptedStr := CkCrypt2__encryptStringENC(crypt,toBeEncrypted);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkCrypt2__lastErrorText(crypt));
    Exit;
  end;

// Make a "-----BEGIN PKCS7-----" ... "-----END PKCS7-----" sandwich...
sb := CkStringBuilder_Create();
CkStringBuilder_AppendLine(sb,'-----BEGIN PKCS7-----',True);
CkStringBuilder_Append(sb,encryptedStr);
CkStringBuilder_AppendLine(sb,'-----END PKCS7-----',True);

outStr := CkStringBuilder__getAsString(sb);

Memo1.Lines.Add(outStr);

// Sample output:

// -----BEGIN PKCS7-----
// MIICYQYJKoZIhvcNAQcDoIICUjCCAk4CAQAxggH5MIIB9QIBADCBsTCBmzELMAkGA1UEBhMCR0Ix
// GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
// Q09NT0RPIENBIExpbWl0ZWQxQTA/BgNVBAMTOENPTU9ETyBTSEEtMjU2IENsaWVudCBBdXRoZW50
// aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhEAuBl4qE2MODB05C5h53M5UDA4BgkqhkiG9w0B
// AQcwK6APMA0GCWCGSAFlAwQCAQUAoRgwFgYJKoZIhvcNAQEIMAkGBSsOAwIaBQAEggEAyZejlE37
// awl0bCWVbOCqf9yLSN17mZRamG8FHDh3nNu11G0+oyJtsPDEnSKsQig0V67MZ+hcWV+uf4ytcjyx
// H0gs5uex+LwkB+c3ZTOt18IYWFtRilg1HFy1ZN3t0D2QbxYy+i1TXOOwp3gAHL45vRCJ0FbKyQ36
// pKl0XLe+lRvp2EiJCKVjxtX8VcZOKT4xkG7yOARaCQceth6pA58Dg0yzAz7w4nD2UgAlNzrXG69X
// e+7e7yfBv47RRqFiQqDpCn+fM/PmFbUyqBppMwc64yP+fJek8VyJw2/UaXWWM4iSKSflk90tiHwf
// loEU3It4arnSv94fZQo0v129aBqpWzBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAECBBCohUgm5qX+
// TE6PxtPCmWi8gCBgbNg39emAB+AqLozm+vSLjZOGfg3M52gccKUJ8tg8XQ==
// -----END PKCS7-----

CkCrypt2_Dispose(crypt);
CkCert_Dispose(cert);
CkStringBuilder_Dispose(sb);

end;