DataFlex
DataFlex
Get ECC Public Key in JWK Format (JSON Web Key)
See more ECC Examples
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.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSbPem
Handle hoPubKey
String sJwk
Handle hoJson
String sTemp1
Move False To iSuccess
// Note: This example requires Chilkat v9.5.0.66 or later.
// Load a PEM file into memory.
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbPem
If (Not(IsComObjectCreated(hoSbPem))) Begin
Send CreateComObject of hoSbPem
End
Get ComLoadFile Of hoSbPem "qa_data/pem/ecc_public.pem" "utf-8" To iSuccess
If (iSuccess <> True) Begin
Showln "Failed to load PEM file."
Procedure_Return
End
// Load the PEM into a public key object.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey
If (Not(IsComObjectCreated(hoPubKey))) Begin
Send CreateComObject of hoPubKey
End
Get ComGetAsString Of hoSbPem To sTemp1
Get ComLoadFromString Of hoPubKey sTemp1 To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoPubKey To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the public key in JWK format:
Get ComGetJwk Of hoPubKey To sJwk
// 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:
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComLoad Of hoJson sJwk To iSuccess
Set ComEmitCompact Of hoJson To False
Showln "ECC Public Key in JWK format:"
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// Sample output:
// {
// "kty": "EC",
// "crv": "P-256",
// "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE",
// "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU"
// }
//
// Additional information can be added like this:
Get ComAppendString Of hoJson "use" "enc" To iSuccess
Get ComAppendString Of hoJson "kid" "123ABC" To iSuccess
// Now examine the JSON:
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// {
// "kty": "EC",
// "crv": "P-256",
// "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE",
// "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU",
// "use": "enc",
// "kid": "123ABC"
// }
End_Procedure