Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Create CAdES-BES .p7m using Smart Card or USB TokenDemonstrates how to create a CAdES BES invoice.xml.p7m using a certificate stored on a smart card or USB token. Note: This example requires Chilkat v9.5.0.77 and at the time of this writing is restricted to the Windows operating system.
LOCAL loCrypt LOCAL loCert LOCAL lnSuccess LOCAL loJsonSignedAttrs LOCAL lcInFile LOCAL lcSigFile * Note: Requires Chilkat v9.5.0.77 or greater. * This requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Crypt2') loCrypt = CreateObject('Chilkat.Crypt2') * Use a certificate on a smartcard or USB token. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Cert') loCert = CreateObject('Chilkat.Cert') * Load the certificate on the smartcard currently in the reader (or on the USB token). * Pass an empty string to allow Chilkat to automatically choose the CSP (Cryptographi Service Provider). * See Load Certificate on Smartcard for information about explicitly selecting a particular CSP. lnSuccess = loCert.LoadFromSmartcard("") IF (lnSuccess <> 1) THEN ? loCert.LastErrorText RELEASE loCrypt RELEASE loCert CANCEL ENDIF * Provide the smartcard PIN. * If the PIN is not explicitly provided here, the Windows OS should * display a dialog for the PIN. loCert.SmartCardPin = "000000" * Provide the certificate for signing. lnSuccess = loCrypt.SetSigningCert(loCert) IF (lnSuccess <> 1) THEN ? loCrypt.LastErrorText RELEASE loCrypt RELEASE loCert CANCEL ENDIF * Indicate that SHA-256 should be used. loCrypt.HashAlgorithm = "sha256" * Specify the signed attributes to be included. * (This is what makes it CAdES-BES compliant.) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJsonSignedAttrs = CreateObject('Chilkat.JsonObject') loJsonSignedAttrs.UpdateInt("contentType",1) loJsonSignedAttrs.UpdateInt("signingTime",1) loJsonSignedAttrs.UpdateInt("messageDigest",1) loJsonSignedAttrs.UpdateInt("signingCertificateV2",1) loCrypt.SigningAttributes = loJsonSignedAttrs.Emit() lcInFile = "qa_data/xml/IT01234567890_11002.xml" lcSigFile = "qa_output/IT01234567890_11002.xml.p7m" * Create the CAdES-BES signature, which contains the original data. lnSuccess = loCrypt.CreateP7M(lcInFile,lcSigFile) IF (lnSuccess = 0) THEN ? loCrypt.LastErrorText RELEASE loCrypt RELEASE loCert RELEASE loJsonSignedAttrs CANCEL ENDIF ? "Success." RELEASE loCrypt RELEASE loCert RELEASE loJsonSignedAttrs |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.