protected override void Arrange() { _apiClientIdentity = new ApiClientIdentity { Key = "MyKey" }; var apiClientIdentityProvider = mocks.Stub <IApiClientIdentityProvider>(); apiClientIdentityProvider.Stub(x => x.GetApiClientIdentity("MyKey")) .Return(_apiClientIdentity); var apiClientSecret = new ApiClientSecret { Secret = "MySecret" }; var apiClientSecretProvider = mocks.Stub <IApiClientSecretProvider>(); apiClientSecretProvider.Expect(x => x.GetSecret("MyKey")) .Return(apiClientSecret); var secretVerifier = mocks.Stub <ISecretVerifier>(); secretVerifier.Expect(x => x.VerifySecret("MyKey", "MySecret", apiClientSecret)) .Return(true); _apiClientAuthenticator = new ApiClientAuthenticator(apiClientIdentityProvider, apiClientSecretProvider, secretVerifier); }
protected override void Arrange() { _apiClientIdentity = new ApiClientIdentity { Key = "MyKey" }; var apiClientIdentityProvider = Stub <IApiClientIdentityProvider>(); A.CallTo(() => apiClientIdentityProvider.GetApiClientIdentity("MyKey")) .Returns(_apiClientIdentity); var apiClientSecret = new ApiClientSecret { Secret = "MySecret" }; var apiClientSecretProvider = Stub <IApiClientSecretProvider>(); A.CallTo(() => apiClientSecretProvider.GetSecret("MyKey")) .Returns(apiClientSecret); var secretVerifier = Stub <ISecretVerifier>(); A.CallTo(() => secretVerifier.VerifySecret("MyKey", "MySecret", apiClientSecret)) .Returns(true); _apiClientAuthenticator = new ApiClientAuthenticator(apiClientIdentityProvider, apiClientSecretProvider, secretVerifier); }
public void SetSecret(string key, ApiClientSecret secret) { var client = GetClient(key); client.Secret = secret.Secret; client.SecretIsHashed = secret.IsHashed; _clientAppRepo.UpdateClient(client); }
protected override void Arrange() { var packedHashConverter = new PackedHashConverter(); var originalHashAlgorithm = 1495316179; var packedHash = new PackedHash { Format = 0, HashAlgorithm = originalHashAlgorithm, HashBytes = new byte[] { 246, 198, 84, 57, 46, 87, 69, 64, 36, 89, 195, 42, 154, 103, 212, 113, 134, 129, 0, 29, 59, 36, 38, 212, 67, 32, 67, 113, 96, 103, 22, 129 }, Iterations = 100, Salt = new byte[] { 5, 8, 4, 2, 3, 6, 12, 34 } }; _configProvider = new DefaultHashConfigurationProvider(); _apiClientSecret = new ApiClientSecret { IsHashed = true, // GetHashCode is consistent Secret = "ANO2IFlkAAAACAAAAAUIBAIDBgwi9sZUOS5XRUAkWcMqmmfUcYaBAB07JCbUQyBDcWBnFoE=" }; _apiClientSecretProvider = Stub <IApiClientSecretProvider>(); var secureHasher = new Pbkdf2HmacSha1SecureHasher(); var originalHasher = A.Fake <ISecureHasher>(); A.CallTo(() => originalHasher.AlgorithmHashCode).Returns(originalHashAlgorithm); A.CallTo(() => originalHasher.ComputeHash(A <string> ._, A <int> ._, A <int> ._, A <byte[]> ._)).Returns(packedHash); var next = new SecureHashAwareSecretVerifier( packedHashConverter, new SecureHasherProvider( new List <ISecureHasher> { secureHasher, originalHasher })); _securePackedHashProvider = Stub <ISecurePackedHashProvider>(); _autoUpgradingHashedSecretVerifierDecorator = new AutoUpgradingHashedSecretVerifierDecorator( _apiClientSecretProvider, next, packedHashConverter, _securePackedHashProvider, _configProvider); }
protected override void Arrange() { _apiClientSecret = new ApiClientSecret(); _apiClientSecretProvider = Stub <IApiClientSecretProvider>(); var next = Stub <ISecretVerifier>(); A.CallTo(() => next.VerifySecret(Key, Secret, _apiClientSecret)) .Returns(false); var packedHashConverter = Stub <IPackedHashConverter>(); A.CallTo(() => packedHashConverter.GetPackedHash(Secret)) .Returns( new PackedHash { Format = 0, HashAlgorithm = HashHelper.GetSha256Hash(Algorithm).ToInt32(), HashBytes = new byte[] { 1, 5, 3 }, Salt = new byte[] { 6, 5, 8, 94, 34 }, Iterations = 321 }); var securePackedHashProvider = Stub <ISecurePackedHashProvider>(); A.CallTo(() => securePackedHashProvider.ComputePackedHashString(Secret, 123, 321, 12)) .Returns(""); var configProvider = Stub <IHashConfigurationProvider>(); A.CallTo(() => configProvider.GetHashConfiguration()) .Returns( new HashConfiguration { Algorithm = Algorithm, Iterations = 321, SaltSize = 5 }); _autoUpgradingHashedSecretVerifierDecorator = new AutoUpgradingHashedSecretVerifierDecorator( _apiClientSecretProvider, next, packedHashConverter, securePackedHashProvider, configProvider); }
protected override void Arrange() { _apiClientSecret = new ApiClientSecret { IsHashed = true, Secret = Secret }; _apiClientSecretProvider = Stub <IApiClientSecretProvider>(); var next = Stub <ISecretVerifier>(); next.Stub(x => x.VerifySecret(Key, Secret, _apiClientSecret)) .Return(true); var packedHashConverter = Stub <IPackedHashConverter>(); packedHashConverter.Stub(x => x.GetPackedHash(Secret)) .Return( new PackedHash { Format = 0, HashAlgorithm = HashHelper.GetSha256Hash(Algorithm).ToInt32(), HashBytes = new byte[] { 1, 5, 3 }, Salt = new byte[] { 6, 5, 8, 94, 34 }, Iterations = 321 }); var configProvider = Stub <IHashConfigurationProvider>(); configProvider.Stub(x => x.GetHashConfiguration()) .Return( new HashConfiguration { Algorithm = Algorithm, Iterations = 321, SaltSize = 40 }); _autoUpgradingHashedSecretVerifierDecorator = new AutoUpgradingHashedSecretVerifierDecorator( _apiClientSecretProvider, next, packedHashConverter, null, configProvider); }
protected override void Arrange() { var apiClient = new ApiClient { ApiClientId = 0 }; _accessTokenClientRepo = A.Fake <IAccessTokenClientRepo>(); _apiClientAuthenticator = A.Fake <IApiClientAuthenticator>(); A.CallTo(() => _accessTokenClientRepo.AddClientAccessToken(A <int> ._, A <string> ._)) .Returns(new ClientAccessToken { ApiClient = new ApiClient() }); _tokenRequest = new TokenRequest { Client_id = ClientId, Client_secret = ClientSecret, Grant_type = "client_credentials" }; var clientSecret = new ApiClientSecret { IsHashed = true, Secret = ClientSecret }; A.CallTo(() => _apiClientAuthenticator.TryAuthenticateAsync(A <string> ._, A <string> ._)) .Returns( Task.FromResult <ApiClientAuthenticator.AuthenticationResult>( new ApiClientAuthenticator.AuthenticationResult { IsAuthenticated = true, ApiClientIdentity = new ApiClientIdentity { Key = ClientId, EducationOrganizationIds = new List <int>() { 997, 998, 999 } } })); }
protected override void Arrange() { var packedHashConverter = new PackedHashConverter(); var packedHash = new PackedHash { Format = 0, HashAlgorithm = "GOOD".GetHashCode(), // simulation of a hash routine that used GetHashCode HashBytes = new byte[] { 246, 198, 84, 57, 46, 87, 69, 64, 36, 89, 195, 42, 154, 103, 212, 113, 134, 129, 0, 29, 59, 36, 38, 212, 67, 32, 67, 113, 96, 103, 22, 129 }, Iterations = 100, Salt = new byte[] { 5, 8, 4, 2, 3, 6, 12, 34 } }; _configProvider = new DefaultHashConfigurationProvider(); _apiClientSecret = new ApiClientSecret { IsHashed = true, // GetHashCode is consistent Secret = "ANO2IFlkAAAACAAAAAUIBAIDBgwi9sZUOS5XRUAkWcMqmmfUcYaBAB07JCbUQyBDcWBnFoE=" }; _apiClientSecretProvider = Stub <IApiClientSecretProvider>(); var secureHasher = new Pbkdf2HmacSha1SecureHasher(null); var next = new SecureHashAwareSecretVerifier(packedHashConverter, secureHasher); _securePackedHashProvider = Stub <ISecurePackedHashProvider>(); _autoUpgradingHashedSecretVerifierDecorator = new AutoUpgradingHashedSecretVerifierDecorator( _apiClientSecretProvider, next, packedHashConverter, _securePackedHashProvider, _configProvider); }
protected override void Arrange() { _apiClientSecret = new ApiClientSecret(); _apiClientSecretProvider = Stub <IApiClientSecretProvider>(); var next = Stub <ISecretVerifier>(); A.CallTo(() => next.VerifySecret(Key, Secret, _apiClientSecret)) .Returns(true); var packedHashConverter = Stub <IPackedHashConverter>(); A.CallTo(() => packedHashConverter.GetPackedHash(Secret)) .Throws(new FormatException()); var securePackedHashProvider = Stub <ISecurePackedHashProvider>(); A.CallTo(() => securePackedHashProvider.ComputePackedHashString(Secret, 123, 321, 12)) .Returns(""); var configProvider = Stub <IHashConfigurationProvider>(); A.CallTo(() => configProvider.GetHashConfiguration()) .Returns( new HashConfiguration { Algorithm = Algorithm, Iterations = 321, SaltSize = 5 }); _autoUpgradingHashedSecretVerifierDecorator = new AutoUpgradingHashedSecretVerifierDecorator( _apiClientSecretProvider, next, packedHashConverter, securePackedHashProvider, configProvider); }
protected override void Act() { _actualApiClientSecret = _apiClientSecretProvider.GetSecret(_testClient.Key); }