DataFlex
DataFlex
SFTP use Cert's Private Key for Authentication (Windows)
See more SFTP Examples
Demonstrates how to use the private key of a pre-installed certificate (on Windows) for SFTP authentication. The certificate's private key must be marked as "exportable" when originally installed.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoCert
Variant vPrivKey
Handle hoPrivKey
String sPrivKeyPem
Variant vSshKey
Handle hoSshKey
Handle hoSftp
String sTemp1
Boolean bTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
// Load the certificate from the Windows certificate store
Get ComLoadByCommonName Of hoCert "my_cert_common_name" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the private key.
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Get pvComObject of hoPrivKey to vPrivKey
Get ComGetPrivateKey Of hoCert vPrivKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComGetPkcs8Pem Of hoPrivKey To sPrivKeyPem
Get ComLastMethodSuccess Of hoPrivKey To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatSshKey)) To hoSshKey
If (Not(IsComObjectCreated(hoSshKey))) Begin
Send CreateComObject of hoSshKey
End
Get ComFromOpenSshPrivateKey Of hoSshKey sPrivKeyPem To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSshKey To sTemp1
Showln sTemp1
Procedure_Return
End
// Connect to an SSH/SFTP server
Get Create (RefClass(cComChilkatSFtp)) To hoSftp
If (Not(IsComObjectCreated(hoSftp))) Begin
Send CreateComObject of hoSftp
End
Get ComConnect Of hoSftp "sftp.example.com" 22 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSftp To sTemp1
Showln sTemp1
Procedure_Return
End
// Authenticate with the SSH server using a username + private key.
// (The private key serves as the password. The username identifies
// the SSH user account on the server.)
Get pvComObject of hoSshKey to vSshKey
Get ComAuthenticatePk Of hoSftp "mySshLogin" vSshKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSftp To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "OK, the connection and authentication with the SSH server is completed."
// This example is only to show the connection + authentication using a private key associated with a certificate in the Windows certificate store...
End_Procedure