![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(C) Get an EC Key in Raw Hex FormatDemonstrates how to get the private and public key parts of an EC (ECDSA) key in lowercase hex formmat. Note: This example requires Chilkat v9.5.0.83 or greater.
#include <C_CkPrivateKey.h> #include <C_CkStringBuilder.h> void ChilkatSample(void) { HCkPrivateKey privKey; BOOL success; HCkStringBuilder sbPubKeyHex; const char *privKeyHex; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Load an EC key from some format.. privKey = CkPrivateKey_Create(); // This loads an ECDSA key from an unencrypted PEM file (no password required). success = CkPrivateKey_LoadAnyFormatFile(privKey,"qa_data/ecc/openssl_ecc_privKey.pem",""); if (success == FALSE) { printf("%s\n",CkPrivateKey_lastErrorText(privKey)); CkPrivateKey_Dispose(privKey); return; } // The key type should be "ecc" to indicate an EC key. printf("key type = %s\n",CkPrivateKey_keyType(privKey)); // What is the size of the private key in bits? printf("size in bits = %d\n",CkPrivateKey_getBitLength(privKey)); // Get the private and public EC key parts in raw hex format: sbPubKeyHex = CkStringBuilder_Create(); privKeyHex = CkPrivateKey_getRawHex(privKey,sbPubKeyHex); // If the private key size in bits is 256, then we should have a 32-byte key (a 64 character hex string). printf("private key = %s\n",privKeyHex); // The public key is composed of the "x" and "y" parts, and is composed like this: 04||HEX(x)||HEX(y) printf("public key = %s\n",CkStringBuilder_getAsString(sbPubKeyHex)); // Sample output: // key type = ecc // size in bits = 256 // private key = ced36f2ba3332be439f79143d69937fc52494cd38e45243c3ea05db183919f1b // public key = 045b4edcd501831740895f5907feabb71587076a6314d9d5141f9f8c33a478b8ce08b8dfd2a091eb6355803d7e729876c790bc0b176f2015f3bb103813753f676a CkPrivateKey_Dispose(privKey); CkStringBuilder_Dispose(sbPubKeyHex); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.