generateP256PublicKeyFromJWK static method

String generateP256PublicKeyFromJWK(
  1. JWK jwk
)

Implementation

static String generateP256PublicKeyFromJWK(JWK jwk) {
  final xBytes = base64Url.decode(_normalizeBase64(jwk.publicKey.x));
  final yBytes = base64Url.decode(_normalizeBase64(jwk.publicKey.y));

  final ecDomain = ECDomainParameters('prime256v1');
  final x = BigInt.parse(hex.encode(xBytes), radix: 16);
  final y = BigInt.parse(hex.encode(yBytes), radix: 16);

  final q = ecDomain.curve.createPoint(x, y);
  final pubKeyParams = ECPublicKey(q, ecDomain);

  final encoded = pubKeyParams.Q!.getEncoded(false); // Uncompressed point
  return hex.encode(encoded);
}