Refine search
private static PrivateKey toPrivateKey(KeyFactory kf, BigInteger privKeyValue, ECParameterSpec keySpec) { ECPrivateKeySpec privateKeySpec = new ECPrivateKeySpec(privKeyValue, keySpec); try { return kf.generatePrivate(privateKeySpec); } catch (InvalidKeySpecException e) { throw new JwtException("Failed to generate EC private key", e); } }
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); ECNamedCurveParameterSpec spec = ECNamedCurveTable.getParameterSpec("secp192r1"); ECPrivateKeySpec ecPrivateKeySpec = new ECPrivateKeySpec(new BigInteger(1, privateKeyBytes), spec); ECNamedCurveSpec params = new ECNamedCurveSpec("secp192r1", spec.getCurve(), spec.getG(), spec.getN()); java.security.spec.ECPoint w = new java.security.spec.ECPoint(new BigInteger(1, Arrays.copyOfRange(publicKeyBytes, 0, 24)), new BigInteger(1, Arrays.copyOfRange(publicKeyBytes, 24, 48))); PublicKey publicKey = factory.generatePublic(new java.security.spec.ECPublicKeySpec(w, params));
ECCurves curve = ECCurves.fromCurveParameters(prvSpec.getParams()); if (curve == null) { throw new StreamCorruptedException("Unknown curve"); ECPublicKeySpec pubSpec = new ECPublicKeySpec(w, prvSpec.getParams()); return new SimpleImmutableEntry<>(pubSpec, prvSpec);
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); ECNamedCurveParameterSpec spec = ECNamedCurveTable.getParameterSpec("secp192r1"); ECPrivateKeySpec ecPrivateKeySpec = new ECPrivateKeySpec(new BigInteger(1, privateKeyBytes), spec); ECNamedCurveSpec params = new ECNamedCurveSpec("secp192r1", spec.getCurve(), spec.getG(), spec.getN()); java.security.spec.ECPoint w = new java.security.spec.ECPoint(new BigInteger(1, Arrays.copyOfRange(publicKeyBytes, 0, 24)), new BigInteger(1, Arrays.copyOfRange(publicKeyBytes, 24, 48))); PublicKey publicKey = factory.generatePublic(new java.security.spec.ECPublicKeySpec(w, params));
ECCurves curve = ECCurves.fromCurveParameters(prvSpec.getParams()); if (curve == null) { throw new StreamCorruptedException("Unknown curve"); ECPublicKeySpec pubSpec = new ECPublicKeySpec(w, prvSpec.getParams()); return new SimpleImmutableEntry<>(pubSpec, prvSpec);
@Override KeyPair generateKeyPair(TypesReader tr) throws GeneralSecurityException, IOException { String curveName = tr.readString(); if (!curveName.equals(this.curveName)) { throw new IOException("Incorrect curve name: " + curveName); } byte[] groupBytes = tr.readByteString(); BigInteger privateKey = tr.readMPINT(); ECPoint group = decodePoint(groupBytes, ecParameterSpec.getCurve()); if (null == group) { throw new IOException("Invalid ECDSA group"); } KeySpec keySpec = new ECPublicKeySpec(group, ecParameterSpec); ECPrivateKeySpec privateKeySpec = new ECPrivateKeySpec(privateKey, ecParameterSpec); KeyFactory kf = KeyFactory.getInstance("EC"); return new KeyPair(kf.generatePublic(keySpec), kf.generatePrivate(privateKeySpec)); } }
private PrivateKey createECDSAPrivateKey(KeyType kt, PlainBuffer buffer, String name) throws GeneralSecurityException, Buffer.BufferException { kt.readPubKeyFromBuffer(buffer); // Public key BigInteger s = new BigInteger(1, buffer.readBytes()); X9ECParameters ecParams = NISTNamedCurves.getByName(name); ECNamedCurveSpec ecCurveSpec = new ECNamedCurveSpec(name, ecParams.getCurve(), ecParams.getG(), ecParams.getN()); ECPrivateKeySpec pks = new ECPrivateKeySpec(s, ecCurveSpec); return SecurityUtils.getKeyFactory("ECDSA").generatePrivate(pks); } }
ECCurves curve = ECCurves.fromCurveParameters(prvSpec.getParams()); if (curve == null) { throw new StreamCorruptedException("Unknown curve"); ECPublicKeySpec pubSpec = new ECPublicKeySpec(w, prvSpec.getParams()); return new Pair<>(pubSpec, prvSpec);
1); // h ECPrivateKeySpec priKey = new ECPrivateKeySpec( new BigInteger("876300101507107567501066130761671078357010671067781776716671676178726717"), // d spec); ECPublicKeySpec pubKey = new ECPublicKeySpec( ECPointUtil.decodePoint(curve, Hex.decode("025b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c70")), // Q spec);
private static ECPrivateKey cvtToJavaECKey(SigningPrivateKey pk) throws GeneralSecurityException { SigType type = pk.getType(); byte[] b = pk.getData(); BigInteger s = new NativeBigInteger(1, b); // see ECConstants re: casting ECPrivateKeySpec ks = new ECPrivateKeySpec(s, (ECParameterSpec) type.getParams()); KeyFactory kf = KeyFactory.getInstance("EC"); return (ECPrivateKey) kf.generatePrivate(ks); }
protected KeyPair extractEC(String expectedCurveName, ECParameterSpec spec) throws GeneralSecurityException { String curveName = getString(); if (!expectedCurveName.equals(curveName)) { throw new InvalidKeySpecException("extractEC(" + expectedCurveName + ") mismatched curve name: " + curveName); } byte[] groupBytes = getBytes(); BigInteger exponent = getMPInt(); if (spec == null) { throw new InvalidKeySpecException("extractEC(" + expectedCurveName + ") missing parameters for curve"); } ECPoint group; try { group = ECCurves.octetStringToEcPoint(groupBytes); } catch (RuntimeException e) { throw new InvalidKeySpecException("extractEC(" + expectedCurveName + ")" + " failed (" + e.getClass().getSimpleName() + ")" + " to decode EC group for curve: " + e.getMessage(), e); } KeyFactory keyFactory = SecurityUtils.getKeyFactory(KeyUtils.EC_ALGORITHM); PublicKey pubKey = keyFactory.generatePublic(new ECPublicKeySpec(group, spec)); PrivateKey privKey = keyFactory.generatePrivate(new ECPrivateKeySpec(exponent, spec)); return new KeyPair(pubKey, privKey); }
protected ECPrivateKeySpec createPrivateKeySpec(byte[] encodedKey) throws InvalidKeySpecException, NoSuchAlgorithmException { // make a private key from the private point s BigInteger s = new BigInteger(encodedKey); return new ECPrivateKeySpec(s, ecParameterSpec); }
protected KeyPair extractEC(String expectedCurveName, ECParameterSpec spec) throws GeneralSecurityException { String curveName = getString(); if (!expectedCurveName.equals(curveName)) { throw new InvalidKeySpecException("extractEC(" + expectedCurveName + ") mismatched curve name: " + curveName); } byte[] groupBytes = getBytes(); BigInteger exponent = getMPInt(); if (spec == null) { throw new InvalidKeySpecException("extractEC(" + expectedCurveName + ") missing parameters for curve"); } ECPoint group; try { group = ECCurves.octetStringToEcPoint(groupBytes); } catch (RuntimeException e) { throw new InvalidKeySpecException("extractEC(" + expectedCurveName + ")" + " failed (" + e.getClass().getSimpleName() + ")" + " to decode EC group for curve: " + e.getMessage(), e); } KeyFactory keyFactory = SecurityUtils.getKeyFactory(KeyUtils.EC_ALGORITHM); PublicKey pubKey = keyFactory.generatePublic(new ECPublicKeySpec(group, spec)); PrivateKey privKey = keyFactory.generatePrivate(new ECPrivateKeySpec(exponent, spec)); return new KeyPair(pubKey, privKey); }
private static PrivateKey getECPrivateKey(byte[] d, ECParameterSpec curveSpec, Provider provider) { try { ECPrivateKeySpec priSpec = new ECPrivateKeySpec(new BigInteger(1, d), curveSpec); KeyFactory kf = provider != null ? KeyFactory.getInstance("EC", provider) : KeyFactory.getInstance("EC", "SunEC"); return (ECPrivateKey) kf.generatePrivate(priSpec); } catch (GeneralSecurityException e) { throw new IllegalStateException(e); } }