Sample code for 30+ languages & platforms
Delphi DLL

Example: Crypt2.ClearEncryptCerts method

Demonstrates how to call the ClearEncryptCerts method.

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
crypt: HCkCrypt2;
cert1: HCkCert;
cert2: HCkCert;
cert3: HCkCert;
bd: HCkBinData;
cert4: HCkCert;
cert5: HCkCert;

begin
success := False;

crypt := CkCrypt2_Create();

// Tell the crypt object to use 3 certificates.
// Do this by calling AddEncryptCert for each certificate.

cert1 := CkCert_Create();
// ...
// Load the cert from a source such as a .pfx/.p12 file, smart card, USB token, Apple keychain, Windows certificate store, etc.
// ...
CkCrypt2_AddEncryptCert(crypt,cert1);

cert2 := CkCert_Create();
// ...
CkCrypt2_AddEncryptCert(crypt,cert2);

cert3 := CkCert_Create();
// ...
CkCrypt2_AddEncryptCert(crypt,cert3);

// Params for public-key encryption to create PKCS7 enveloped-data
CkCrypt2_putCryptAlgorithm(crypt,'pki');
CkCrypt2_putPkcs7CryptAlg(crypt,'aes');
CkCrypt2_putKeyLength(crypt,256);
CkCrypt2_putOaepHash(crypt,'sha256');
CkCrypt2_putOaepPadding(crypt,True);

bd := CkBinData_Create();
// ...
success := CkCrypt2_EncryptBd(crypt,bd);

// Let's say we now want to encrypt something else with different certs..
// First clear the encryption certs.
CkCrypt2_ClearEncryptCerts(crypt);

cert4 := CkCert_Create();
// ...
CkCrypt2_AddEncryptCert(crypt,cert4);

cert5 := CkCert_Create();
// ...
CkCrypt2_AddEncryptCert(crypt,cert5);

// ...
// ...

// Encrypt using cert4 and cert5.
success := CkCrypt2_EncryptBd(crypt,bd);

CkCrypt2_Dispose(crypt);
CkCert_Dispose(cert1);
CkCert_Dispose(cert2);
CkCert_Dispose(cert3);
CkBinData_Dispose(bd);
CkCert_Dispose(cert4);
CkCert_Dispose(cert5);

end;