|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Classic ASP) Import an SSH Key to an HSM using PKCS11See more PKCS11 ExamplesDemonstrates how to import an SSH private key to an HSM (smartcard or token).Note: This example requires Chilkat v9.5.0.96 or later. 
 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ' 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") set pkcs11 = Server.CreateObject("Chilkat.Pkcs11") ' Use the PKCS11 driver (.dll, .so, .dylib) for your particular HSM. ' For example: pkcs11.SharedLibPath = "C:/Program Files (x86)/Gemalto/IDGo 800 PKCS#11/IDPrimePKCS11.dll" ' Use your HSM's PIN. pin = "0000" ' Normal user = 1 userType = 1 ' Establish a logged-on user session with the HSM. success = pkcs11.QuickSession(userType,pin) If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( pkcs11.LastErrorText) & "</pre>" Response.End End If ' Create a PKCS11 template for importing the SSH key. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set jsonTemplate = Server.CreateObject("Chilkat.JsonObject") ' Indicate the key is to be stored on the token (i.e. it is not a session-only key) success = jsonTemplate.UpdateBool("token",1) ' The key should have the ability to sign success = jsonTemplate.UpdateBool("sign",1) ' Let's provide a few attributes to help us find the this key at a later time. ' See SSH Public-Key Authentication using an HSM ' The ID is byte data, so it should be base64 or hex. ' Specify "id" if passing base64 data, "id_hex" for hexidecimal, or "id_ascii" for directly copying the ascii bytes of the string. ' You can provide any ID of your choice. It is optional. success = jsonTemplate.UpdateString("id_hex","0A0B0C0D01020304") ' Optionally specify a label. success = jsonTemplate.UpdateString("label","MySshKey") ' Load the SSH key to be imported to the HSM (smartcard or token) ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.SshKey") set sshKey = Server.CreateObject("Chilkat.SshKey") sshKey.Password = "password_of_the_encrypted_ppk_file" ppkContents = sshKey.LoadText("c:/my_ssh_keys/someSshKey.ppk") success = sshKey.FromPuttyPrivateKey(ppkContents) If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( sshKey.LastErrorText) & "</pre>" Response.End End If ' Import the SSH private key onto the HSM. ' The PKCS11 handle to the imported private key is returned. ' A 0 is returned on failure. privKeyHandle = pkcs11.ImportSshKey(sshKey,jsonTemplate) If (privKeyHandle = 0) Then Response.Write "<pre>" & Server.HTMLEncode( pkcs11.LastErrorText) & "</pre>" Response.End End If ' The private key handle is only valid during the PKCS11 session. ' If you wish to use the private key in another PKCS11 session, ' you'll first need to find it. See SSH Public-Key Authentication using a Smartcard Response.Write "<pre>" & Server.HTMLEncode( "private key handle: " & privKeyHandle) & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "Successfully imported the SSH key onto the HSM.") & "</pre>" success = pkcs11.Logout() success = pkcs11.CloseSession() %> </body> </html> | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.