Dart.Mail 名前空間 > MailMessage クラス > SecureSign メソッド : SecureSign() メソッド |
Public Overloads Function SecureSign() As X509Certificate2Collection
public X509Certificate2Collection SecureSign()
Fromを使用してMY証明書ストアで署名証明書が検索され、includeOptionにはSystem.Security.Cryptography.X509Certificates.X509IncludeOption.ExcludeRootが使用されます。メッセージハッシュの作成にはDigestAlgorithm.Sha256が使用されます。デタッチされたデジタル署名が作成され、添付ファイルとして含まれます。
追加のコントロールが必要な場合は、SecureSign(X509Certificate2,X509IncludeOption,DigestAlgorithm,Boolean,Boolean)を使用します。
using System.Security.Cryptography.X509Certificates; private MailMessage getSignedMessage(MailMessage message) { // 署名に使用する証明書をCurrentUser/My証明書ストアで検索します。 // 以下のコードを実行すると、"message.SecureSign()"と同じ署名メッセージが得られます。 X509Store myPersonalStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); myPersonalStore.Open(OpenFlags.ReadOnly); foreach (X509Certificate2 certificate in myPersonalStore.Certificates) { if (certificate.Subject.Contains("E=" + message.From.ToString())) { // メッセージを署名します。 message.SecureSign(certificate, X509IncludeOption.ExcludeRoot, DigestAlgorithm.Sha1, true, false); return message; } } return null; }
Imports System.Security.Cryptography.X509Certificates Private Function getSignedMessage(ByVal message As MailMessage) As MailMessage ' 署名に使用する証明書をCurrentUser/My証明書ストアで検索します。 ' 以下のコードを実行すると、"message.SecureSign()"と同じ署名メッセージが得られます。 Dim myPersonalStore As New X509Store(StoreName.My, StoreLocation.CurrentUser) myPersonalStore.Open(OpenFlags.ReadOnly) For Each certificate As X509Certificate2 In myPersonalStore.Certificates If certificate.Subject.Contains("E=" & message.From.ToString()) Then ' メッセージを署名します。 message.SecureSign(certificate, X509IncludeOption.ExcludeRoot, DigestAlgorithm.Sha1, True, False) Return message End If Next certificate Return Nothing End Function