|  | 
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
| (Perl) SSH HSM Public Key AuthenticationDemonstrates how to authenticate with an SSH server using public key authentication using an HSM (USB token or smartcard). 
 use chilkat(); # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Note: Chilkat's PKCS11 implementation runs on Windows, Linux, MacOs, and other supported operating systems. $pkcs11 = chilkat::CkPkcs11->new(); # This would be a path to a .dylib on MacOS, or a path to a .so shared lib on Linux. $pkcs11->put_SharedLibPath("C:/Program Files (x86)/Gemalto/IDGo 800 PKCS#11/IDPrimePKCS1164.dll"); $pin = "0000"; $userType = 1; # Establish a PKCS11 logged-on session using the driver (.so, .dylib, or .dll) as specified in the SharedLibPath above. $success = $pkcs11->QuickSession($userType,$pin); if ($success == 0) { print $pkcs11->lastErrorText() . "\r\n"; exit; } # Set PKCS11 attributes to find our desired private key object. $json = chilkat::CkJsonObject->new(); $json->UpdateString("class","private_key"); $json->UpdateString("label","MySshKey"); # Get the PKCS11 handle to the private key located on the HSM. $priv_handle = $pkcs11->FindObject($json); # Get the PKCS11 handle to the corresponding public key located on the HSM. $json->UpdateString("class","public_key"); $pub_handle = $pkcs11->FindObject($json); $key = chilkat::CkSshKey->new(); # The key type can be "rsa" or "ec" $keyType = "rsa"; $success = $key->UsePkcs11($pkcs11,$priv_handle,$pub_handle,$keyType); if ($success == 0) { print $key->lastErrorText() . "\r\n"; exit; } $ssh = chilkat::CkSsh->new(); $success = $ssh->Connect("example.com",22); if ($success != 1) { print $ssh->lastErrorText() . "\r\n"; exit; } # Authenticate with the SSH server using the login and # HSM private key. (The corresponding public key should've # been installed on the SSH server beforehand.) $success = $ssh->AuthenticatePk("myLogin",$key); if ($success != 1) { print $ssh->lastErrorText() . "\r\n"; exit; } print "Public-Key Authentication Successful!" . "\r\n"; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.