PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# First get the A3 certificate that was installed on the Windows system.
$certStore = New-Object Chilkat.CertStore
$thumbprint = "12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2"
# This is specific to Windows because it is opening the Windows Current-User certificate store.
$bReadOnly = $true
$success = $certStore.OpenCurrentUserStore($bReadOnly)
if ($success -ne $true) {
$($certStore.LastErrorText)
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-Object Chilkat.JsonObject
$json.UpdateString("thumbprint",$thumbprint)
$cert = New-Object Chilkat.Cert
$success = $certStore.FindCert($json,$cert)
if ($success -eq $false) {
$("Failed to find the certificate.")
exit
}
$("Found: " + $cert.SubjectCN)
$rsa = New-Object Chilkat.Rsa
# Provide the cert's private key
$bUsePrivateKey = $true
$success = $rsa.SetX509Cert($cert,$bUsePrivateKey)
if ($success -ne $true) {
$($rsa.LastErrorText)
exit
}
# Now we're ready to sign..
$fac = New-Object Chilkat.FileAccess
# Get bytes to be signed..
$inData = $fac.ReadEntireFile("in.dat")
$signature = $rsa.SignBytes($inData,"SHA-256")
if ($rsa.LastMethodSuccess -ne $true) {
$($rsa.LastErrorText)
exit
}
$("Signature created.")