Sample code for 30+ languages & platforms
C#

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 C# Downloads

C#
bool success = false;

//  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.

Chilkat.SshKey key = new Chilkat.SshKey();

success = key.GenerateEd25519Key();
if (success != true) {
    Debug.WriteLine(key.LastErrorText);
    return;
}

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

//  Export the ed25519 private key to unencrypted PuTTY format:
bool exportEncrypted = false;
string exportedKey = key.ToPuttyPrivateKey(exportEncrypted);
success = key.SaveText(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:
key.Password = "secret";
exportEncrypted = true;
exportedKey = key.ToPuttyPrivateKey(exportEncrypted);
success = key.SaveText(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

Debug.WriteLine("Success!");