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); } }
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); } }
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 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); }
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); } }
private static PrivateKey generateEcPrivateKey(GOSTCurve curve, BigInteger s, String keyFactoryAlg) { try { ECParameterSpec ecParameterSpec = getEcParameterSpec(curve); ECPrivateKeySpec privateKeySpec = new ECPrivateKeySpec(s, ecParameterSpec); return KeyFactory.getInstance(keyFactoryAlg).generatePrivate(privateKeySpec); } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { LOGGER.error("Could not generate GOST private key", e); return null; } }
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); } }
public static ECPrivateKey getECPrivateKey(String curve, byte[] privateKey) { try { ECParameterSpec params = getECParameterSpec(curve, true); ECPrivateKeySpec keySpec = new ECPrivateKeySpec( toBigInteger(privateKey), params); KeyFactory kf = KeyFactory.getInstance("EC"); return (ECPrivateKey) kf.generatePrivate(keySpec); } catch (Exception ex) { throw new SecurityException(ex); } } private static ECParameterSpec getECParameterSpec(String curve, boolean isPrivate)
public static ECPrivateKey getECPrivateKey(String curve, byte[] privateKey) { try { ECParameterSpec params = getECParameterSpec(curve, true); ECPrivateKeySpec keySpec = new ECPrivateKeySpec( toBigInteger(privateKey), params); KeyFactory kf = KeyFactory.getInstance("EC"); return (ECPrivateKey) kf.generatePrivate(keySpec); } catch (Exception ex) { throw new SecurityException(ex); } } private static ECParameterSpec getECParameterSpec(String curve, boolean isPrivate)
/** Returns an {@code ECPrivateKey} from {@code curve} type and {@code keyValue}. */ public static ECPrivateKey getEcPrivateKey(CurveType curve, final byte[] keyValue) throws GeneralSecurityException { ECParameterSpec ecParams = getCurveSpec(curve); BigInteger privValue = new BigInteger(1, keyValue); ECPrivateKeySpec spec = new ECPrivateKeySpec(privValue, ecParams); KeyFactory kf = EngineFactory.KEY_FACTORY.getInstance("EC"); return (ECPrivateKey) kf.generatePrivate(spec); }
public ECPrivateKey privateKey(BigInteger d, ECParameterSpec spec) throws JoseException { ECPrivateKeySpec ecPrivateKeySpec = new ECPrivateKeySpec(d, spec); try { PrivateKey privateKey = getKeyFactory().generatePrivate(ecPrivateKeySpec); return (ECPrivateKey) privateKey; } catch (InvalidKeySpecException e) { throw new JoseException("Invalid key spec: " + e, 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));
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));
public static PrivateKey getPrivateKeyFromECBigIntAndCurve(BigInteger s, String curveName) { X9ECParameters ecCurve = ECNamedCurveTable.getByName(curveName); ECParameterSpec ecParameterSpec = new ECNamedCurveSpec(curveName, ecCurve.getCurve(), ecCurve.getG(), ecCurve.getN(), ecCurve.getH(), ecCurve.getSeed()); ECPrivateKeySpec privateKeySpec = new ECPrivateKeySpec(s, ecParameterSpec); try { KeyFactory keyFactory = KeyFactory.getInstance("EC"); return keyFactory.generatePrivate(privateKeySpec); } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { e.printStackTrace(); return null; } }
private PrivateKey createECDSAPrivateKey(KeyType kt, PlainBuffer buffer, String name) throws GeneralSecurityException, Buffer.BufferException { PublicKey pk = 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); } }
default ECPrivateKey extractECDSAPrivateKey( NamedResource resourceKey, ECPublicKey pubKey, ECSecretBCPGKey bcKey) throws IOException, GeneralSecurityException { if (bcKey == null) { return null; } if (!SecurityUtils.isECCSupported()) { throw new NoSuchProviderException("ECC not supported"); } ECParameterSpec params = pubKey.getParams(); BigInteger x = bcKey.getX(); return generatePrivateKey(KeyUtils.EC_ALGORITHM, ECPrivateKey.class, new ECPrivateKeySpec(x, params)); }
@Override public ECPrivateKey clonePrivateKey(ECPrivateKey key) throws GeneralSecurityException { if (!SecurityUtils.isECCSupported()) { throw new NoSuchProviderException("ECC not supported"); } if (key == null) { return null; } ECParameterSpec params = key.getParams(); if (params == null) { throw new InvalidKeyException("Missing parameters in key"); } return generatePrivateKey(new ECPrivateKeySpec(key.getS(), params)); }
@Override public ECPrivateKey clonePrivateKey(ECPrivateKey key) throws GeneralSecurityException { if (!SecurityUtils.isECCSupported()) { throw new NoSuchProviderException("ECC not supported"); } if (key == null) { return null; } ECParameterSpec params = key.getParams(); if (params == null) { throw new InvalidKeyException("Missing parameters in key"); } return generatePrivateKey(new ECPrivateKeySpec(key.getS(), params)); }
@Override public ECPrivateKey clonePrivateKey(ECPrivateKey key) throws GeneralSecurityException { if (!SecurityUtils.isECCSupported()) { throw new NoSuchProviderException("ECC not supported"); } if (key == null) { return null; } ECParameterSpec params = key.getParams(); if (params == null) { throw new InvalidKeyException("Missing parameters in key"); } return generatePrivateKey(new ECPrivateKeySpec(key.getS(), params)); }
@Override public ECPrivateKey clonePrivateKey(ECPrivateKey key) throws GeneralSecurityException { if (!SecurityUtils.isECCSupported()) { throw new NoSuchProviderException("ECC not supported"); } if (key == null) { return null; } ECParameterSpec params = key.getParams(); if (params == null) { throw new InvalidKeyException("Missing parameters in key"); } return generatePrivateKey(new ECPrivateKeySpec(key.getS(), params)); }