Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) RSA Sign String using Private Key of Certificate Type A3 (smart card / token)Demonstrates RSA signing a string using the private key of a certificate type A3 (smart card, token). Note: This is a Windows-only example.
Use ChilkatAx-win32.pkg Procedure Test Handle hoCertStore String sThumbprint Boolean iBReadOnly Boolean iSuccess Variant vCert Handle hoCert Handle hoRsa Boolean iBUsePrivateKey String sSigBase64 String sTemp1 Boolean bTemp1 // First get the A3 certificate that was installed on the Windows system. Get Create (RefClass(cComChilkatCertStore)) To hoCertStore If (Not(IsComObjectCreated(hoCertStore))) Begin Send CreateComObject of hoCertStore End Move "12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2" To sThumbprint // This is specific to Windows because it is opening the Windows Current-User certificate store. Move True To iBReadOnly Get ComOpenCurrentUserStore Of hoCertStore iBReadOnly To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoCertStore To sTemp1 Showln sTemp1 Procedure_Return End // Find the certificate with the desired thumbprint // (There are many ways to locate a certificate. This example chooses to find by thumbprint.) Get ComFindCertBySha1Thumbprint Of hoCertStore sThumbprint To vCert If (IsComObject(vCert)) Begin Get Create (RefClass(cComChilkatCert)) To hoCert Set pvComObject Of hoCert To vCert End Get ComLastMethodSuccess Of hoCertStore To bTemp1 If (bTemp1 <> True) Begin Showln "Failed to find the certificate." Procedure_Return End Get ComSubjectCN Of hoCert To sTemp1 Showln "Found: " sTemp1 Get Create (RefClass(cComChilkatRsa)) To hoRsa If (Not(IsComObjectCreated(hoRsa))) Begin Send CreateComObject of hoRsa End // Provide the cert's private key Move True To iBUsePrivateKey Get ComSetX509Cert Of hoRsa vCert iBUsePrivateKey To iSuccess Send Destroy of hoCert If (iSuccess <> True) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End // Return the RSA signature in base64 encoded form. Set ComEncodingMode Of hoRsa To "base64" // Sign the utf-8 byte representation of the string. Set ComCharset Of hoRsa To "utf-8" // You can also choose other hash algorithms, such as SHA-1. Get ComSignStringENC Of hoRsa "text to sign" "SHA-256" To sSigBase64 Get ComLastMethodSuccess Of hoRsa To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End Showln "Base64 signature: " sSigBase64 End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.