Skip to content

Commit 35fdba2

Browse files
committed
Added tests for cert padding for libraries.
Library tests added for WIN_CERTIFICATE padding.
1 parent 8744985 commit 35fdba2

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

AuthenticodeLintTests/Rules/WinCertificatePaddingRuleTests.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,40 @@ public void NonPaddedExecutableShouldPass()
3434
Assert.Equal(RuleResult.Pass, result);
3535
Assert.Empty(logger.Messages);
3636
}
37+
[Fact]
38+
public void PaddedLibraryShouldFail()
39+
{
40+
var file = "../../inputs/wintrustpadded.dl_";
41+
var rule = new WinCertificatePaddingRule();
42+
var logger = new MemorySignatureLogger();
43+
44+
var result = rule.Validate(file, logger, Configuration);
45+
Assert.Equal(RuleResult.Fail, result);
46+
var expectedPadding = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes("fail"));
47+
Assert.Contains($"Non-zero data found after PKCS#7 structure: {expectedPadding}.", logger.Messages);
48+
}
49+
50+
[Fact]
51+
public void NonPaddedLibraryShouldPass()
52+
{
53+
var file = "../../inputs/wintrustnonpadded.dl_";
54+
var rule = new WinCertificatePaddingRule();
55+
var logger = new MemorySignatureLogger();
56+
57+
var result = rule.Validate(file, logger, Configuration);
58+
Assert.Equal(RuleResult.Pass, result);
59+
Assert.Empty(logger.Messages);
60+
}
61+
62+
[Fact]
63+
public void NonBinaryShouldThrow()
64+
{
65+
//Rules shouldn't handle non-signed, non-binary content since that validation happens further up.
66+
var file = "../../inputs/nonbinary.txt";
67+
var rule = new WinCertificatePaddingRule();
68+
var logger = new MemorySignatureLogger();
69+
70+
Assert.Throws<InvalidOperationException>(() => rule.Validate(file, SignatureLogger.Null, Configuration));
71+
}
3772
}
3873
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
this is not a binary. Things should handle this case gracefully. No explosions.
Binary file not shown.
35.7 KB
Binary file not shown.

0 commit comments

Comments
 (0)