MimeKit 使用 AES 加密消息

MimeKit encrypt Message with AES

我想用 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;

但不是加密。

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

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

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

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