发布时间:2025-12-09 11:46:37 浏览次数:1
import org.bouncycastle.openssl.PEMWriter; //导入依赖的package包/类protected void saveKeyPairAndCertificateToFile() throws Exception { if(localPrivateKeyFile==null){ LOGGER.info("not saving private key nor certificate"); return; } //Encode in PEM format, the format prefered by openssl// if(false){// PEMWriter pemWriter=new PEMWriter(new FileWriter(localPrivateKeyFile));// pemWriter.writeObject(localPrivateECKey);// pemWriter.close();// }// else{ String keyText = "-----BEGIN EC PRIVATE KEY-----\n" + Base64.encode(Unpooled.wrappedBuffer(localPrivateECKey.getEncoded()), true).toString(CharsetUtil.US_ASCII) + "\n-----END EC PRIVATE KEY-----\n"; Files.write(keyText, localPrivateKeyFile, CharsetUtil.US_ASCII); Files.write(localId.toString(), new File(localPrivateKeyFile.getParentFile(), "localPublic.hash"), CharsetUtil.US_ASCII);// } PEMWriter certificateWriter=new PEMWriter(new FileWriter(localCertificateFile)); certificateWriter.writeObject(cert); certificateWriter.close(); LOGGER.info("Saved to "+localCertificateFile.getAbsolutePath()); } import org.bouncycastle.openssl.PEMWriter; //导入依赖的package包/类private void encryptedTest(PrivateKey key, ASN1ObjectIdentifier algorithm) throws NoSuchProviderException, NoSuchAlgorithmException, IOException{ ByteArrayOutputStream bOut = new ByteArrayOutputStream(); PEMWriter pWrt = new PEMWriter(new OutputStreamWriter(bOut), "BC"); PKCS8Generator pkcs8 = new PKCS8Generator(key, algorithm, "BC"); pkcs8.setPassword("hello".toCharArray()); pWrt.writeObject(pkcs8); pWrt.close(); PEMReader pRd = new PEMReader(new InputStreamReader(new ByteArrayInputStream(bOut.toByteArray())), new PasswordFinder() { public char[] getPassword() { return "hello".toCharArray(); } }); PrivateKey rdKey = (PrivateKey)pRd.readObject(); assertEquals(key, rdKey);} import org.bouncycastle.openssl.PEMWriter; //导入依赖的package包/类/** * Converts RSA private key to PEM string. * * @param rsaKeyPair * * @return PEM string */public static String getPEMStringFromRSAKeyPair(RSAKeyPair rsaKeyPair) { StringWriter pemStrWriter = new StringWriter(); PEMWriter pemWriter = new PEMWriter(pemStrWriter); try { KeyPair keyPair = new KeyPair(rsaKeyPair.getPublic(), rsaKeyPair.getPrivate()); //pemWriter.writeObject(keyPair); pemWriter.writeObject(keyPair.getPrivate()); //pemWriter.flush(); pemWriter.close(); } catch (IOException e) { log.warning("Caught exception:" + e.getMessage()); return ""; } return pemStrWriter.toString();} import org.bouncycastle.openssl.PEMWriter; //导入依赖的package包/类@SuppressWarnings("deprecation")public static byte[] toPem(Object object) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try (PEMWriter writer = new PEMWriter(new OutputStreamWriter(outputStream))) { writer.writeObject(object); writer.flush(); return outputStream.toByteArray(); }}