List of usage examples for org.bouncycastle.math.ec ECCurve validatePoint
public ECPoint validatePoint(BigInteger x, BigInteger y)
From source file:org.gluu.com.ox_push2.u2f.v2.cert.KeyPairGeneratorImpl.java
License:MIT License
public KeyPair keyPairFromJson(String keyPairJson) throws U2FException { BigInteger x = null;//w w w . j a va 2s . co m BigInteger y = null; BigInteger d = null; try { JSONObject jsonKeyPair = (JSONObject) new JSONTokener(keyPairJson).nextValue(); JSONObject jsonPrivateKey = jsonKeyPair.getJSONObject("privateKey"); d = new BigInteger(Utils.decodeHexString(jsonPrivateKey.getString("d"))); JSONObject jsonPublicKey = jsonKeyPair.getJSONObject("publicKey"); x = new BigInteger(Utils.decodeHexString(jsonPublicKey.getString("x"))); y = new BigInteger(Utils.decodeHexString(jsonPublicKey.getString("y"))); } catch (JSONException ex) { throw new U2FException("Failed to deserialize key pair from JSON", ex); } catch (DecoderException ex) { throw new U2FException("Failed to deserialize key pair from JSON", ex); } ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("secp256r1"); ECCurve curve = ecSpec.getCurve(); ECPoint validatePoint = curve.validatePoint(x, y); ECPublicKeySpec publicKeySpec = new ECPublicKeySpec(validatePoint, ecSpec); ECPrivateKeySpec privateKeySpec = new ECPrivateKeySpec(d, ecSpec); KeyFactory keyFactory = null; try { keyFactory = KeyFactory.getInstance("ECDSA", BOUNCY_CASTLE_PROVIDER); PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec); PublicKey publicKey = keyFactory.generatePublic(publicKeySpec); return new KeyPair(publicKey, privateKey); } catch (NoSuchAlgorithmException ex) { throw new U2FException("Failed to deserialize key pair from JSON", ex); } catch (InvalidKeySpecException ex) { throw new U2FException("Failed to deserialize key pair from JSON", ex); } }