Exemplo n.º 1
0
 public IActionResult GetHashedValue(PasswordHashRequest request)
 {
     return(Ok(new {
         Text = request.Password,
         Hashed = Hasher.Hash(request.Password)
     }));
 }
Exemplo n.º 2
0
        public void When_ProvidingNoAlgorithmId_Expect_NewAlgorithmUsed()
        {
            var request = new PasswordHashRequest
            {
                Password = "******",
                Salt     = "MySalt"
            };

            var response = new AgilePasswordHash().Hash(request);

            Assert.AreEqual(response.AlgorithmId, newAlgorithm.AlgorithmId);
            Assert.AreEqual(response.IsObsolete, newAlgorithm.IsObsolete);
            Assert.AreEqual(response.Value, NewHashValue);
        }
Exemplo n.º 3
0
        public void When_GivenHashRequest_Expect_ResultHasValidProperties()
        {
            var request = new PasswordHashRequest
            {
                Password = string.Empty,
                Salt     = new string('s', 8)
            };

            var response = ((IPasswordHash)algorithmUndertest).Hash(request);

            Assert.AreEqual(response.AlgorithmId, expectId);
            Assert.AreEqual(response.IsObsolete, expectedObsolete);
            Assert.IsNotNull(response.Value);
        }
Exemplo n.º 4
0
        public void When_ProvidingCurrentAlgorithm_Expect_CurrentAlgorithmReturned()
        {
            var request = new PasswordHashRequest
            {
                AlgorithmId = currentAlgorithm.AlgorithmId,
                Password    = "******",
                Salt        = "MySalt"
            };

            var response = new AgilePasswordHash().Hash(request);

            Assert.AreEqual(response.AlgorithmId, currentAlgorithm.AlgorithmId);
            Assert.AreEqual(response.IsObsolete, currentAlgorithm.IsObsolete);
            Assert.AreEqual(response.Value, CurrentHashValue);
        }
Exemplo n.º 5
0
        public void When_AdditionalObsoleteAlgorithmIsGiven_Expect_NotUsed()
        {
            const string tmpAlgorithmId       = "TmpAlgorithm";
            const bool   tmpAlgorithmObsolete = true;

            var tmpAlgorithm = new Mock <IPasswordHashAlgorithm>();

            tmpAlgorithm.SetupGet(m => m.AlgorithmId).Returns(tmpAlgorithmId);
            tmpAlgorithm.SetupGet(m => m.IsObsolete).Returns(tmpAlgorithmObsolete);
            tmpAlgorithm.Setup(m => m.Hash(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(new PasswordHashResponse
            {
                AlgorithmId = tmpAlgorithmId,
                IsObsolete  = tmpAlgorithmObsolete,
                Value       = CurrentHashValue
            });

            PasswordAlgorithmRepo.RegisterAlgorithm(tmpAlgorithm.Object);

            var passwordRequest = new PasswordHashRequest
            {
                AlgorithmId = currentAlgorithm.AlgorithmId,
                Password    = "******",
                Salt        = "Tmp"
            };

            var agileHash = new AgilePasswordHash();

            var response = agileHash.Hash(passwordRequest);

            Assert.AreEqual(response.AlgorithmId, currentAlgorithm.AlgorithmId);

            passwordRequest.AlgorithmId = null;

            response = agileHash.Hash(passwordRequest);

            Assert.AreEqual(response.AlgorithmId, newAlgorithm.AlgorithmId);

            PasswordAlgorithmRepo.DeregisterAlgorithm(tmpAlgorithmId);
        }
Exemplo n.º 6
0
        public void When_CurrentIsObsolete_Expect_SecondRequestUseNewAlgorithm()
        {
            var request = new PasswordHashRequest
            {
                AlgorithmId = currentAlgorithm.AlgorithmId,
                Password    = "******",
                Salt        = "MySalt"
            };

            var agileHash = new AgilePasswordHash();

            var response = agileHash.Hash(request);

            Assert.AreEqual(response.AlgorithmId, currentAlgorithm.AlgorithmId);
            Assert.IsTrue(response.IsObsolete);

            request.AlgorithmId = null;

            response = agileHash.Hash(request);

            Assert.AreEqual(response.AlgorithmId, newAlgorithm.AlgorithmId);
            Assert.IsFalse(response.IsObsolete);
        }