public bool CheckPassword(string pass) { var cryptoHelper = new AuthCryptoHelper(Crypto.Conf); var inputPass = cryptoHelper.CalculateUserPasswordHash(pass, Crypto.Salt); return(StructuralComparisons.StructuralEqualityComparer.Equals(inputPass, Crypto.Key)); }
/// <summary> /// Set the password on a file. This will overwrite an existing password. /// </summary> /// <param name="file"></param> /// <param name="pass"></param> /// <returns></returns> public async Task SetFilePasswordAsync(StoredFile file, string pass) { if (pass == null) // No password { file.Crypto = null; } var cryptoConf = PasswordCryptoConfiguration.CreateDefault(); var cryptoHelper = new AuthCryptoHelper(cryptoConf); var pwSalt = cryptoHelper.GenerateSalt(); file.Crypto = new ItemCrypto { Conf = cryptoConf, Salt = pwSalt, Key = cryptoHelper.CalculateUserPasswordHash(pass, pwSalt) }; await UpdateStoredFileInDatabaseAsync(file); }