Sample code for 30+ languages & platforms
React Native

Load a PuTTY Public Key

See more SSH Key Examples

Demonstrates how to load a PuTTY public key.

Chilkat React Native Downloads

React Native
import { SshKey } from '@chilkat/react-native'

function chilkatExample() {
  // Load a PuTTY public key.
  const puttyKey = new SshKey();
  const pubKeyText = puttyKey.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 ----

  try {
    puttyKey.fromRfc4716PublicKey(pubKeyText);
  } catch {
    console.log(puttyKey.lastErrorText);
    return;
  }

  // If desired, convert to other public key formats:
  const openSshPubKeyStr = puttyKey.toOpenSshPublicKey();
  console.log(openSshPubKeyStr);

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

  // Convert to an XML format:
  const xmlPubKeyStr = puttyKey.toXml();
  console.log(xmlPubKeyStr);

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