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 .p7m File (using a PFX)Delphi example to sign a file creating a .p7m file as output. The .p7m contains the signed contents of the original file. It can be verified and restored by calling VerifyP7M.
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; outFile: 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 .p7m as output: inFile := '/Users/chilkat/testData/pdf/sample.pdf'; outFile := '/Users/chilkat/testData/p7m/sample.pdf.p7m'; success := crypt.CreateP7M(inFile,outFile); if (success = 0) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; // Verify and restore the original file: crypt.SetVerifyCert(cert As CHILKATCRYPT2Lib_TLB.IChilkatCert); inFile := outFile; outFile := '/Users/chilkat/testData/pdf/restored.pdf'; success := crypt.VerifyP7M(inFile,outFile); if (success = 0) then begin Memo1.Lines.Add(crypt.LastErrorText); Exit; end; ShowMessage('Success!'); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.