public void BadSignatureEmptyLength(string badSignature)
        {
            //Online HMAC tester: https://www.devglan.com/online-tools/hmac-sha256-online
            var input      = new TestModelInclusive();
            var calculator = new HMACSHA256SignatureCalculator();
            var sut        = new InstanceSignatureBuilder(calculator);

            sut.VerifyHex(input, badSignature, knownKey).Should().BeFalse();
        }
        public void CalculatesSignatureFromKnownArbitraryStrings()
        {
            // Quote attribution: http://www.cs.yale.edu/homes/perlis-alan/quotes.html
            var actual = new HMACSHA256SignatureCalculator()
                         .Calculate("One man's constant is another man's variable", "Syntactic sugar causes cancer of the semicolon");

            // Independently verified online: https://www.devglan.com/online-tools/hmac-sha256-online
            actual.SignatureAsHexString().Should().Be("17575fd12f3b1bbda8016357a7ae3d2ed554f2d323d23f887e39c970eb26350c");
        }
        public void PropertiesImplicitlyIncludedInCalculation()
        {
            //Online HMAC tester: https://www.devglan.com/online-tools/hmac-sha256-online
            const string signature  = "8feda6b02259091f6d58b53f5bf5645586fe38694c43d50c4e06f51265ed84a9";
            var          input      = new TestModelInclusive();
            var          calculator = new HMACSHA256SignatureCalculator();
            var          sut        = new InstanceSignatureBuilder(calculator);

            sut.VerifyHex(input, signature, knownKey).Should().BeTrue();
        }
示例#4
0
        public void PropertiesPartialExclusionsWithCalculation()
        {
            //Online HMAC tester: https://www.devglan.com/online-tools/hmac-sha256-online
            var expected = new SignatureCalculation(
                "9bac02d1fb108ec1581000627cf4b4edf99976761012a56a44d9bbb4829edba4",
                "Field3Ifalistenernodshisheadwhenyou'reexplainingyourprogram,wakehimup.Field42147483647Field5trueField6true"
                );
            var input      = new TestModelPartialExclusions();
            var calculator = new HMACSHA256SignatureCalculator();
            var sut        = new InstanceSignatureBuilder(calculator);
            var actual     = sut.Compute(input, knownKey);

            actual.Should().BeEquivalentTo(expected);
        }
示例#5
0
        public void PropertiesImplicitlyIncludedInCalculation()
        {
            //Online HMAC tester: https://www.devglan.com/online-tools/hmac-sha256-online
            var expected = new SignatureCalculation(
                "8feda6b02259091f6d58b53f5bf5645586fe38694c43d50c4e06f51265ed84a9",
                "Field1Oneman'sconstantisanotherman'svariable.Field22147483647Field39223372036854775807Field43.4028235E+38Field51.7976931348623157E+308Field69999-12-31T23:59:59.9999999Field7true"
                );

            var input      = new TestModelInclusive();
            var calculator = new HMACSHA256SignatureCalculator();
            var sut        = new InstanceSignatureBuilder(calculator);
            var actual     = sut.Compute(input, knownKey);

            actual.Should().BeEquivalentTo(expected);
        }