Unicode C
Unicode C
Generate RSA Public/Private Key
See more RSA Examples
_LANGUAGE_ example code showing how to generate an RSA public/private key.Chilkat Unicode C Downloads
#include <C_CkRsaW.h>
#include <C_CkPrivateKeyW.h>
#include <C_CkPublicKeyW.h>
void ChilkatSample(void)
{
BOOL success;
HCkRsaW rsa;
HCkPrivateKeyW privKey;
HCkPublicKeyW pubKey;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
rsa = CkRsaW_Create();
// Generate a 2048-bit key. Chilkat RSA supports
// key sizes ranging from 512 bits to 8192 bits.
privKey = CkPrivateKeyW_Create();
success = CkRsaW_GenKey(rsa,2048,privKey);
if (success == FALSE) {
wprintf(L"%s\n",CkRsaW_lastErrorText(rsa));
CkRsaW_Dispose(rsa);
CkPrivateKeyW_Dispose(privKey);
return;
}
pubKey = CkPublicKeyW_Create();
CkPrivateKeyW_ToPublicKey(privKey,pubKey);
wprintf(L"%s\n",CkPrivateKeyW_getPkcs8Pem(privKey));
wprintf(L"%s\n",CkPublicKeyW_getPem(pubKey,FALSE));
// Sample output:
// -----BEGIN PRIVATE KEY-----
// MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD0SwWmX222gCpW
// ue75Q3VicOSXlTW0YNVksW8oGLS8x/SI5ZUqVMLIl2gsF1drEg2b+lvfeB7l2hwo
// UUCK0x2L2qv8hs4zrHmrrCi5xHHG7kpQAoi2PTodWvKvr9m7+n+nFcwOMrY0+qZM
// oYUg85yde3tWek5ouj4v1ZC9lbsozTrl2aIm/nD+o1PXg/V7CL2owbS+UG0iRz0C
// IYwn8hNEEe3/Uzw2oq7Gt37jOTYB21jX9RSgt0v90ifaQeXR6uiuuaJLRVunJXrd
// lJ9QvJh8xYuyEhJO5cChtn2AcSSxm417O4vJzBSHKKAn+EA/YIs74UsYTZojG5x/
// ptA3GDzhAgMBAAECggEBAIC4Vw3HEqQq/CQebJDivqNUIN7OPDIDI+2eoJdcDT+7
// jFnlvqdDai8PuFAjLGi6ZnldfbNOM9mhB10nEv8TJmpemmjBDz2jD6kpWXwoylqr
// jHSEIU0FDe4R0fZIjk3CPCjqD08b4W4g9CdEpEUsl8VTHzX90/rSx5mkylNa5fck
// xOf7V4W3L0OC+J0zKFiAQtI1abf+7x5rsnoi8sJ90v4wWWaXtMxHAZRLZxY2FtV3
// BbydbTqU+UC8T2+4ga+J549k9QomZ8zUhxe22jTBcKcIE+cGK5CLN8fJJ1GZWiB9
// JYOmeTat7N6SrpqdTsjqF2+Y6s5lt+B1yI6Fg2069MECgYEA/VYd3xZgqEjM1095
// zEce1eNujk+QGRfQv/9ToF8/jdJAvJQStagupIAHH0+iLnQGIZKLS0AxTJqlz0be
// r+0+8bs2whiuCvNF6U/pfslMUdlkOlY38lhdL3IqVOcf4douGEPI1BJlJraJFxea
// 49SeWJLY23Yb1j3yvCWTmBP6q8UCgYEA9tyQcRCRDis4V7NGwvWi8v3BBHf/lgo0
// ac+676DWqHco4cbu1ZVkyM5Y3rgsgX5APeqPhaXlivvv8LLhUSydUoquhdHlBeRi
// XxTBj4aNNRwBfC9x9keOaBBBhughwgrDcEnGL6/B/6mpXydY0El7DmGf1G5x46NY
// jUoqVa54Um0CgYAI8eN4HwgmqPtiltHMHq6+Cpu6tqB14ltijBdd0D8kOMpEXk4S
// z+9lq4eU2XD2hu44fT4h2BBljghQu0XdnFjenCegztJGXLSZOlMaQO1K7owVaznq
// eqg/pp5MBSUhCl0aSjprEoMzzLomcJTtenJk2jqB9TeiZumNLx54/iuZqQKBgDjp
// bq9yV07B7hJh9W1a/f8xOz+Rfq4TmjPOvVUjanmaRyWOHF/HOl4FHH30TeZoudzM
// Z9wy+/GH1bBTPRjexUJTUJrvYfJyza8H9Pvm1EUrOLhto8NYid856DF28Nlwa9BG
// Ydd6mKodbjvOsW4LksAlB5kNAVquvOqN76ajO4AdAoGBAMXWdg9VFObBklLTRs81
// LgtLd9brWpRUHYkH8Ctw2bgyHuel26HVghWWy7JxU308uWL6ZrSXv7Qlsw7iYYwP
// m8BwjxUTfwTpqHfIi5sjeL6IeNiUPesqyT4B7J7ssmzYf8bedwN7TsrrY+169Ud3
// tC1UNW1BQbHh4RnyusT93Z71
// -----END PRIVATE KEY-----
//
// -----BEGIN PUBLIC KEY-----
// MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9EsFpl9ttoAqVrnu+UN1
// YnDkl5U1tGDVZLFvKBi0vMf0iOWVKlTCyJdoLBdXaxINm/pb33ge5docKFFAitMd
// i9qr/IbOM6x5q6woucRxxu5KUAKItj06HVryr6/Zu/p/pxXMDjK2NPqmTKGFIPOc
// nXt7VnpOaLo+L9WQvZW7KM065dmiJv5w/qNT14P1ewi9qMG0vlBtIkc9AiGMJ/IT
// RBHt/1M8NqKuxrd+4zk2AdtY1/UUoLdL/dIn2kHl0erorrmiS0VbpyV63ZSfULyY
// fMWLshISTuXAobZ9gHEksZuNezuLycwUhyigJ/hAP2CLO+FLGE2aIxucf6bQNxg8
// 4QIDAQAB
// -----END PUBLIC KEY-----
CkRsaW_Dispose(rsa);
CkPrivateKeyW_Dispose(privKey);
CkPublicKeyW_Dispose(pubKey);
}