GrapeCity Secure Mail for .NET 4.0J
SecureDecode(X509Certificate2Collection,Boolean) メソッド
使用例 

メッセージが暗号化されている場合は、これらの証明書とMY証明書ストアに保存されている証明書の中から復号化に必要な証明書が検索されます。
trueの場合、署名証明書がAddressBook証明書ストアに追加されます。
S/MIMEでエンコードされたMailMessageをデコードします。
シンタックス

パラメータ

decryptingCertificates
メッセージが暗号化されている場合は、これらの証明書とMY証明書ストアに保存されている証明書の中から復号化に必要な証明書が検索されます。
importSigningCertificate
trueの場合、署名証明書がAddressBook証明書ストアに追加されます。

戻り値の型

署名証明書と、署名されたメッセージで見つかった追加情報を含むSystem.Security.Cryptography.Pkcs.SignerInfoCollection
例外
例外解説
System.FormatException形式が認識されません。
System.Security.Cryptography.CryptographicException暗号操作を完了できませんでした。署名者の検証に失敗した場合にスローされます。
解説

IsSecureがtrueの場合、このメソッドはS/MIMEメッセージの検証と復号化の一方または両方を適宜実行します。成功した場合、IsSecureはfalseを返します。 失敗した場合は例外がスローされます。署名者の検証で例外がスローされる前に復号化が成功する場合があるため、例外がスローされた場合にメッセージが部分的にデコードされることがあります。

ユーザーのMY証明書ストア内の証明書を補完するには、decryptingCertificatesを指定します。ユーザーの証明書ストアに有効な証明書が格納されている場合は、nullを使用します。

importSigningCertificatesがtrueの場合は、署名証明書がAddressBook証明書ストアに追加されます。 これにより、以後この送信者に送信するメッセージでSecureEncryptを使用するとき、暗号化証明書を指定する必要がなくなります。これは、SecureEncryptがAddressBook証明書ストアで一致する証明書を検索するためです。

デジタル署名を確認し、証明書を有効にするには、System.Security.Cryptography.Pkcs.SignerInfoCollectionの戻り値の各メンバーに対して SignerInfo.CheckSignature(Boolean)を実行します。

使用例
以下のサンプルコードは、署名と暗号化の一方または両方がなされているS/MIMEメッセージをデコードする方法を示します。
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Pkcs

private MailMessage getDecodedMessage(MailMessage message)
{
    // 復号化に使用する証明書を、エクスポートされた証明書ファイルからロードします(X509Storeからロードすることもできます)。
    X509Certificate2 decryptingCertificate = new X509Certificate2(Application.StartupPath + "\\myCertificate.pfx");
    // メッセージをデコードし、署名証明書をAddressBook証明書ストアにインポートします
    // (復号化証明書がすでにMY証明書ストアに存在する場合は、 
    // パラメーターのないSecureDecode()を代わりに使用できます)。
    SignerInfoCollection signatories = message.SecureDecode(new X509Certificate2Collection(decryptingCertificate), true);
    // 署名を確認し、証明書を有効にします
    foreach (SignerInfo signator in signatories)
        signator.CheckSignature(false);
    return message;
}
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.Pkcs

Private Function getDecodedMessage(ByVal message As MailMessage) As MailMessage
    ' 復号化に使用する証明書を、エクスポートされた証明書ファイルからロードします(X509Storeからロードすることもできます)。
    Dim decryptingCertificate As New X509Certificate2(Application.StartupPath & "\myCertificate.pfx")
    ' メッセージをデコードし、署名証明書をAddressBook証明書ストアにインポートします
    ' (復号化証明書がすでにMY証明書ストアに存在する場合は、 
    ' パラメーターのないSecureDecode()を代わりに使用できます)。
    Dim signatories As SignerInfoCollection = message.SecureDecode(New X509Certificate2Collection(decryptingCertificate), True)
    '署名を確認し、証明書を有効にします
    For Each signator As SignerInfo In signatories
        signator.CheckSignature(False)
    Next signator
    Return message
End Function
参照

参照

MailMessage クラス
MailMessage メンバ
オーバーロード一覧

 

 


© 2003, GrapeCity inc. All rights reserved.