Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
Create .p7s Signature with HSM / SmartcardPython example showing how to use a CSP (Cryptographic Service Provider) for a smart card / HSM (Hardware Security Module) to create a .p7s (PKCS7) output file. This example uses the NCipher HSM CSP.
import sys import chilkat crypt = chilkat.CkCrypt2() # Any string argument automatically begins the 30-day trial. success = crypt.UnlockComponent("30-day trial") if (success != True): print "Crypt component unlock failed" sys.exit() # Find our digital certificate from the Current User certificate store. # Note: There are several other ways to load your certificate # into a Chilkat cert object. You may load directly from a .cer file, # PEM file, pfx, etc. ccs = chilkat.CkCreateCS() certStore = ccs.OpenCurrentUserStore() cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc.") if (cert == None ): print cert.lastErrorText() sys.exit() # Tell the crypt component to use this cert. crypt.SetSigningCert(cert) # To use an HSM or smartcard, create a CSP object, # set the service provider, and then tell the Chilkat Crypt # component to use the CSP: # This example uses the NCipher HSM. The # provider names must be specied exactly. # The NCipher provider names are: # PROV_RSA_FULL ("nCipher Enhanced Cryptographic Provider") # PROV_RSA_AES ("nCipher Enhanced RSA and AES Cryptographic Provider") # PROV_RSA_SCHANNEL("nCipher Enhanced SChannel Cryptographic Provider") # PROV_DSS_DH ("nCipher Enhanced DSS and Diffie-Hellman Cryptographic Provider") # PROV_DH_SCHANNEL ("nCipher Enhanced DSS and Diffie-Hellman SChannel Cryptographic Provider") # We'll be using the RSA FULL provider: csp = chilkat.CkCSP() csp.put_ProviderName("nCipher Enhanced Cryptographic Provider") # Tell the crypt object to use the CSP: crypt.SetCSP(csp) # We can sign any type of file, creating a .p7s detached signature as output: success = crypt.CreateP7S("test.xml","test.p7s") if (success == False): print crypt.lastErrorText() sys.exit() print crypt.lastErrorText() # Verify the signature... crypt.SetVerifyCert(cert) success = crypt.VerifyP7S("test.xml","test.p7s") if (success == False): print crypt.lastErrorText() sys.exit() print "Success!" |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.