Ejemplo n.º 1
0
        public async Task CreatedSignature_FromRequestWithHeaders_CanBeValidated()
        {
            var sut = new SignatureCreator();

            IEnumerable <KeyValuePair <string, IEnumerable <string> > > headers = new List <KeyValuePair <string, IEnumerable <string> > >
            {
                new KeyValuePair <string, IEnumerable <string> >("X-Custom-Header", new List <string> {
                    "blah123blah"
                }),
                new KeyValuePair <string, IEnumerable <string> >("X-Custom-Header-Two", new List <string> {
                    "456qwerty"
                })
            };

            var signature = sut.Create(HttpMethod.Post, headers, _applicationUri, DateTime.UtcNow.ToTimeStamp(), new Nonce(), _requestPayload, _scope, _apiKey);

            var validator = new SignatureValidator();

            var request = new HttpRequestMessage(HttpMethod.Post, _applicationUri)
            {
                Content = new StringContent(_requestPayload)
            };

            foreach (var header in headers)
            {
                request.Headers.Add(header.Key, header.Value);
            }

            request.Headers.Add("Authorization", signature);

            (await validator.Validate(request, _scope, _apiKey)).ShouldBe(true);
        }
Ejemplo n.º 2
0
 public void Validate_ContentNull_ThrowsException()
 {
     ExceptionAssert.ThrowsArgumentNullException("content", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(null, "test");
     });
 }
 public void ShouldThrowExceptionWhenSignatureLengthIsInvalid()
 {
     ExceptionAssert.Throws <LineBotException>("Invalid signature.", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(new byte[] { 42 }, "NDI=");
     });
 }
 public void ShouldThrowExceptionWhenSignatureIsEmpty()
 {
     ExceptionAssert.ThrowsArgumentEmptyException("signature", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(new byte[] { 0 }, string.Empty);
     });
 }
 public void ShouldThrowExceptionWhenSignatureIsNull()
 {
     ExceptionAssert.ThrowsArgumentNullException("signature", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(new byte[] { 0 }, null);
     });
 }
 public void ShouldThrowExceptionWhenContentIsEmpty()
 {
     ExceptionAssert.ThrowsArgumentEmptyException("content", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(new byte[] { }, "test");
     });
 }
Ejemplo n.º 7
0
 public void Validate_SignatureIncorrectLength_ThrowsException()
 {
     ExceptionAssert.Throws <LineBotException>("Invalid signature.", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(new byte[] { 42 }, "NDI=");
     });
 }
 public void Validate_ContentEmpty_ThrowsException()
 {
     ExceptionAssert.ThrowsArgumentEmptyException("content", () =>
     {
         SignatureValidator validator = new SignatureValidator(null);
         validator.Validate(new byte[] { }, "test");
     });
 }
 public void Validate_SignatureInvalid_ThrowsException()
 {
     ExceptionAssert.Throws <LineBotException>("Invalid signature. Expected aajPtaEL8oyiitLlTbSzkFCTDQ7Lr0m/89eDhe6tFx4=, actual value FooBar.", () =>
     {
         SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());
         validator.Validate(new byte[] { 42 }, "FooBar");
     });
 }
 public void Validate_SignatureEmpty_ThrowsException()
 {
     ExceptionAssert.ThrowsArgumentEmptyException("signature", () =>
     {
         SignatureValidator validator = new SignatureValidator(null);
         validator.Validate(new byte[] { 0 }, string.Empty);
     });
 }
 public void Validate_SignatureNull_ThrowsException()
 {
     ExceptionAssert.ThrowsArgumentNullException("signature", () =>
     {
         SignatureValidator validator = new SignatureValidator(null);
         validator.Validate(new byte[] { 0 }, null);
     });
 }
Ejemplo n.º 12
0
            public void ShouldThrowExceptionWhenContentIsNull()
            {
                SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());

                ExceptionAssert.ThrowsArgumentNullException("content", () =>
                {
                    validator.Validate(null, "test");
                });
            }
            public void GeneratesValidSignatureXml()
            {
                //Arrange
                var signatureGenerator = DomainUtility.GetSignature();
                var xml = signatureGenerator.Xml().InnerXml;
                var signatureValidator = new SignatureValidator();

                //Act
                var isValidSignatureXml = signatureValidator.Validate(xml);
                var signatureLength     = xml.Length;

                //Assert
                Assert.True(isValidSignatureXml);
                Assert.True(signatureLength > 3200);
            }
Ejemplo n.º 14
0
        static bool Validate(byte[] tbsCertificate, byte[] subjectPublicKeyInfo, byte[] signatureAlgorithm, byte[] signatureValue)
        {
            SignedData signedData = new SignedData();

            signedData.subjectPublicKeyInfo = subjectPublicKeyInfo;
            signedData.signedData           = tbsCertificate;
            signedData.signatureAlgorithm   = signatureAlgorithm;
            signedData.signatureValue       = signatureValue;
            return(SignatureValidator.Validate(signedData));

            //todo: Signature will be validated using parameter fields
            //now always return signature is valid
            //todo: add real implementation code
            return(true);
        }
Ejemplo n.º 15
0
        public async Task CreatedSignature_FromRequestWithNoContent_CanBeValidated()
        {
            var sut = new SignatureCreator();

            IEnumerable <KeyValuePair <string, IEnumerable <string> > > headers = new List <KeyValuePair <string, IEnumerable <string> > >();

            var signature = sut.CreateWithoutContent(HttpMethod.Get, headers, _applicationUri, DateTime.UtcNow.ToTimeStamp(), new Nonce(), _scope, _apiKey);

            var validator = new SignatureValidator();

            var request = new HttpRequestMessage(HttpMethod.Get, _applicationUri)
            {
                Content = new StringContent(string.Empty)
            };

            request.Headers.Add("Authorization", signature);

            (await validator.Validate(request, _scope, _apiKey)).ShouldBe(true);
        }
Ejemplo n.º 16
0
            public void ShouldNotThrowExceptionWhenSignatureIsValid()
            {
                SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());

                validator.Validate(new byte[] { 42 }, "aajPtaEL8oyiitLlTbSzkFCTDQ7Lr0m/89eDhe6tFx4=");
            }
        public void Validate_SignatureValid_ThrowsNoException()
        {
            SignatureValidator validator = new SignatureValidator(TestConfiguration.Create());

            validator.Validate(new byte[] { 42 }, "aajPtaEL8oyiitLlTbSzkFCTDQ7Lr0m/89eDhe6tFx4=");
        }