class PasswordEncoderImpl implements PasswordEncoder {

    @Override
    public String encode(@NonNull String rawPassword) {
        String encodedPassword = this.updatableBCrypt.hash(rawPassword, this.keyStore.decryptString(this.customPreference.getSalt(), Constants.ALIAS_SALT));
        return keyStore.encryptString(encodedPassword, Constants.ALIAS_PASSWORD_KEY);
    }

    public  PasswordEncoderImpl(CustomPreference customPreference, KeyStore keyStore, UpdatableBCrypt updatableBCrypt);

}