DataFlex
DataFlex
Get ECC Private Key in JWK Format (JSON Web Key)
See more ECC Examples
Demonstrates how to get an ECC private 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 hoPrivKey
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_privKey.pem" "utf-8" To iSuccess
If (iSuccess <> True) Begin
Showln "Failed to load PEM file."
Procedure_Return
End
// Load the PEM into a private key object.
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Get ComGetAsString Of hoSbPem To sTemp1
Get ComLoadPem Of hoPrivKey sTemp1 To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the private key in JWK format:
Get ComGetJwk Of hoPrivKey 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 Private Key in JWK format:"
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// Sample output:
// {
// "kty": "EC",
// "crv": "P-256",
// "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE",
// "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU",
// "d": "EbVzfPnZPxfAyxqEZV05laAoJAl-_6Xt2O4mOB611sM"
// }
//
// 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",
// "d": "EbVzfPnZPxfAyxqEZV05laAoJAl-_6Xt2O4mOB611sM",
// "use": "enc",
// "kid": "123ABC"
// }
End_Procedure