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
(Visual FoxPro) PKCS11 Export Public Key from HSMSee more PKCS11 ExamplesDemonstrates how to export a public key from a smartcard or token. Note: This example requires Chilkat v9.5.0.96 or later.
LOCAL loPkcs11 LOCAL lcPin LOCAL lnUserType LOCAL lnSuccess LOCAL loJsonTemplate LOCAL lnPubKeyHandle LOCAL loPubKey * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Note: Chilkat's PKCS11 implementation runs on Windows, Linux, Mac OS X, and other supported operating systems. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Pkcs11') loPkcs11 = CreateObject('Chilkat.Pkcs11') * Use the PKCS11 driver (.dll, .so, .dylib) for your particular HSM. * (The format of the path will change with the operating system. Obviously, "C:/" is not used on non-Windows systems. loPkcs11.SharedLibPath = "C:/Program Files (x86)/Gemalto/IDGo 800 PKCS#11/IDPrimePKCS1164.dll" * Establish a logged-on session. (We can typically skip the login by passing an empty PIN if only working with public keys) * Use your actual PIN here, or an empty string to skip login. lcPin = "0000" lnUserType = 1 lnSuccess = loPkcs11.QuickSession(lnUserType,lcPin) IF (lnSuccess = 0) THEN ? loPkcs11.LastErrorText RELEASE loPkcs11 CANCEL ENDIF * Get the handle of the public key we wish to export. * You can find public keys in many different ways. * This example will search for a public key by label. * Provide a template to find a PKCS11 object. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJsonTemplate = CreateObject('Chilkat.JsonObject') * Find the public key with the label "Belgium eHealth". loJsonTemplate.UpdateString("class","public_key") loJsonTemplate.UpdateString("label","Belgium eHealth") lnPubKeyHandle = loPkcs11.FindObject(loJsonTemplate) IF (lnPubKeyHandle = 0) THEN ? loPkcs11.LastErrorText RELEASE loPkcs11 RELEASE loJsonTemplate CANCEL ENDIF * Export to a Chilkat public key object. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.PublicKey') loPubKey = CreateObject('Chilkat.PublicKey') lnSuccess = loPkcs11.ExportPublicKey(lnPubKeyHandle,loPubKey) IF (lnSuccess = 0) THEN ? loPkcs11.LastErrorText RELEASE loPkcs11 RELEASE loJsonTemplate RELEASE loPubKey CANCEL ENDIF * Get the public key as PKCS8 PEM. ? loPubKey.GetPem(0) loPkcs11.Logout() loPkcs11.CloseSession() RELEASE loPkcs11 RELEASE loJsonTemplate RELEASE loPubKey |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.