PureBasic
PureBasic
Load a PuTTY Public Key
See more SSH Key Examples
Demonstrates how to load a PuTTY public key.Chilkat PureBasic Downloads
IncludeFile "CkSshKey.pb"
Procedure ChilkatExample()
success.i = 0
; Load a PuTTY public key.
puttyKey.i = CkSshKey::ckCreate()
If puttyKey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
pubKeyText.s = CkSshKey::ckLoadText(puttyKey,"qa_data/ppk/putty_public.pem")
; The pubKeyText contains this content:
; ---- BEGIN SSH2 PUBLIC KEY ----
; Comment: "rsa-key-20170126"
; AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW
; 6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8l
; fa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4
; zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8Vg
; bNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hc
; bOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==
; ---- END SSH2 PUBLIC KEY ----
success = CkSshKey::ckFromRfc4716PublicKey(puttyKey,pubKeyText)
If success <> 1
Debug CkSshKey::ckLastErrorText(puttyKey)
CkSshKey::ckDispose(puttyKey)
ProcedureReturn
EndIf
; If desired, convert to other public key formats:
openSshPubKeyStr.s = CkSshKey::ckToOpenSshPublicKey(puttyKey)
Debug openSshPubKeyStr
; openSshPubKeyStr contains:
; ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w== rsa-key-20170126
; Convert to an XML format:
xmlPubKeyStr.s = CkSshKey::ckToXml(puttyKey)
Debug xmlPubKeyStr
; xmlPubKeyStr contains:
; <RSAPublicKey>
; <Modulus>x+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==</Modulus>
; <Exponent>JQ==</Exponent>
; </RSAPublicKey>
;
;
CkSshKey::ckDispose(puttyKey)
ProcedureReturn
EndProcedure