1

我想要 du 加密并使用 MimeKit 签署邮件。

生成消息的工作原理:

        CmsRecipient CmsRecipient = new CmsRecipient("mail.cer");
        CmsRecipient.EncryptionAlgorithms = new EncryptionAlgorithm[] { EncryptionAlgorithm.Aes192 };
        to1.Add(CmsRecipient);

        var signed = MultipartSigned.Create(ctx, signer, multipart);
        var encrypted = ApplicationPkcs7Mime.Encrypt(ctx, to1, signed);
        message.Body = MultipartSigned.Create(ctx, signer, encrypted);

在 Outlook 中,它们通过以下方式加密:168 位 3DES 但我需要 AES 265。我该如何管理?

我可以将签名设置为 RSA/SHA512

        signer.DigestAlgorithm = DigestAlgorithm.Sha512;

但不是加密。

编辑:更新到我的解决方案

4

1 回答 1

2

CmsSigner 指定 DigestAlgorithm,但 CmsRecipient 指定收件人支持的加密算法。

MimeKit 选择加密算法的方式是找出每个接收者支持的最佳加密算法,然后使用它。

换句话说,如果您要加密到 5 个收件人并且他们都支持 AES256,那么 MimeKit 将使用 AES256。但是,如果其中一个接收者仅支持例如 3DES(并且所有其他接收者支持 3DES 和 AES256),则改为选择 3DES。

于 2017-05-11T19:33:20.673 回答