Delphi DLL
Delphi DLL
PKCS7 Sign Text using RSA 2048, SHA256, Base64 Output
See more Digital Signatures Examples
Demonstrates how to sign text using 2048-bit RSA with SHA256, producing PKCS#7 output in Base64. The certificate w/ private key used for signing is loaded from a .p12/.pfx file.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Cert, Crypt2;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
cert: HCkCert;
crypt: HCkCrypt2;
textToSign: PWideChar;
sigBase64: PWideChar;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
cert := CkCert_Create();
// Load the cert and private key. Whatever the private key happens to be,
// such as RSA or ECC, then Chilkat will use it. If the private key is
// a 2048-bit RSA key, then that's what will be used..
success := CkCert_LoadPfxFile(cert,'qa_data/pfx/myCertAndKey.p12','password');
if (success <> True) then
begin
Memo1.Lines.Add(CkCert__lastErrorText(cert));
Exit;
end;
crypt := CkCrypt2_Create();
success := CkCrypt2_SetSigningCert(crypt,cert);
if (success <> True) then
begin
Memo1.Lines.Add(CkCrypt2__lastErrorText(crypt));
Exit;
end;
// Use SHA-256
CkCrypt2_putHashAlgorithm(crypt,'sha256');
// Hash the utf-8 byte representation of the string
CkCrypt2_putCharset(crypt,'utf-8');
// Return the result in base64
CkCrypt2_putEncodingMode(crypt,'base64');
// Sign some text..
textToSign := 'This is the text to be hashed and signed.';
sigBase64 := CkCrypt2__opaqueSignStringENC(crypt,textToSign);
if (CkCrypt2_getLastMethodSuccess(crypt) <> True) then
begin
Memo1.Lines.Add(CkCrypt2__lastErrorText(crypt));
Exit;
end;
Memo1.Lines.Add(sigBase64);
// The result:
// MIIS2wYJKoZIhvcNAQc ... zGeeY4Oxg==
CkCert_Dispose(cert);
CkCrypt2_Dispose(crypt);
end;