PHP ActiveX
PHP ActiveX
RSA Sign using Private Key of Certificate Type A3 (smart card / token)
See more RSA Examples
Demonstrates RSA signing data using the private key of a certificate type A3 (smart card, token).Note: This is a Windows-only example.
Chilkat PHP ActiveX Downloads
<?php
$success = 0;
// First get the A3 certificate that was installed on the Windows system.
$certStore = new COM("Chilkat.CertStore");
$thumbprint = '12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2';
// This is specific to Windows because it is opening the Windows Current-User certificate store.
$bReadOnly = 1;
$success = $certStore->OpenCurrentUserStore($bReadOnly);
if ($success != 1) {
print $certStore->LastErrorText . "\n";
exit;
}
// Find the certificate with the desired thumbprint
// (There are many ways to locate a certificate. This example chooses to find by thumbprint.)
$json = new COM("Chilkat.JsonObject");
$json->UpdateString('thumbprint',$thumbprint);
$cert = new COM("Chilkat.Cert");
$success = $certStore->FindCert($json,$cert);
if ($success == 0) {
print 'Failed to find the certificate.' . "\n";
exit;
}
print 'Found: ' . $cert->SubjectCN . "\n";
$rsa = new COM("Chilkat.Rsa");
// Provide the cert's private key
$bUsePrivateKey = 1;
$success = $rsa->SetX509Cert($cert,$bUsePrivateKey);
if ($success != 1) {
print $rsa->LastErrorText . "\n";
exit;
}
// Now we're ready to sign..
$fac = new COM("Chilkat.FileAccess");
// Get bytes to be signed..
$inData = $fac->ReadEntireFile('in.dat');
$signature = $rsa->SignBytes($inData,'SHA-256');
if ($rsa->LastMethodSuccess != 1) {
print $rsa->LastErrorText . "\n";
exit;
}
print 'Signature created.' . "\n";
?>