Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Use Certificate and Private Key PEM Files to Create a Digital SignatureDemonstrates how to load a digital certificate from a PEM file, load it's corresponding private key from a PEM file, save the private key to a key container (if necessary), link the certificate to the key container, and use it to create a digital signature.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCRYPT2Lib_TLB, CHILKATCERTIFICATELib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var cert: TChilkatCert; pkey: CHILKATCERTIFICATELib_TLB.IPrivateKey; success: Integer; crypt: TChilkatCrypt2; begin cert := TChilkatCert.Create(Self); // Load the cert from a PEM file; cert.LoadFromFile('cert.pem'); pkey := TprivateKey.Create(Self).ControlInterface; // Load the private key from an RSA PEM file: pkey.LoadPemFile('pkey_rsa.pem'); success := cert.SetPrivateKey(pkey); if (success <> 1) then begin Memo1.Lines.Add(cert.LastErrorText); Exit; end; // Use Chilkat Crypt (a non-freeware component) to create // a digital signature using the certificate w/ private key: crypt := TChilkatCrypt2.Create(Self); // Any string argument automatically begins the 30-day trial. success := crypt.UnlockComponent('30-day trial'); if (success <> 1) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; // Tell the crypt component to use this cert. crypt.SetSigningCert(cert.ControlInterface As CHILKATCRYPT2Lib_TLB.IChilkatCert); // A PKCS7 signature for any type of file content can be created: success := crypt.CreateP7S('license.rtf','license.p7s'); if (success = 0) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; Memo1.Lines.Add(crypt.LastErrorText); // Verify and restore the original file: crypt.SetVerifyCert(cert.ControlInterface As CHILKATCRYPT2Lib_TLB.IChilkatCert); success := crypt.VerifyP7S('license.rtf','license.p7s'); if (success = 0) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; ShowMessage('Success!'); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.