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); }
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); }