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) Load ECC Public Key from JWK Format (JSON Web Key)Demonstrates how to load an ECC public key from JWK (JSON Web Key) format. Note: This example requires Chilkat v9.5.0.66 or later.
#import <CkoJsonObject.h> #import <NSString.h> #import <CkoPublicKey.h> // Note: This example requires Chilkat v9.5.0.66 or later. BOOL success; // First build a JWK sample to load.. CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json UpdateString: @"kty" value: @"EC"]; [json UpdateString: @"crv" value: @"P-256"]; [json UpdateString: @"x" value: @"oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE"]; [json UpdateString: @"y" value: @"vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU"]; // The JSON contains the following: // { // "kty": "EC", // "crv": "P-256", // "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE", // "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU", // } // Note: The JSON can contain other members, such as "use", "kid", or anything else. These will be ignored. json.EmitCompact = NO; // Show the JWK string to be loaded: NSString *jwkStr = [json Emit]; CkoPublicKey *pubKey = [[CkoPublicKey alloc] init]; // The LoadFromString method will automatically detect the format. success = [pubKey LoadFromString: jwkStr]; if (success != YES) { NSLog(@"%@",pubKey.LastErrorText); return; } // OK.. the JWK is loaded. It can be used in whatever way desired... // The key can be retrieved in any other format, such as XML or PEM.. NSLog(@"%@",[pubKey GetXml]); // XML output: // <ECCPublicKey curve="secp256r1" // x="A01532A3C0900053DE60FBEFEFCCA58793301598D308B41E6F4E364E388C2711" // y="BEF432C599148C94143D4FF46C2CB73E3E6A41D7EEF23C047EA11E60667DE425"> // MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABKAVMqPAkABT3mD77+/MpYeTMBWY0wi0Hm9ONk44jCcRvvQyxZkUjJQUPU/0bCy3Pj5qQdfu8jwEfqEeYGZ95CU= // </ECCPublicKey> // Choose PCKS1 or PCKS8 PEM format.. BOOL bPreferPkcs1 = NO; NSLog(@"%@",[pubKey GetPem: bPreferPkcs1]); // PEM output // -----BEGIN PUBLIC KEY----- // MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAA // AAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA//// // ///////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSd // NgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5 // RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA // //////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABKAVMqPAkABT3mD77+/MpYeT // MBWY0wi0Hm9ONk44jCcRvvQyxZkUjJQUPU/0bCy3Pj5qQdfu8jwEfqEeYGZ95CU= // -----END PUBLIC KEY----- |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.