Sample code for 30+ languages & platforms
Visual FoxPro

Load a PuTTY Public Key

See more SSH Key Examples

Demonstrates how to load a PuTTY public key.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loPuttyKey
LOCAL lcPubKeyText
LOCAL lcOpenSshPubKeyStr
LOCAL lcXmlPubKeyStr

lnSuccess = 0

*  Load a PuTTY public key.
loPuttyKey = CreateObject('Chilkat.SshKey')
lcPubKeyText = loPuttyKey.LoadText("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 ----

lnSuccess = loPuttyKey.FromRfc4716PublicKey(lcPubKeyText)
IF (lnSuccess <> 1) THEN
    ? loPuttyKey.LastErrorText
    RELEASE loPuttyKey
    CANCEL
ENDIF

*  If desired, convert to other public key formats:
lcOpenSshPubKeyStr = loPuttyKey.ToOpenSshPublicKey()
? lcOpenSshPubKeyStr

*  openSshPubKeyStr contains:
*  ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAx+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w== rsa-key-20170126

*  Convert to an XML format:
lcXmlPubKeyStr = loPuttyKey.ToXml()
? lcXmlPubKeyStr

*  xmlPubKeyStr contains:
*  <RSAPublicKey>
*      <Modulus>x+52s7vvaZ8rT2UdFZWlSUVDHDQ+5ZRFvgRW6nm2sO1c9WqNg7u2PQL4jeKSDX2XWcMnpleALz2x8Rr4rMy5E1iZzvWov8VtFd8lfa9HOkgEeJB3VFuYR3NlnD3eyCoYJYPVpHJHrIeui2WZs5vQ76HDe+th8+z5Ald4zPw3p2c6ZJpBrkSBM67hWokoBDi23c7NhszDHhJBrv+B98cQxnagI1PUKqN7E8VgbNtBI8beIMHyI69up9G1AXSEi0cGIjYNx9RNUPau1mRk/SvfqxgWkAjM005lj7hcbOsjbdKK3T2NtrKTaYjEiXlEXcj1iGuApsD/m73pYaEJB3Nd7w==</Modulus>
*      <Exponent>JQ==</Exponent>
*  </RSAPublicKey>
*  
*

RELEASE loPuttyKey