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
(C++) Get ECC Private Key in JWK Format (JSON Web Key)Demonstrates how to get an ECC private key in JWK (JSON Web Key) format. Note: This example requires Chilkat v9.5.0.66 or later.
#include <CkStringBuilder.h> #include <CkPrivateKey.h> #include <CkJsonObject.h> void ChilkatSample(void) { // Note: This example requires Chilkat v9.5.0.66 or later. // Load a PEM file into memory. CkStringBuilder sbPem; bool success = sbPem.LoadFile("qa_data/pem/ecc_privKey.pem","utf-8"); if (success != true) { std::cout << "Failed to load PEM file." << "\r\n"; return; } // Load the PEM into a private key object. CkPrivateKey privKey; success = privKey.LoadPem(sbPem.getAsString()); if (success != true) { std::cout << privKey.lastErrorText() << "\r\n"; return; } // Get the private key in JWK format: const char *jwk = privKey.getJwk(); // The GetJwk method will return the JWK in the most compact JSON format possible, // as a single line with no extra whitespace. To get a more human-readable JWK (for this example), // load into a Chilkat JSON object and emit non-compact: CkJsonObject json; json.Load(jwk); json.put_EmitCompact(false); std::cout << "ECC Private Key in JWK format:" << "\r\n"; std::cout << json.emit() << "\r\n"; // Sample output: // { // "kty": "EC", // "crv": "P-256", // "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE", // "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU", // "d": "EbVzfPnZPxfAyxqEZV05laAoJAl-_6Xt2O4mOB611sM" // } // // Additional information can be added like this: json.AppendString("use","enc"); json.AppendString("kid","123ABC"); // Now examine the JSON: std::cout << json.emit() << "\r\n"; // { // "kty": "EC", // "crv": "P-256", // "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE", // "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU", // "d": "EbVzfPnZPxfAyxqEZV05laAoJAl-_6Xt2O4mOB611sM", // "use": "enc", // "kid": "123ABC" // } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.