public void TestArgumentExceptions() { var locator = new DummyPublicKeyLocator(DkimKeys.Public); var dkimHeader = new Header(HeaderId.DkimSignature, "value"); var signer = CreateSigner(DkimSignatureAlgorithm.RsaSha1); var options = FormatOptions.Default; var message = new MimeMessage(); Assert.Throws <ArgumentNullException> (() => message.Sign(null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(signer, (IList <HeaderId>)null)); Assert.Throws <ArgumentNullException> (() => message.Sign(null, new string[] { "From" })); Assert.Throws <ArgumentNullException> (() => message.Sign(signer, (IList <string>)null)); Assert.Throws <ArgumentNullException> (() => message.Sign(null, signer, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(options, signer, new HeaderId[] { HeaderId.From, HeaderId.Unknown })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, signer, (IList <HeaderId>)null)); Assert.Throws <ArgumentNullException> (() => message.Sign(null, signer, new string[] { "From" })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, null, new string[] { "From" })); Assert.Throws <ArgumentException> (() => message.Sign(options, signer, new string[] { "From", null })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, signer, (IList <string>)null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(dkimHeader, null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, dkimHeader, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, dkimHeader, null)); }
public void TestVerifyGoogleMultipartWithoutEndBoundaryDkimSignature() { var message = MimeMessage.Load(Path.Combine("..", "..", "TestData", "dkim", "multipart-no-end-boundary.msg")); int index = message.Headers.IndexOf(HeaderId.DkimSignature); var locator = new DummyPublicKeyLocator(GMailDkimPublicKey); Assert.IsTrue(message.Verify(message.Headers[index], locator), "Failed to verify GMail signature."); }
public async void TestVerifyGoogleMultipartRelatedDkimSignatureAsync() { var message = MimeMessage.Load(Path.Combine("..", "..", "TestData", "dkim", "related.msg")); int index = message.Headers.IndexOf(HeaderId.DkimSignature); var locator = new DummyPublicKeyLocator(GMailDkimPublicKey); Assert.IsTrue(await message.VerifyAsync(message.Headers[index], locator), "Failed to verify GMail signature."); }
public async Task TestVerifyGoogleMultipartWithoutEndBoundaryDkimSignatureAsync() { var message = MimeMessage.Load(Path.Combine(TestHelper.ProjectDir, "TestData", "dkim", "multipart-no-end-boundary.msg")); int index = message.Headers.IndexOf(HeaderId.DkimSignature); var locator = new DummyPublicKeyLocator(GMailDkimPublicKey); var verifier = new DkimVerifier(locator); Assert.IsTrue(await verifier.VerifyAsync(message, message.Headers[index]), "Failed to verify GMail signature."); }
public void TestVerifyGoogleMultipartRelatedDkimSignature() { var message = MimeMessage.Load(Path.Combine(TestHelper.ProjectDir, "TestData", "dkim", "related.msg")); int index = message.Headers.IndexOf(HeaderId.DkimSignature); var locator = new DummyPublicKeyLocator(GMailDkimPublicKey); var verifier = new DkimVerifier(locator); Assert.IsTrue(verifier.Verify(message, message.Headers[index]), "Failed to verify GMail signature."); }
public void TestArgumentExceptions() { var locator = new DummyPublicKeyLocator(DkimKeys.Public); var dkimHeader = new Header(HeaderId.DkimSignature, "value"); var options = FormatOptions.Default; var message = new MimeMessage(); DkimSigner signer; Assert.Throws <ArgumentNullException> (() => new DkimSigner((AsymmetricKeyParameter)null, "domain", "selector")); Assert.Throws <ArgumentException> (() => new DkimSigner(DkimKeys.Public, "domain", "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner(DkimKeys.Private, null, "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner(DkimKeys.Private, "domain", null)); Assert.Throws <ArgumentNullException> (() => new DkimSigner((string)null, "domain", "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner("fileName", null, "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner("fileName", "domain", null)); Assert.Throws <ArgumentException> (() => new DkimSigner(string.Empty, "domain", "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner((Stream)null, "domain", "selector")); using (var stream = File.OpenRead(Path.Combine("..", "..", "TestData", "dkim", "example.pem"))) { Assert.Throws <ArgumentNullException> (() => new DkimSigner(stream, null, "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner(stream, "domain", null)); signer = new DkimSigner(stream, "example.com", "1433868189.example") { SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1, AgentOrUserIdentifier = "@eng.example.com", QueryMethod = "dns/txt", }; } Assert.Throws <ArgumentNullException> (() => message.Sign(null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(signer, (IList <HeaderId>)null)); Assert.Throws <ArgumentException> (() => message.Sign(signer, new HeaderId[] { HeaderId.Unknown, HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new HeaderId[] { HeaderId.Received, HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new HeaderId[] { HeaderId.ContentType })); Assert.Throws <ArgumentNullException> (() => message.Sign(null, new string[] { "From" })); Assert.Throws <ArgumentNullException> (() => message.Sign(signer, (IList <string>)null)); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { "", "From" })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { null, "From" })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { "Received", "From" })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { "Content-Type" })); Assert.Throws <ArgumentNullException> (() => message.Sign(null, signer, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(options, signer, new HeaderId[] { HeaderId.From, HeaderId.Unknown })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, signer, (IList <HeaderId>)null)); Assert.Throws <ArgumentNullException> (() => message.Sign(null, signer, new string[] { "From" })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, null, new string[] { "From" })); Assert.Throws <ArgumentException> (() => message.Sign(options, signer, new string[] { "From", null })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, signer, (IList <string>)null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(dkimHeader, null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, dkimHeader, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, dkimHeader, null)); }
public async Task TestVerifyGoogleMailDkimSignatureAsync() { var message = MimeMessage.Load(Path.Combine("..", "..", "TestData", "dkim", "gmail.msg")); int index = message.Headers.IndexOf(HeaderId.DkimSignature); var locator = new DummyPublicKeyLocator(GMailDkimPublicKey); var verifier = new DkimVerifier(locator); Assert.IsTrue(await verifier.VerifyAsync(message, message.Headers[index]), "Failed to verify GMail signature."); }
public void TestArgumentExceptions() { var locator = new DummyPublicKeyLocator(DkimKeys.Public); var dkimHeader = new Header(HeaderId.DkimSignature, "value"); var message = new MimeMessage(); Assert.Throws <ArgumentNullException> (() => message.Sign(null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(CreateSigner(DkimSignatureAlgorithm.RsaSha1), null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(dkimHeader, null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, dkimHeader, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, dkimHeader, null)); }
public void TestArgumentExceptions() { var locator = new DummyPublicKeyLocator(DkimKeys.Public); var dkimHeader = new Header(HeaderId.DkimSignature, "value"); var signer = CreateSigner(DkimSignatureAlgorithm.RsaSha1); var options = FormatOptions.Default; var message = new MimeMessage(); Assert.Throws <ArgumentNullException> (() => new DkimSigner((AsymmetricKeyParameter)null, "domain", "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner(DkimKeys.Private, null, "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner(DkimKeys.Private, "domain", null)); Assert.Throws <ArgumentNullException> (() => new DkimSigner((string)null, "domain", "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner("fileName", null, "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner("fileName", "domain", null)); Assert.Throws <ArgumentException> (() => new DkimSigner(string.Empty, "domain", "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner((Stream)null, "domain", "selector")); using (var stream = new MemoryStream()) { Assert.Throws <ArgumentNullException> (() => new DkimSigner(stream, null, "selector")); Assert.Throws <ArgumentNullException> (() => new DkimSigner(stream, "domain", null)); } Assert.Throws <ArgumentNullException> (() => message.Sign(null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(signer, (IList <HeaderId>)null)); Assert.Throws <ArgumentException> (() => message.Sign(signer, new HeaderId[] { HeaderId.Unknown, HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new HeaderId[] { HeaderId.Received, HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new HeaderId[] { HeaderId.ContentType })); Assert.Throws <ArgumentNullException> (() => message.Sign(null, new string[] { "From" })); Assert.Throws <ArgumentNullException> (() => message.Sign(signer, (IList <string>)null)); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { "", "From" })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { null, "From" })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { "Received", "From" })); Assert.Throws <ArgumentException> (() => message.Sign(signer, new string[] { "Content-Type" })); Assert.Throws <ArgumentNullException> (() => message.Sign(null, signer, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, null, new HeaderId[] { HeaderId.From })); Assert.Throws <ArgumentException> (() => message.Sign(options, signer, new HeaderId[] { HeaderId.From, HeaderId.Unknown })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, signer, (IList <HeaderId>)null)); Assert.Throws <ArgumentNullException> (() => message.Sign(null, signer, new string[] { "From" })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, null, new string[] { "From" })); Assert.Throws <ArgumentException> (() => message.Sign(options, signer, new string[] { "From", null })); Assert.Throws <ArgumentNullException> (() => message.Sign(options, signer, (IList <string>)null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(dkimHeader, null)); Assert.Throws <ArgumentNullException> (() => message.Verify(null, dkimHeader, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, null, locator)); Assert.Throws <ArgumentNullException> (() => message.Verify(FormatOptions.Default, dkimHeader, null)); }
public void TestVerifyGoogleMultipartWithoutEndBoundaryDkimSignature () { var message = MimeMessage.Load (Path.Combine ("..", "..", "TestData", "dkim", "multipart-no-end-boundary.msg")); int index = message.Headers.IndexOf (HeaderId.DkimSignature); var locator = new DummyPublicKeyLocator (GMailDkimPublicKey); Assert.IsTrue (message.Verify (message.Headers[index], locator), "Failed to verify GMail signature."); }
public void TestArgumentExceptions () { var locator = new DummyPublicKeyLocator (DkimKeys.Public); var dkimHeader = new Header (HeaderId.DkimSignature, "value"); var message = new MimeMessage (); Assert.Throws<ArgumentNullException> (() => message.Sign (null, new HeaderId[] { HeaderId.From })); Assert.Throws<ArgumentNullException> (() => message.Sign (CreateSigner (DkimSignatureAlgorithm.RsaSha1), null)); Assert.Throws<ArgumentNullException> (() => message.Verify (null, locator)); Assert.Throws<ArgumentNullException> (() => message.Verify (dkimHeader, null)); Assert.Throws<ArgumentNullException> (() => message.Verify (null, dkimHeader, locator)); Assert.Throws<ArgumentNullException> (() => message.Verify (FormatOptions.Default, null, locator)); Assert.Throws<ArgumentNullException> (() => message.Verify (FormatOptions.Default, dkimHeader, null)); }