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
(PureBasic) Load JWK into PublicKey ObjectDemonstrates how to load a Java Web Key (JWK) into a Chilkat public key object. Note: This example requires Chilkat v9.5.0.66 or greater.
IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkPublicKey.pb" Procedure ChilkatExample() ; Imagine we have this JWK: ; { ; "kty":"RSA", ; "kid":"bilbo.baggins@hobbiton.example", ; "use":"sig", ; "n":"26381066103266289976070039679240841999340706859156341823971393693544846472963839705790075117105560154606562987481050889935247188300178764426769543782451174831475924241862817098997865881169498995546309260357488285676768114714548754913374731868063116787903918383610614912211576698081222844057810710088656983077876282582286966085572172471849443305250452393766960762340311496052418952315081937000716222751229644449475751932222180738210988190709824209639002026650048655399108647971010890335494074025258268035713167380057822555485524738518699437692145859633592396626258745090144803752145540471688039673495588314804430463791", ; "e":"65537" ; } ; sbJwk.i = CkStringBuilder::ckCreate() If sbJwk.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkStringBuilder::ckLoadFile(sbJwk,"qa_data/jwk/simple_jwk_rsa.json","utf-8") If success <> 1 Debug "Failed to load simple JWK file." CkStringBuilder::ckDispose(sbJwk) ProcedureReturn EndIf ; Loading it into a Chilkat public key object is easy: pubkey.i = CkPublicKey::ckCreate() If pubkey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkPublicKey::ckLoadFromString(pubkey,CkStringBuilder::ckGetAsString(sbJwk)) If success <> 1 Debug CkPublicKey::ckLastErrorText(pubkey) CkStringBuilder::ckDispose(sbJwk) CkPublicKey::ckDispose(pubkey) ProcedureReturn EndIf Debug "Simple JWK loaded into public key object." ; ---------------------------------------------------------------------------------------------------------- ; Demonstrate how to load a JWK that is contained within JSON into a public key object. ; { ; "alg":"RS256", ; "jwk": { ; "kty":"RSA", ; "kid":"bilbo.baggins@hobbiton.example", ; "use":"sig", ; "n":"26381066103266289976070039679240841999340706859156341823971393693544846472963839705790075117105560154606562987481050889935247188300178764426769543782451174831475924241862817098997865881169498995546309260357488285676768114714548754913374731868063116787903918383610614912211576698081222844057810710088656983077876282582286966085572172471849443305250452393766960762340311496052418952315081937000716222751229644449475751932222180738210988190709824209639002026650048655399108647971010890335494074025258268035713167380057822555485524738518699437692145859633592396626258745090144803752145540471688039673495588314804430463791", ; "e":"65537" ; } ; } sbJwk2.i = CkStringBuilder::ckCreate() If sbJwk2.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkStringBuilder::ckLoadFile(sbJwk2,"qa_data/jwk/contained_jwk_rsa.json","utf-8") If success <> 1 Debug "Failed to load JWK file." CkStringBuilder::ckDispose(sbJwk) CkPublicKey::ckDispose(pubkey) CkStringBuilder::ckDispose(sbJwk2) ProcedureReturn EndIf ; Get the "jwk" part of the JSON.. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoad(json,CkStringBuilder::ckGetAsString(sbJwk2)) jsonJwk.i = CkJsonObject::ckObjectOf(json,"jwk") If CkJsonObject::ckLastMethodSuccess(json) <> 1 Debug "No jwk member exists." CkStringBuilder::ckDispose(sbJwk) CkPublicKey::ckDispose(pubkey) CkStringBuilder::ckDispose(sbJwk2) CkJsonObject::ckDispose(json) ProcedureReturn EndIf pubkey2.i = CkPublicKey::ckCreate() If pubkey2.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkPublicKey::ckLoadFromString(pubkey2,CkJsonObject::ckEmit(jsonJwk)) If success <> 1 Debug CkPublicKey::ckLastErrorText(pubkey2) CkStringBuilder::ckDispose(sbJwk) CkPublicKey::ckDispose(pubkey) CkStringBuilder::ckDispose(sbJwk2) CkJsonObject::ckDispose(json) CkPublicKey::ckDispose(pubkey2) ProcedureReturn EndIf Debug "Contained JWK loaded into public key object." CkJsonObject::ckDispose(jsonJwk) CkStringBuilder::ckDispose(sbJwk) CkPublicKey::ckDispose(pubkey) CkStringBuilder::ckDispose(sbJwk2) CkJsonObject::ckDispose(json) CkPublicKey::ckDispose(pubkey2) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.