Пример #1
0
        public void ShouldFailOnNonSha1Algorithms(string oid)
        {
            var algorithm = new Oid(oid);
            var signature = new FakeSignature
            {
                DigestAlgorithm = algorithm
            };
            var check  = new Sha1PrimarySignatureRule();
            var logger = new MemorySignatureLogger();
            var result = check.Validate(new List <ICmsSignature> {
                signature
            }, logger, Configuration);

            Assert.Equal(RuleResult.Fail, result);
            Assert.Contains($"Signature 000102030405060708090a: Expected {nameof(KnownOids.SHA1)} digest algorithm but is {algorithm.FriendlyName}.", logger.Messages);
        }
Пример #2
0
        public void ShouldPassOnSha1Algorithm()
        {
            var algorithm = new Oid(KnownOids.SHA1);
            var signature = new FakeSignature
            {
                DigestAlgorithm = algorithm
            };
            var check  = new Sha1PrimarySignatureRule();
            var logger = new MemorySignatureLogger();
            var result = check.Validate(new List <ICmsSignature> {
                signature
            }, logger, Configuration);

            Assert.Equal(RuleResult.Pass, result);
            Assert.Empty(logger.Messages);
        }
        public void ShouldFailOnMultiplePrimarySignatures()
        {
            var signature1 = new FakeSignature
            {
                DigestAlgorithm = new Oid(KnownOids.SHA1)
            };
            var signature2 = new FakeSignature
            {
                DigestAlgorithm = new Oid(KnownOids.SHA256)
            };
            var check  = new Sha1PrimarySignatureRule();
            var logger = new MemorySignatureLogger();
            var result = check.Validate(new List <ISignature> {
                signature1, signature2
            }, logger, Configuration);

            Assert.Equal(RuleResult.Fail, result);
            Assert.Contains("Multiple primary signatures exist.", logger.Messages);
        }