本文整理汇总了C#中MimeKit.MimeMessage.Sign方法的典型用法代码示例。如果您正苦于以下问题:C# MimeMessage.Sign方法的具体用法?C# MimeMessage.Sign怎么用?C# MimeMessage.Sign使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MimeKit.MimeMessage
的用法示例。
在下文中一共展示了MimeMessage.Sign方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestMimeMessageSign
public void TestMimeMessageSign ()
{
var body = new TextPart ("plain") { Text = "This is some cleartext that we'll end up signing..." };
var self = new MailboxAddress ("MimeKit UnitTests", "[email protected]");
var message = new MimeMessage { Subject = "Test of signing with OpenPGP" };
message.From.Add (self);
message.Body = body;
using (var ctx = new DummyOpenPgpContext ()) {
message.Sign (ctx);
Assert.IsInstanceOf<MultipartSigned> (message.Body);
var multipart = (MultipartSigned) message.Body;
Assert.AreEqual (2, multipart.Count, "The multipart/signed has an unexpected number of children.");
var protocol = multipart.ContentType.Parameters["protocol"];
Assert.AreEqual (ctx.SignatureProtocol, protocol, "The multipart/signed protocol does not match.");
Assert.IsInstanceOf<TextPart> (multipart[0], "The first child is not a text part.");
Assert.IsInstanceOf<ApplicationPgpSignature> (multipart[1], "The second child is not a detached signature.");
var signatures = multipart.Verify (ctx);
Assert.AreEqual (1, signatures.Count, "Verify returned an unexpected number of signatures.");
foreach (var signature in signatures) {
try {
bool valid = signature.Verify ();
Assert.IsTrue (valid, "Bad signature from {0}", signature.SignerCertificate.Email);
} catch (DigitalSignatureVerifyException ex) {
Assert.Fail ("Failed to verify signature: {0}", ex);
}
}
}
}
示例2: TestDkimSignVerify
static void TestDkimSignVerify (MimeMessage message, DkimSignatureAlgorithm signatureAlgorithm, DkimCanonicalizationAlgorithm headerAlgorithm, DkimCanonicalizationAlgorithm bodyAlgorithm)
{
var headers = new HeaderId[] { HeaderId.From, HeaderId.Subject, HeaderId.Date };
var signer = CreateSigner (signatureAlgorithm);
message.Sign (signer, headers, headerAlgorithm, bodyAlgorithm);
var dkim = message.Headers[0];
Assert.IsTrue (message.Verify (dkim, new DummyPublicKeyLocator (DkimKeys.Public)), "Failed to verify DKIM-Signature.");
message.Headers.RemoveAt (0);
}
示例3: TestUnicode
static void TestUnicode (DkimSignatureAlgorithm signatureAlgorithm, DkimCanonicalizationAlgorithm bodyAlgorithm, string expectedHash)
{
var headers = new [] { HeaderId.From, HeaderId.To, HeaderId.Subject, HeaderId.Date };
var signer = CreateSigner (signatureAlgorithm);
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("", "[email protected]"));
message.To.Add (new MailboxAddress ("", "[email protected]"));
message.Subject = "This is a unicode message";
message.Date = DateTimeOffset.Now;
var builder = new BodyBuilder ();
builder.TextBody = " تست ";
builder.HtmlBody = " <div> تست </div> ";
message.Body = builder.ToMessageBody ();
((Multipart) message.Body).Boundary = "=-MultipartAlternativeBoundary";
((Multipart) message.Body)[1].ContentId = null;
message.Body.Prepare (EncodingConstraint.EightBit);
message.Sign (signer, headers, DkimCanonicalizationAlgorithm.Simple, bodyAlgorithm);
var dkim = message.Headers[0];
Console.WriteLine ("{0}", dkim.Value);
VerifyDkimBodyHash (message, signatureAlgorithm, expectedHash);
Assert.IsTrue (message.Verify (dkim, new DummyPublicKeyLocator (DkimKeys.Public)), "Failed to verify DKIM-Signature.");
}
示例4: TestArgumentExceptions
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));
}
示例5: TestEmptyBody
static void TestEmptyBody (DkimSignatureAlgorithm signatureAlgorithm, DkimCanonicalizationAlgorithm bodyAlgorithm, string expectedHash)
{
var headers = new [] { HeaderId.From, HeaderId.To, HeaderId.Subject, HeaderId.Date };
var signer = CreateSigner (signatureAlgorithm);
var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("", "[email protected]"));
message.To.Add (new MailboxAddress ("", "[email protected]"));
message.Subject = "This is an empty message";
message.Date = DateTimeOffset.Now;
message.Body = new TextPart ("plain") { Text = "" };
message.Body.Prepare (EncodingConstraint.SevenBit);
message.Sign (signer, headers, DkimCanonicalizationAlgorithm.Simple, bodyAlgorithm);
VerifyDkimBodyHash (message, signatureAlgorithm, expectedHash);
var dkim = message.Headers[0];
Assert.IsTrue (message.Verify (dkim, new DummyPublicKeyLocator (DkimKeys.Public)), "Failed to verify DKIM-Signature.");
}
示例6: TestSecureMimeSigning
public void TestSecureMimeSigning ()
{
var body = new TextPart ("plain") { Text = "This is some cleartext that we'll end up signing..." };
var self = new MailboxAddress ("MimeKit UnitTests", "[email protected]");
var message = new MimeMessage { Subject = "Test of signing with S/MIME" };
message.From.Add (self);
message.Body = body;
using (var ctx = CreateContext ()) {
message.Sign (ctx);
Assert.IsInstanceOf<MultipartSigned> (message.Body, "The message body should be a multipart/signed.");
var multipart = (MultipartSigned) message.Body;
Assert.AreEqual (2, multipart.Count, "The multipart/signed has an unexpected number of children.");
var protocol = multipart.ContentType.Parameters["protocol"];
Assert.AreEqual (ctx.SignatureProtocol, protocol, "The multipart/signed protocol does not match.");
Assert.IsInstanceOf<TextPart> (multipart[0], "The first child is not a text part.");
Assert.IsInstanceOf<ApplicationPkcs7Signature> (multipart[1], "The second child is not a detached signature.");
var signatures = multipart.Verify (ctx);
Assert.AreEqual (1, signatures.Count, "Verify returned an unexpected number of signatures.");
foreach (var signature in signatures) {
try {
bool valid = signature.Verify ();
Assert.IsTrue (valid, "Bad signature from {0}", signature.SignerCertificate.Email);
} catch (DigitalSignatureVerifyException ex) {
Assert.Fail ("Failed to verify signature: {0}", ex);
}
var algorithms = ((SecureMimeDigitalSignature) signature).EncryptionAlgorithms;
Assert.AreEqual (EncryptionAlgorithm.Camellia256, algorithms[0], "Expected Camellia-256 capability");
Assert.AreEqual (EncryptionAlgorithm.Aes256, algorithms[1], "Expected AES-256 capability");
Assert.AreEqual (EncryptionAlgorithm.Camellia192, algorithms[2], "Expected Camellia-192 capability");
Assert.AreEqual (EncryptionAlgorithm.Aes192, algorithms[3], "Expected AES-192 capability");
Assert.AreEqual (EncryptionAlgorithm.Camellia128, algorithms[4], "Expected Camellia-128 capability");
Assert.AreEqual (EncryptionAlgorithm.Aes128, algorithms[5], "Expected AES-128 capability");
Assert.AreEqual (EncryptionAlgorithm.Idea, algorithms[6], "Expected IDEA capability");
Assert.AreEqual (EncryptionAlgorithm.Cast5, algorithms[7], "Expected Cast5 capability");
Assert.AreEqual (EncryptionAlgorithm.TripleDes, algorithms[8], "Expected Triple-DES capability");
//Assert.AreEqual (EncryptionAlgorithm.RC2128, algorithms[9], "Expected RC2-128 capability");
//Assert.AreEqual (EncryptionAlgorithm.RC264, algorithms[10], "Expected RC2-64 capability");
//Assert.AreEqual (EncryptionAlgorithm.Des, algorithms[11], "Expected DES capability");
//Assert.AreEqual (EncryptionAlgorithm.RC240, algorithms[12], "Expected RC2-40 capability");
}
}
}