Я хочу подписать тело MIME с сертификатом, который находится в хранилище сертификатов Windows. Тот же сертификат отлично работает для подписи сообщений с некоторыми почтовыми агентами (например, Outlook, TBird).
Я загружаю сертификат в «хранилище». X509Store store = новый X509Store (StoreLocation.CurrentUser);
и с X509Certificate2Collection signatureCert = currentCerts.Find (X509FindType.FindBySubjectDistinguishedName, certName, false);
I get the right certificate into signingCert.
using (var ctx = new TemporarySecureMimeContext())
{
var cert2 = Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(cert);
CmsSigner signer = new CmsSigner(cert2);
ctx.Import(cert2);
mimeMessage.Body = ApplicationPkcs7Mime.Sign(ctx, signer, DigestAlgorithm.Sha1, body);
}
Проблема (насколько я вижу) в том, что CmsSigner ожидает два параметра, а не один, как описано. В последнем пакете nuget CmsSigner ожидает ключ в качестве второго параметра, но как мне получить ключ из магазина?
Любые советы приветствуются ... TIA