Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Generate an Ed25519 Key PairDemonstrates how to generate a new Ed25519 public/private key pair. Note: This example requires Chilkat v9.5.0.83 or greater.
#include <C_CkEdDSAW.h> #include <C_CkPrngW.h> #include <C_CkPrivateKeyW.h> #include <C_CkJsonObjectW.h> void ChilkatSample(void) { HCkEdDSAW eddsa; HCkPrngW prng; HCkPrivateKeyW privKey; BOOL success; const wchar_t *jwk; HCkJsonObjectW json; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. eddsa = CkEdDSAW_Create(); prng = CkPrngW_Create(); privKey = CkPrivateKeyW_Create(); // Generates a new eddsa key and stores it in privKey. success = CkEdDSAW_GenEd25519Key(eddsa,prng,privKey); if (success == FALSE) { wprintf(L"%s\n",CkEdDSAW_lastErrorText(eddsa)); CkEdDSAW_Dispose(eddsa); CkPrngW_Dispose(prng); CkPrivateKeyW_Dispose(privKey); return; } // Examine the ed25519 key in JWK format; jwk = CkPrivateKeyW_getJwk(privKey); json = CkJsonObjectW_Create(); CkJsonObjectW_Load(json,jwk); CkJsonObjectW_putEmitCompact(json,FALSE); wprintf(L"%s\n",CkJsonObjectW_emit(json)); // Sample output: // { // "kty": "OKP", // "crv": "Ed25519", // "x": "SE2Kne5xt51z1eciMH2T2ftDQp96Gl6FhY6zSQujiP0", // "d": "O-eRXewadF0sNyB0U9omcnt8Qg2ZmeK3WSXPYgqe570", // "use": "sig" // } // In the above JWK, x is the public key, y is the private key. // Both are 32 bytes and are base64-url encoded. CkEdDSAW_Dispose(eddsa); CkPrngW_Dispose(prng); CkPrivateKeyW_Dispose(privKey); CkJsonObjectW_Dispose(json); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.