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 / SmartcardPerl 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. use chilkat; $crypt = new chilkat::CkCrypt2(); # Any string argument automatically begins the 30-day trial. $success = $crypt->UnlockComponent("30-day trial"); if ($success != 1) { print "Crypt component unlock failed" . "\n"; 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 = new chilkat::CkCreateCS(); $certStore = $ccs->OpenCurrentUserStore(); $cert = $certStore->FindCertBySubjectCN("Chilkat Software, Inc."); if ($cert eq null ) { print $cert->lastErrorText() . "\n"; 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 = new 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 == 0) { print $crypt->lastErrorText() . "\n"; exit; } print $crypt->lastErrorText() . "\n"; # Verify the signature... $crypt->SetVerifyCert($cert); $success = $crypt->VerifyP7S("test.xml","test.p7s"); if ($success == 0) { print $crypt->lastErrorText() . "\n"; exit; } print "Success!" . "\n"; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.