Beispiel #1
0
        public void ShouldReturnEquivalentHashes_WhenFactorsAreInDifferentOrder()
        {
            var service = new SignatureService("TEST");

            var factor1 = new SignatureFactor("TestFactor", "TestValue");
            var factor2 = new SignatureFactor("SecondTest", "SecondValue");

            var response  = service.CreateSignature("CHALLENGE", "http://URL.com/foo", new[] { factor1, factor2 });
            var response2 = service.CreateSignature("CHALLENGE", "http://URL.com/foo", new[] { factor2, factor1 });

            response.SignatureHash.Should().Be(response2.SignatureHash);
        }
        public void ShouldReturnEquivalentHashes_WhenFactorsAreInDifferentOrder()
        {
            var service = new SignatureService("TEST");

            var factor1 = new SignatureFactor("TestFactor", "TestValue");
            var factor2 = new SignatureFactor("SecondTest", "SecondValue");

            var response = service.CreateSignature("CHALLENGE", "http://URL.com/foo", new[] { factor1, factor2 });
            var response2 = service.CreateSignature("CHALLENGE", "http://URL.com/foo", new[] { factor2, factor1 });

            response.SignatureHash.Should().Be(response2.SignatureHash);
        }
        private async Task <HttpClient> CreateClient(UnicornConnection connection, string url)
        {
            var httpClient = new HttpClient();

            if (_isStreamed)
            {
                httpClient.Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite);
            }

            if (!string.IsNullOrEmpty(connection.Token))
            {
                var challenge = await GetChallenge(connection).ConfigureAwait(false);

                if (string.IsNullOrEmpty(challenge))
                {
                    httpClient.DefaultRequestHeaders.Add("Authenticate", connection.Token);
                }
                else
                {
                    var signatureService = new SignatureService(connection.Token);
                    var signature        = signatureService.CreateSignature(challenge, url, Enumerable.Empty <SignatureFactor>());
                    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("X-MC-MAC", signature);
                    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("X-MC-Nonce", challenge);
                }
            }
            return(httpClient);
        }
Beispiel #4
0
        public void ShouldReturnExpectedHash_WithFactors()
        {
            var service = new SignatureService("TEST");

            var response = service.CreateSignature("CHALLENGE", "http://URL.com/foo", new[] { new SignatureFactor("TestFactor", "TestValue"), new SignatureFactor("SecondTest", "SecondValue") });

            response.SignatureHash.Should().Be("1kLQk1bHuIShUZTqwyQGoI0gToacPK/LGmGREZa3WT4QV0CPVbOqUu91TWP5x2LpXLFR4G6e29C60KSztGnJ2A==");
            response.SignatureSource.Should().Be("SecondTest^SecondValue|TestFactor^TestValue|CHALLENGE|TEST|URL.COM/FOO");
        }
Beispiel #5
0
        public void ShouldReturnExpectedHash()
        {
            var service = new SignatureService("TEST");

            var response = service.CreateSignature("CHALLENGE", "http://URL.com/foo", Enumerable.Empty <SignatureFactor>());

            response.SignatureHash.Should().Be("kuKRmO5ds6wyiI15C7XuUdaa4oXCR0SjsLGLu911pFIYme+8JRaoLj6n7RjKqASYcAPMAg7dlat7jQDlzLkNQg==");
            response.SignatureSource.Should().Be("CHALLENGE|TEST|URL.COM/FOO");
        }
        public void ShouldReturnExpectedHash_WithFactors()
        {
            var service = new SignatureService("TEST");

            var response = service.CreateSignature("CHALLENGE", "http://URL.com/foo", new[] { new SignatureFactor("TestFactor", "TestValue"), new SignatureFactor("SecondTest", "SecondValue") });

            response.SignatureHash.Should().Be("1kLQk1bHuIShUZTqwyQGoI0gToacPK/LGmGREZa3WT4QV0CPVbOqUu91TWP5x2LpXLFR4G6e29C60KSztGnJ2A==");
            response.SignatureSource.Should().Be("SecondTest^SecondValue|TestFactor^TestValue|CHALLENGE|TEST|URL.COM/FOO");
        }
        public void ShouldReturnExpectedHash()
        {
            var service = new SignatureService("TEST");

            var response = service.CreateSignature("CHALLENGE", "http://URL.com/foo", Enumerable.Empty<SignatureFactor>());

            response.SignatureHash.Should().Be("kuKRmO5ds6wyiI15C7XuUdaa4oXCR0SjsLGLu911pFIYme+8JRaoLj6n7RjKqASYcAPMAg7dlat7jQDlzLkNQg==");
            response.SignatureSource.Should().Be("CHALLENGE|TEST|URL.COM/FOO");
        }
Beispiel #8
0
        private static string CreateSignature(string challenge, string sharedSecret, string syncUrl, ICakeLog log)
        {
            var service   = new SignatureService(sharedSecret);
            var signature = service.CreateSignature(challenge, syncUrl, null);

            log.Write(Verbosity.Diagnostic, LogLevel.Debug, $"MAC: '{signature.SignatureSource}'");
            log.Write(Verbosity.Diagnostic, LogLevel.Debug, $"HMAC: '{signature.SignatureHash}'");
            log.Write(Verbosity.Diagnostic, LogLevel.Debug, "If you get authorization failures compare the values above to the Sitecore logs.");
            return(signature.SignatureHash);
        }