#c# #smime #mimekit
#c# #smime #mimekit
Вопрос:
У меня есть вложение, хранящееся в базе данных, которое имеет имя вложения smime.p7m
и имеет тип mimetype multipart/signed
. Теперь мне нужно извлечь вложение из подписанного файла p7m, и я надеялся, что смогу использовать Mimekit для достижения этой цели. Я пробовал следующее:
CryptographyContext.Register(typeof(WindowsSecureMimeContext));
try
{
using (MemoryStream ms = new MemoryStream(buf))
{
ApplicationPkcs7Mime p7m = new ApplicationPkcs7Mime(SecureMimeType.EnvelopedData, ms);
p7m.Verify(out attachment);
builder.Attachments.Add(attachment);
}
}
catch (Exception ex)
{
log.Error("Exception in smime", ex);
}
Но это не удается с системой.Исключение InvalidOperationException в строке проверки.
Есть мысли?
Ответ №1:
SecureMimeType.EnvelopedData
предназначено для зашифрованных данных, а не для подписанных данных. Вам нужно использовать SecureMimeTYpe.SignedData
.