public void Should_upgrade_the_secret_with_the_new_hash() { var config = _configProvider.GetHashConfiguration(); A.CallTo(() => _securePackedHashProvider.ComputePackedHashString(Secret, config.GetAlgorithmHashCode(), config.Iterations, config.GetSaltSizeInBytes())).MustHaveHappened(); }
public void Should_upgrade_the_secret_with_the_new_hash() { var config = _configProvider.GetHashConfiguration(); _securePackedHashProvider.AssertWasCalled(x => x.ComputePackedHashString(Secret, config.GetAlgorithmHashCode(), config.Iterations, config.GetSaltSizeInBytes())); }
public AutoUpgradingHashedSecretVerifierDecorator( IApiClientSecretProvider apiClientSecretProvider, ISecretVerifier next, IPackedHashConverter packedHashConverter, ISecurePackedHashProvider securePackedHashProvider, IHashConfigurationProvider hashConfigurationProvider) { _apiClientSecretProvider = apiClientSecretProvider; _next = next; _packedHashConverter = packedHashConverter; _securePackedHashProvider = securePackedHashProvider; _hashConfiguration = hashConfigurationProvider.GetHashConfiguration(); }
/// <summary> /// Generates a new Secret for the given ApiClient object; the new Secret is hashed, and the pre-hash plain text is returned /// </summary> /// <param name="apiClient">ApiClient entity for which a new secure secret should be generated</param> /// <param name="securePackedHashProvider">Hash provider service</param> /// <param name="hashConfigurationProvider">Hash configuration settings provider</param> /// <returns>Plain text value of Secret, before hasing algorithm has been applied</returns> public static string GenerateSecureClientSecret(this ApiClient apiClient, ISecurePackedHashProvider securePackedHashProvider, IHashConfigurationProvider hashConfigurationProvider) { var hashConfiguration = hashConfigurationProvider.GetHashConfiguration(); var plainTextSecret = apiClient.GenerateSecret(); var hashedSecret = securePackedHashProvider.ComputePackedHashString( plainTextSecret, hashConfiguration.GetAlgorithmHashCode(), hashConfiguration.Iterations, hashConfiguration.GetSaltSizeInBytes()); apiClient.Secret = hashedSecret; apiClient.SecretIsHashed = true; return(plainTextSecret); }