Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Email Object
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Icon

 

 

 

 

 

 

 

Create .p7s Signature with HSM / Smartcard

Perl 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.

Download Chilkat Perl Module

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.