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
(Objective-C) Get ECC Public Key in JWK Format (JSON Web Key)Demonstrates how to get an ECC public key in JWK (JSON Web Key) format. Note: This example requires Chilkat v9.5.0.66 or later.
#import <CkoStringBuilder.h> #import <CkoPublicKey.h> #import <NSString.h> #import <CkoJsonObject.h> // Note: This example requires Chilkat v9.5.0.66 or later. // Load a PEM file into memory. CkoStringBuilder *sbPem = [[CkoStringBuilder alloc] init]; BOOL success = [sbPem LoadFile: @"qa_data/pem/ecc_public.pem" charset: @"utf-8"]; if (success != YES) { NSLog(@"%@",@"Failed to load PEM file."); return; } // Load the PEM into a public key object. CkoPublicKey *pubKey = [[CkoPublicKey alloc] init]; success = [pubKey LoadFromString: [sbPem GetAsString]]; if (success != YES) { NSLog(@"%@",pubKey.LastErrorText); return; } // Get the public key in JWK format: NSString *jwk = [pubKey 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: CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json Load: jwk]; json.EmitCompact = NO; NSLog(@"%@",@"ECC Public Key in JWK format:"); NSLog(@"%@",[json Emit]); // Sample output: // { // "kty": "EC", // "crv": "P-256", // "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE", // "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU" // } // // Additional information can be added like this: [json AppendString: @"use" value: @"enc"]; [json AppendString: @"kid" value: @"123ABC"]; // Now examine the JSON: NSLog(@"%@",[json Emit]); // { // "kty": "EC", // "crv": "P-256", // "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE", // "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU", // "use": "enc", // "kid": "123ABC" // } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.