Sample code for 30+ languages & platforms
AutoIt

SFTP use Cert's Private Key from PFX (.pfx/.p12)

See more SFTP Examples

Demonstrates how to use the private key associated with a certificate from a .pfx/.p12 file.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

$oCert = ObjCreate("Chilkat.Cert")

Local $sPfxFilepath = "qa_data/pfx/my.pfx"
Local $sPfxPassword = "secret"

; A PFX typically contains certificates in the chain of authentication.
; The Chilkat cert object will choose the certificate w/
; private key farthest from the root authority cert.
; To access all the certificates in a PFX, use the 
; Chilkat certificate store object instead.
$bSuccess = $oCert.LoadPfxFile($sPfxFilepath,$sPfxPassword)
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

; Get the private key.  
$oPrivKey = ObjCreate("Chilkat.PrivateKey")
$bSuccess = $oCert.GetPrivateKey($oPrivKey)
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

Local $sPrivKeyPem = $oPrivKey.GetPkcs8Pem()
If ($oPrivKey.LastMethodSuccess = False) Then
    ConsoleWrite($oPrivKey.LastErrorText & @CRLF)
    Exit
EndIf

$oSshKey = ObjCreate("Chilkat.SshKey")
$bSuccess = $oSshKey.FromOpenSshPrivateKey($sPrivKeyPem)
If ($bSuccess = False) Then
    ConsoleWrite($oSshKey.LastErrorText & @CRLF)
    Exit
EndIf

; Connect to an SSH/SFTP server
$oSftp = ObjCreate("Chilkat.SFtp")
$bSuccess = $oSftp.Connect("sftp.example.com",22)
If ($bSuccess = False) Then
    ConsoleWrite($oSftp.LastErrorText & @CRLF)
    Exit
EndIf

; 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.)
$bSuccess = $oSftp.AuthenticatePk("mySshLogin",$oSshKey)
If ($bSuccess = False) Then
    ConsoleWrite($oSftp.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("OK, the connection and authentication with the SSH server is completed." & @CRLF)

; This example is only to show the connection + authentication using a private key associated with a certificate in the Windows certificate store...