private KeyPair loadKeyPair() throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
        // Read Private Key
        final File filePrivateKey = getKeyPath(KeyType.PRIVATE);

        // Read Public Key
        final File filePublicKey = getKeyPath(KeyType.PUBLIC);

        byte[] encodedPrivateKey;
        byte[] encodedPublicKey;

        try (InputStream pvtfis = Files.newInputStream(filePrivateKey.toPath());
             InputStream pubfis = Files.newInputStream(filePublicKey.toPath())) {

            encodedPrivateKey = new byte[(int) filePrivateKey.length()];
            pvtfis.read(encodedPrivateKey);

            encodedPublicKey = new byte[(int) filePublicKey.length()];
            pubfis.read(encodedPublicKey);
        }

        // Generate KeyPair
        final KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        final X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(encodedPublicKey);
        final PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
        final PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(encodedPrivateKey);
        final PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);

        return this.keyPair = new KeyPair(publicKey, privateKey);
    }
private KeyPair loadKeyPair ( ) throws IOException , NoSuchAlgorithmException , InvalidKeySpecException { final File filePrivateKey = getKeyPath ( KeyType . PRIVATE ) ; final File filePublicKey = getKeyPath ( KeyType . PUBLIC ) ; byte [ ] encodedPrivateKey ; byte [ ] encodedPublicKey ; try ( InputStream pvtfis = Files . newInputStream ( filePrivateKey . toPath ( ) ) ; InputStream pubfis = Files . newInputStream ( filePublicKey . toPath ( ) ) ) { encodedPrivateKey = new byte [ ( int ) filePrivateKey . length ( ) ] ; pvtfis . read ( encodedPrivateKey ) ; encodedPublicKey = new byte [ ( int ) filePublicKey . length ( ) ] ; pubfis . read ( encodedPublicKey ) ; } final KeyFactory keyFactory = KeyFactory . getInstance ( "RSA" ) ; final X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec ( encodedPublicKey ) ; final PublicKey publicKey = keyFactory . generatePublic ( publicKeySpec ) ; final PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec ( encodedPrivateKey ) ; final PrivateKey privateKey = keyFactory . generatePrivate ( privateKeySpec ) ; return this . keyPair = new KeyPair ( publicKey , privateKey ) ; }
Loads a key pair.
@return a KeyPair
@throws IOException if the file cannot be read
@throws NoSuchAlgorithmException if the algorithm cannot be found
@throws InvalidKeySpecException if the algorithm's key spec is incorrect