code: 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);
      }
docs: 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