docs: public static PrivateKey readPasswordProtectedPrivateKey(final byte[] encryptedPrivateKeyBytes,
  		final String password, final String algorithm)
  		throws IOException, NoSuchAlgorithmException, NoSuchPaddingException,
  		InvalidKeySpecException, InvalidKeyException, InvalidAlgorithmParameterException
  	{
  		final EncryptedPrivateKeyInfo encryptedPrivateKeyInfo = new EncryptedPrivateKeyInfo(
  			encryptedPrivateKeyBytes);
  		final String algName = encryptedPrivateKeyInfo.getAlgName();
  		final Cipher cipher = CipherFactory.newCipher(algName);
  		final KeySpec pbeKeySpec = KeySpecFactory.newPBEKeySpec(password);
  		final SecretKeyFactory secretKeyFactory = SecretKeyFactoryExtensions
  			.newSecretKeyFactory(algName);
  		final Key pbeKey = secretKeyFactory.generateSecret(pbeKeySpec);
  		final AlgorithmParameters algParameters = encryptedPrivateKeyInfo.getAlgParameters();
  		cipher.init(Cipher.DECRYPT_MODE, pbeKey, algParameters);
  		final KeySpec pkcs8KeySpec = encryptedPrivateKeyInfo.getKeySpec(cipher);
  		final KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
  		return keyFactory.generatePrivate(pkcs8KeySpec);
  	}