Sample code for 30+ languages & platforms
PowerBuilder

Generate ed25519 Key and Save to PuTTY Format

See more SSH Key Examples

Generates an ED25519 key and saves to PuTTY format.

Note: This example requires Chilkat v9.5.0.83 or greater.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Key
integer li_ExportEncrypted
string ls_ExportedKey

li_Success = 0

// Note: Requires Chilkat v9.5.0.83 or greater.

// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Key = create oleobject
li_rc = loo_Key.ConnectToNewObject("Chilkat.SshKey")
if li_rc < 0 then
    destroy loo_Key
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_Key.GenerateEd25519Key()
if li_Success <> 1 then
    Write-Debug loo_Key.LastErrorText
    destroy loo_Key
    return
end if

// We can optionally set a comment to be included in the exported key.
loo_Key.Comment = "This is my new ed25519 key."

// Export the ed25519 private key to unencrypted PuTTY format:
li_ExportEncrypted = 0
ls_ExportedKey = loo_Key.ToPuttyPrivateKey(li_ExportEncrypted)
li_Success = loo_Key.SaveText(ls_ExportedKey,"qa_output/privkey_putty_unencrypted.ppk")

// The unencrypted PuTTY key looks like this:

// 	PuTTY-User-Key-File-2: ssh-ed25519
// 	Encryption: none
// 	Comment: This is my new ed25519 key.
// 	Public-Lines: 2
// 	AAAAC3NzaC1lZDI1NTE5AAAAIJn6m7yKzkAAHXzzjE1zv4RqtdE8r5eTegcpbNDF
// 	OPYs
// 	Private-Lines: 1
// 	AAAAIFgwbZ38AR9Oiw930wsCcCGymQRBa2Y7qBq6R3HCe9VL
// 	Private-MAC: 892573676dd13ef70b6ab7ef219decdfbd5b1857

// Export the ed25519 private key to encrypted PuTTY format:
loo_Key.Password = "secret"
li_ExportEncrypted = 1
ls_ExportedKey = loo_Key.ToPuttyPrivateKey(li_ExportEncrypted)
li_Success = loo_Key.SaveText(ls_ExportedKey,"qa_output/privkey_putty_encrypted.ppk")

// The encrypted PuTTY key looks like this:

// 	PuTTY-User-Key-File-2: ssh-ed25519
// 	Encryption: aes256-cbc
// 	Comment: This is my new ed25519 key.
// 	Public-Lines: 2
// 	AAAAC3NzaC1lZDI1NTE5AAAAIJn6m7yKzkAAHXzzjE1zv4RqtdE8r5eTegcpbNDF
// 	OPYs
// 	Private-Lines: 1
// 	aIa9mY22htPElPgWhtXesp97662JECxaSsnNqvhD06P+o18immv8ohn73vI/bhQB
// 	Private-MAC: 312221dc90660859fe68df300767f8f779046815

Write-Debug "Success!"


destroy loo_Key