Unicode C
Unicode 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 Unicode C Downloads
#include <C_CkSshKeyW.h>
void ChilkatSample(void)
{
BOOL success;
HCkSshKeyW key;
BOOL exportEncrypted;
const wchar_t *exportedKey;
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.
key = CkSshKeyW_Create();
success = CkSshKeyW_GenerateEd25519Key(key);
if (success != TRUE) {
wprintf(L"%s\n",CkSshKeyW_lastErrorText(key));
CkSshKeyW_Dispose(key);
return;
}
// We can optionally set a comment to be included in the exported key.
CkSshKeyW_putComment(key,L"This is my new ed25519 key.");
// Export the ed25519 private key to unencrypted PuTTY format:
exportEncrypted = FALSE;
exportedKey = CkSshKeyW_toPuttyPrivateKey(key,exportEncrypted);
success = CkSshKeyW_SaveText(key,exportedKey,L"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:
CkSshKeyW_putPassword(key,L"secret");
exportEncrypted = TRUE;
exportedKey = CkSshKeyW_toPuttyPrivateKey(key,exportEncrypted);
success = CkSshKeyW_SaveText(key,exportedKey,L"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
wprintf(L"Success!\n");
CkSshKeyW_Dispose(key);
}