Perl
Perl
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 Perl Downloads
use chilkat();
$success = 0;
# Note: This example requires Chilkat v9.5.0.66 or later.
# Load a PEM file into memory.
$sbPem = chilkat::CkStringBuilder->new();
$success = $sbPem->LoadFile("qa_data/pem/ecc_public.pem","utf-8");
if ($success != 1) {
print "Failed to load PEM file." . "\r\n";
exit;
}
# Load the PEM into a public key object.
$pubKey = chilkat::CkPublicKey->new();
$success = $pubKey->LoadFromString($sbPem->getAsString());
if ($success != 1) {
print $pubKey->lastErrorText() . "\r\n";
exit;
}
# Get the public key in JWK format:
$jwk = $pubKey->getJwk();
# 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:
$json = chilkat::CkJsonObject->new();
$json->Load($jwk);
$json->put_EmitCompact(0);
print "ECC Public Key in JWK format:" . "\r\n";
print $json->emit() . "\r\n";
# Sample output:
# {
# "kty": "EC",
# "crv": "P-256",
# "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE",
# "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU"
# }
#
# Additional information can be added like this:
$json->AppendString("use","enc");
$json->AppendString("kid","123ABC");
# Now examine the JSON:
print $json->emit() . "\r\n";
# {
# "kty": "EC",
# "crv": "P-256",
# "x": "oBUyo8CQAFPeYPvv78ylh5MwFZjTCLQeb042TjiMJxE",
# "y": "vvQyxZkUjJQUPU_0bCy3Pj5qQdfu8jwEfqEeYGZ95CU",
# "use": "enc",
# "kid": "123ABC"
# }