DataFlex
DataFlex
Load JWK into PublicKey Object
See more JSON Web Signatures (JWS) Examples
Demonstrates how to load a Java Web Key (JWK) into a Chilkat public key object.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSbJwk
Handle hoPubkey
2 Handle hoSbJwk2
Handle hoJson
Variant vJsonJwk
Handle hoJsonJwk
2 Handle hoPubkey2
String sTemp1
Move False To iSuccess
// Imagine we have this JWK:
// {
// "kty":"RSA",
// "kid":"bilbo.baggins@hobbiton.example",
// "use":"sig",
// "n":"26381066103266289976070039679240841999340706859156341823971393693544846472963839705790075117105560154606562987481050889935247188300178764426769543782451174831475924241862817098997865881169498995546309260357488285676768114714548754913374731868063116787903918383610614912211576698081222844057810710088656983077876282582286966085572172471849443305250452393766960762340311496052418952315081937000716222751229644449475751932222180738210988190709824209639002026650048655399108647971010890335494074025258268035713167380057822555485524738518699437692145859633592396626258745090144803752145540471688039673495588314804430463791",
// "e":"65537"
// }
//
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJwk
If (Not(IsComObjectCreated(hoSbJwk))) Begin
Send CreateComObject of hoSbJwk
End
Get ComLoadFile Of hoSbJwk "qa_data/jwk/simple_jwk_rsa.json" "utf-8" To iSuccess
If (iSuccess <> True) Begin
Showln "Failed to load simple JWK file."
Procedure_Return
End
// Loading it into a Chilkat public key object is easy:
Get Create (RefClass(cComChilkatPublicKey)) To hoPubkey
If (Not(IsComObjectCreated(hoPubkey))) Begin
Send CreateComObject of hoPubkey
End
Get ComGetAsString Of hoSbJwk To sTemp1
Get ComLoadFromString Of hoPubkey sTemp1 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPubkey To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "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"
// }
// }
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJwk2
If (Not(IsComObjectCreated(hoSbJwk2))) Begin
Send CreateComObject of hoSbJwk2
End
Get ComLoadFile Of hoSbJwk2 "qa_data/jwk/contained_jwk_rsa.json" "utf-8" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSbJwk2 To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the "jwk" part of the JSON..
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComGetAsString Of hoSbJwk2 To sTemp1
Get ComLoad Of hoJson sTemp1 To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonJwk
If (Not(IsComObjectCreated(hoJsonJwk))) Begin
Send CreateComObject of hoJsonJwk
End
Get pvComObject of hoJsonJwk to vJsonJwk
Get ComObjectOf2 Of hoJson "jwk" vJsonJwk To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJson To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatPublicKey)) To hoPubkey2
If (Not(IsComObjectCreated(hoPubkey2))) Begin
Send CreateComObject of hoPubkey2
End
Get ComEmit Of hoJsonJwk To sTemp1
Get ComLoadFromString Of hoPubkey2 sTemp1 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPubkey2 To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Contained JWK loaded into public key object."
End_Procedure