code: function recreateExistingHash(plainPassword, pbkdf2Password, onVerificationFinished) {
  	setImmediate(function () {
  		var pw = plainPassword;
  		var fields = [];
  		fields = pbkdf2Password.split(separator);
  		var storedIterations = Number(fields[2]);
  		var storedSalt = fields[3];
  		var recreatedPasswordForMySQL;
  		var recreatedHash;
  		recreatedHash = pbkdf2.pbkdf2Sync(pw, storedSalt, storedIterations, keyLen, algorithm).toString('base64');
  		recreatedPasswordForMySQL = tag + separator + algorithm + separator + iterations + separator + storedSalt + separator + recreatedHash;
  		if (pbkdf2Password === recreatedPasswordForMySQL) {
  			localEventEmitter.emit('passwordVerificationFinished', true, onVerificationFinished);
  		} else {
  			localEventEmitter.emit('passwordVerificationFinished', false, onVerificationFinished);
  		}
  	});
  }
docs: ================================================================
  This function is a callback that is launched when a
  'passwordRecreationStarted' event is triggered. Creates a new
  PBKDF2 password using the values specified as parameters and
  those oncluded in a previous PBKDF2 hash. It runs asynchronously
  and uses the format required by mosquitto-auth-plug. On success,
  it emits a 'passwordVerificationFinished' event to notify other
  functions.
  @description Recreates a PBKDF2 hash from a plain password and
  checks whether it matches the previous PBKDF2 hash.
  @param plainPassword The plain password to be checked.
  @param pbkdf2Password A PBKDF2 hash (in mosquitto-auth-plug
  format) to be compared with the plain password supplied.
  @param onVerificationFinished Callback function to be called
  once the verificaation process has finished. It is passed in to
  the next callback until it is necessary.
  @author Manuel Domínguez-Dorado <manuel.dominguez@enzinatec.com>
  @since 1.0
  ================================================================