/** * Saves public and private keys to specified streams. * * @param keyPair the key pair * @param privateKeyOutput the private key output stream * @param publicKeyOutput the public key output stream * @throws IOException Signals that an I/O exception has occurred. */ public static void saveKeyPair( KeyPair keyPair, OutputStream privateKeyOutput, OutputStream publicKeyOutput) throws IOException { PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); // Store Public Key. X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec( publicKey.getEncoded()); publicKeyOutput.write(x509EncodedKeySpec.getEncoded()); // Store Private Key. PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec( privateKey.getEncoded()); privateKeyOutput.write(pkcs8EncodedKeySpec.getEncoded()); }
PKCS8EncodedKeySpec spec = fact.getKeySpec(priv, PKCS8EncodedKeySpec.class); byte[] packed = spec.getEncoded(); String key64 = base64Encode(packed);
byte[] encoding = keySpec.getEncoded();
encoder.startSequence(); encoder.writeEncoded(publicSpec.getEncoded()); encoder.writeEncoded(privateSpec.getEncoded()); encoder.endSequence(); entry = new KeyStore.SecretKeyEntry(new SecretKeySpec(encoder.getEncoded(), DATA_OID));
/** * @since 0.9.25 */ public EdDSAPrivateKey(PKCS8EncodedKeySpec spec) throws InvalidKeySpecException { this(new EdDSAPrivateKeySpec(decode(spec.getEncoded()), EdDSANamedCurveTable.ED_25519_CURVE_SPEC)); }
/** * Returns base64 encoded PrivateKey * @param key PrivateKey * @return privatekey encoded string */ public static String encodePrivateKey(PrivateKey key) { try { KeyFactory keyFactory = CertUtils.getKeyFactory(); if (keyFactory == null) return null; PKCS8EncodedKeySpec spec = keyFactory.getKeySpec(key, PKCS8EncodedKeySpec.class); return new String(org.bouncycastle.util.encoders.Base64.encode(spec.getEncoded()), Charset.forName("UTF-8")); } catch (InvalidKeySpecException e) { s_logger.error("Unable to get KeyFactory:" + e.getMessage()); } return null; }
PKCS8EncodedKeySpec pkcsKeySpec = new PKCS8EncodedKeySpec( privateKey.getEncoded()); FileOutputStream fos = new FileOutputStream(strPathFilePrivbKey); fos.write(pkcsKeySpec.getEncoded());
/** * Returns the private key of a key pair as string * @param key * @return Private Key as string */ public static String getPrivateKey(KeyPair key) { return encodeBase64(new PKCS8EncodedKeySpec(key.getPrivate().getEncoded()).getEncoded()); }
public void writePrivateKey(String fileName) throws IOException { PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(this.keyPair .getPrivate().getEncoded()); FileOutputStream fos = null; try { fos = new FileOutputStream(fileName); fos.write(keySpec.getEncoded()); } catch (FileNotFoundException e) { throw new IOException(e); } finally { fos.close(); } }
public void generate(FileOutputStream pubKeyFos, FileOutputStream privKeyFos) throws IOException, NoSuchAlgorithmException { SecureRandom sr = new SecureRandom(); KeyPairGenerator keyGen = KeyPairGenerator.getInstance(KEY_ALGO); keyGen.initialize(KEY_SIZE, sr); KeyPair keypair = keyGen.generateKeyPair(); PrivateKey privKey = keypair.getPrivate(); PublicKey pubKey = keypair.getPublic(); pubKeyFos.write(pubKey.getEncoded()); PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(privKey.getEncoded()); privKeyFos.write(privKeySpec.getEncoded()); } }
@Override protected void serialize(final Type type, final Object object, final DataOutputStream dos) throws IOException { final RSAPrivateKey key = (RSAPrivateKey) object; final byte[] encoded = new PKCS8EncodedKeySpec(key.getEncoded()).getEncoded(); dos.writeInt(encoded.length); dos.write(encoded); }
private static void buildAndSaveAsymKeyPair() throws IOException, NoSuchAlgorithmException { KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA"); keyGenerator.initialize(1024, srand); KeyPair keyPair = keyGenerator.generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicKey.getEncoded()); FileOutputStream fos = new FileOutputStream(pubKeyPath); fos.write(x509EncodedKeySpec.getEncoded()); fos.close(); PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(privateKey.getEncoded()); fos = new FileOutputStream(priKeyPath); fos.write(pkcs8EncodedKeySpec.getEncoded()); fos.close(); }
private static void buildAndSaveAsymKeyPair() throws IOException, NoSuchAlgorithmException { KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA"); keyGenerator.initialize(1024, srand); KeyPair keyPair = keyGenerator.generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); PublicKey publicKey = keyPair.getPublic(); X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicKey.getEncoded()); FileOutputStream fos = new FileOutputStream(pubKeyPath); fos.write(x509EncodedKeySpec.getEncoded()); fos.close(); PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(privateKey.getEncoded()); fos = new FileOutputStream(priKeyPath); fos.write(pkcs8EncodedKeySpec.getEncoded()); fos.close(); }
protected void saveKeys() { { final PKCS8EncodedKeySpec privateKetSpec = new PKCS8EncodedKeySpec(privateKey.get() .getEncoded()); setPrivateKeyBytes(privateKetSpec.getEncoded()); } { X509EncodedKeySpec publicSpec = new X509EncodedKeySpec(publicKey.get().getEncoded()); setPublicKeyBytes(publicSpec.getEncoded()); } }
public EdDSAPrivateKey(PKCS8EncodedKeySpec spec) throws InvalidKeySpecException { this(new EdDSAPrivateKeySpec(decode(spec.getEncoded()), EdDSANamedCurveTable.ED_25519_CURVE_SPEC)); }
public static String privateKey2String(Key key) throws NoSuchAlgorithmException, InvalidKeySpecException{ sun.misc.BASE64Encoder base64encoder = new sun.misc.BASE64Encoder(); KeyFactory keyFactory= KeyFactory.getInstance("RSA"); PKCS8EncodedKeySpec pKCS8EncodedKeySpec = keyFactory.getKeySpec(key, PKCS8EncodedKeySpec.class); byte[] buffer1 = pKCS8EncodedKeySpec.getEncoded(); return base64encoder.encode(buffer1); }
/** * Reads the private key algorithm from the encoded PKCS #8 private key info structure. */ private static String pkcs8PrivateKeyAlgorithm(PKCS8EncodedKeySpec keySpec) throws InvalidKeySpecException, NoSuchAlgorithmException { ByteBuffer encoded = ByteBuffer.wrap(keySpec.getEncoded()); expectTag(encoded, (byte) 0x30); if (expectTag(encoded, (byte) 0x02) != 1 || encoded.get() != 0) { throw new InvalidKeySpecException("PKCS #8 private key info, expected version 0"); } expectTag(encoded, (byte) 0x30); int len = expectTag(encoded, (byte) 0x06); String oid = readOid((ByteBuffer) encoded.slice().limit(len)); encoded.position(encoded.position() + len); return oidToJcaAlgorithm(oid); }
public EdDSAPrivateKey(PKCS8EncodedKeySpec spec) throws InvalidKeySpecException { this(new EdDSAPrivateKeySpec(decode(spec.getEncoded()), EdDSANamedCurveTable.getByName("Ed25519"))); }
protected PrivateKey engineGeneratePrivate( KeySpec keySpec) throws InvalidKeySpecException { if (keySpec instanceof PKCS8EncodedKeySpec) { try { return JDKKeyFactory.createPrivateKeyFromDERStream( new ByteArrayInputStream(((PKCS8EncodedKeySpec)keySpec).getEncoded())); } catch (Exception e) { throw (InvalidKeySpecException)new InvalidKeySpecException(e.getMessage()).initCause(e); } } throw new InvalidKeySpecException("Unknown KeySpec type."); }
static PrivateKey getPrivateKey(PKCS8EncodedKeySpec keySpec, int type) throws InvalidKeySpecException { PKCS8EncodedKeySpec pkcs8KeySpec = (PKCS8EncodedKeySpec) keySpec; final OpenSSLKey key; try { key = new OpenSSLKey(NativeCrypto.d2i_PKCS8_PRIV_KEY_INFO(pkcs8KeySpec.getEncoded())); } catch (Exception e) { throw new InvalidKeySpecException(e); } if (NativeCrypto.EVP_PKEY_type(key.getPkeyContext()) != type) { throw new InvalidKeySpecException("Unexpected key type"); } try { return key.getPrivateKey(); } catch (NoSuchAlgorithmException e) { throw new InvalidKeySpecException(e); } }