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
Sign a File to Create a .p7s (Detached Signature)Delphi example to create a detached signature file (.p7s) for any type file. The signature can be verified by calling VerifyP7S and passing the original filename and the .p7s filename.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCRYPT2Lib_TLB, CHILKATCERTIFICATELib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var crypt: TChilkatCrypt2; success: Integer; signingCertSubject: String; pfxFilename: String; pfxPassword: String; certStore: CHILKATCERTIFICATELib_TLB.IChilkatCertStore; cert: CHILKATCRYPT2Lib_TLB.IChilkatCert; inFile: String; sigFile: String; begin 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; // Use a digital certificate and private key from a PFX file (.pfx or .p12). signingCertSubject := 'Acme Inc'; pfxFilename := '/Users/chilkat/testData/pfx/acme.pfx'; pfxPassword := 'test123'; certStore := CoChilkatCertStore.Create(); success := certStore.LoadPfxFile(pfxFilename,pfxPassword); if (success <> 1) then begin Memo1.Lines.Add(certStore.LastErrorText); Exit; end; cert := certStore.FindCertBySubjectCN(signingCertSubject) As CHILKATCRYPT2Lib_TLB.IChilkatCert; if (cert = nil ) then begin Memo1.Lines.Add('Failed to find certificate by subject common name.'); Exit; end; // Tell the crypt component to use this cert. crypt.SetSigningCert(cert As CHILKATCRYPT2Lib_TLB.IChilkatCert); // We can sign any type of file, creating a .p7s as output: inFile := '/Users/chilkat/testData/pdf/sample.pdf'; sigFile := '/Users/chilkat/testData/p7s/sample.p7s'; success := crypt.CreateP7S(inFile,sigFile); if (success = 0) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; success := crypt.VerifyP7S(inFile,sigFile); if (success = 0) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; ShowMessage('Success!'); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.