Error:
unable to write 'random state'
e is 65537 (0x10001)
solution:
sudo rm ~/.rnd
Error:
unable to write 'random state'
e is 65537 (0x10001)
solution:
sudo rm ~/.rnd
#!/usr/bin/env bash | |
openssl genrsa -out private_key.pem 4096 | |
openssl rsa -pubout -in private_key.pem -out public_key.pem | |
# convert private key to pkcs8 format in order to import it from Java | |
openssl pkcs8 -topk8 -in private_key.pem -inform pem -out private_key_pkcs8.pem -outform pem -nocrypt |
import java.io.IOException; | |
import java.net.URISyntaxException; | |
import java.nio.file.Files; | |
import java.nio.file.Paths; | |
import java.security.KeyFactory; | |
import java.security.NoSuchAlgorithmException; | |
import java.security.PrivateKey; | |
import java.security.interfaces.RSAPublicKey; | |
import java.security.spec.InvalidKeySpecException; | |
import java.security.spec.PKCS8EncodedKeySpec; | |
import java.security.spec.X509EncodedKeySpec; | |
import java.util.Base64; | |
/** | |
* This file is intended to be used on a IDE for testing purposes. | |
* ClassLoader.getSystemResource won't work in a JAR | |
*/ | |
public class Main { | |
public static void main(String[] args) throws InvalidKeySpecException, NoSuchAlgorithmException, IOException, URISyntaxException { | |
String privateKeyContent = new String(Files.readAllBytes(Paths.get(ClassLoader.getSystemResource("private_key_pkcs8.pem").toURI()))); | |
String publicKeyContent = new String(Files.readAllBytes(Paths.get(ClassLoader.getSystemResource("public_key.pem").toURI()))); | |
privateKeyContent = privateKeyContent.replaceAll("\\n", "").replace("-----BEGIN PRIVATE KEY-----", "").replace("-----END PRIVATE KEY-----", ""); | |
publicKeyContent = publicKeyContent.replaceAll("\\n", "").replace("-----BEGIN PUBLIC KEY-----", "").replace("-----END PUBLIC KEY-----", "");; | |
KeyFactory kf = KeyFactory.getInstance("RSA"); | |
PKCS8EncodedKeySpec keySpecPKCS8 = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyContent)); | |
PrivateKey privKey = kf.generatePrivate(keySpecPKCS8); | |
X509EncodedKeySpec keySpecX509 = new X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyContent)); | |
RSAPublicKey pubKey = (RSAPublicKey) kf.generatePublic(keySpecX509); | |
System.out.println(privKey); | |
System.out.println(pubKey); | |
} | |
} |