code: public static void changePassphrase(Path pathToVault, String masterkeyFilename, byte[] pepper, CharSequence oldPassphrase, CharSequence newPassphrase)
  			throws InvalidPassphraseException, FileSystemNeedsMigrationException, IOException {
  		if (Migrators.get().needsMigration(pathToVault, masterkeyFilename)) {
  			throw new FileSystemNeedsMigrationException(pathToVault);
  		}
  		String normalizedOldPassphrase = Normalizer.normalize(oldPassphrase, Form.NFC);
  		String normalizedNewPassphrase = Normalizer.normalize(newPassphrase, Form.NFC);
  		Path masterKeyPath = pathToVault.resolve(masterkeyFilename);
  		Path backupKeyPath = pathToVault.resolve(masterkeyFilename + Constants.MASTERKEY_BACKUP_SUFFIX);
  		byte[] oldMasterkeyBytes = Files.readAllBytes(masterKeyPath);
  		byte[] newMasterkeyBytes = Cryptors.changePassphrase(CRYPTOR_PROVIDER, oldMasterkeyBytes, pepper, normalizedOldPassphrase, normalizedNewPassphrase);
  		Files.move(masterKeyPath, backupKeyPath, REPLACE_EXISTING, ATOMIC_MOVE);
  		Files.write(masterKeyPath, newMasterkeyBytes, CREATE_NEW, WRITE);
  	}
docs: Changes the passphrase of a vault at the given path.
  
  @param pathToVault Vault directory
  @param masterkeyFilename Name of the masterkey file
  @param pepper An application-specific pepper added to the salt during key-derivation (if applicable)
  @param oldPassphrase Current passphrase
  @param newPassphrase Future passphrase
  @throws InvalidPassphraseException If <code>oldPassphrase</code> can not be used to unlock the vault.
  @throws FileSystemNeedsMigrationException if the vault format needs to get updated.
  @throws IOException If the masterkey could not be read or written.
  @since 1.4.0