public EllipticCurveJsonWebKey(Map<String, Object> params, String jcaProvider) throws JoseException
{
super(params, jcaProvider);
curveName = getString(params, CURVE_MEMBER_NAME, true);
ECParameterSpec curve = EllipticCurves.getSpec(curveName);
BigInteger x = getBigIntFromBase64UrlEncodedParam(params, X_MEMBER_NAME, true);
BigInteger y = getBigIntFromBase64UrlEncodedParam(params, Y_MEMBER_NAME, true);
EcKeyUtil keyUtil = new EcKeyUtil(jcaProvider, null);
key = keyUtil.publicKey(x, y, curve);
checkForBareKeyCertMismatch();
if (params.containsKey(PRIVATE_KEY_MEMBER_NAME))
{
BigInteger d = getBigIntFromBase64UrlEncodedParam(params, PRIVATE_KEY_MEMBER_NAME, false);
privateKey = keyUtil.privateKey(d, curve);
}
removeFromOtherParams(CURVE_MEMBER_NAME, X_MEMBER_NAME, Y_MEMBER_NAME, PRIVATE_KEY_MEMBER_NAME);
}