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
(PowerBuilder) 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.
integer li_rc integer li_Success oleobject loo_Json string ls_JwkStr oleobject loo_PubKey integer li_BPreferPkcs1 // Note: This example requires Chilkat v9.5.0.66 or later. // First build a JWK sample to load.. loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") if li_rc < 0 then destroy loo_Json MessageBox("Error","Connecting to COM object failed") return end if loo_Json.UpdateString("kty","EC") loo_Json.UpdateString("crv","P-256") loo_Json.UpdateString("x","oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE") loo_Json.UpdateString("y","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. loo_Json.EmitCompact = 0 // Show the JWK string to be loaded: ls_JwkStr = loo_Json.Emit() loo_PubKey = create oleobject // Use "Chilkat_9_5_0.PublicKey" for versions of Chilkat < 10.0.0 li_rc = loo_PubKey.ConnectToNewObject("Chilkat.PublicKey") // The LoadFromString method will automatically detect the format. li_Success = loo_PubKey.LoadFromString(ls_JwkStr) if li_Success <> 1 then Write-Debug loo_PubKey.LastErrorText destroy loo_Json destroy loo_PubKey return end if // 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.. Write-Debug loo_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.. li_BPreferPkcs1 = 0 Write-Debug loo_PubKey.GetPem(li_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----- destroy loo_Json destroy loo_PubKey |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.