Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Sign with .pfx to create .p7s, Verify with .cerDelphi example to sign a file using a .pfx and creating a .p7s file as output. It then uses a .cer file to verify the signature.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCRYPT2Lib_TLB, CHILKATCERTIFICATELib_TLB, CHILKATUTILLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var crypt: TChilkatCrypt2; success: Integer; certStore: CHILKATCERTIFICATELib_TLB.IChilkatCertStore; cert: CHILKATCRYPT2Lib_TLB.IChilkatCert; csp: TChilkatCSP; cert2: TChilkatCert; 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 ShowMessage('Crypt component unlock failed'); Exit; end; certStore := CoChilkatCertStore.Create(); success := certStore.LoadPfxFile('chilkat.pfx','myPfxPassword'); if (success <> 1) then begin ShowMessage(certStore.LastErrorText); Exit; end; cert := certStore.FindCertBySubjectCN('Chilkat Software, Inc.') As CHILKATCRYPT2Lib_TLB.IChilkatCert; if (cert = nil ) then begin ShowMessage('Failed to find certificate'); Exit; end; // We can explicitly choose hash/encryption algorithms using a CSP. csp := TChilkatCSP.Create(Self); csp.SetProviderMicrosoftEnhanced(); csp.SetHashAlgorithm('sha-1'); // Tell the crypt component to use this cert and this CSP. crypt.SetSigningCert(cert As CHILKATCRYPT2Lib_TLB.IChilkatCert); crypt.SetCSP(csp As CHILKATCRYPT2Lib_TLB.IChilkatCSP); // We can sign any type of file, creating a .p7s as output: success := crypt.CreateP7S('hamlet.xml','hamlet.p7s'); if (success = 1) then begin ShowMessage('Signature created.'); end else begin ShowMessage(crypt.LastErrorText); end; // Verify and restore the original file: // Use a cert from a .cer file (which only contains the public key) cert2 := TChilkatCert.Create(Self); success := cert2.LoadFromFile('chilkat.cer'); if (success <> 1) then begin ShowMessage(cert2.LastErrorText); Exit; end; crypt.SetVerifyCert(cert2.ControlInterface As CHILKATCRYPT2Lib_TLB.IChilkatCert); success := crypt.VerifyP7S('hamlet.xml','hamlet.p7s'); if (success = 1) then begin ShowMessage('Signature verified.'); end else begin ShowMessage(crypt.LastErrorText); end; end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.