You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chilkat .NET v9.5.0.99能否接收AES-128-GCM加密邮件?

问题解答

1. 报错原因与是否为bug

1.2.840.113549.1.9.16.1.23是CMS Enveloped Data AES-GCM加密格式的标准OID。你遇到的问题并非逻辑bug,而是Chilkat v9.5.0.99版本的功能缺失:该版本的Chilkat.Email和Chilkat.Pkcs7模块未实现对CMS AES-GCM加密格式的支持,虽然Chilkat.Crypt2单独支持GCM模式,但邮件解密的自动PKCS7/CMS解析流程无法识别这个OID,导致报错。

2. 能否强制使用GCM模式解密?

直接通过Chilkat.Email的自动解密流程无法强制指定GCM模式,但可以通过以下方案解决:

方案一:升级Chilkat版本

这是最便捷的解决方案。Chilkat后续版本(如v9.5.0.100及之后)已添加对CMS AES-GCM格式的支持,升级后Chilkat.Email的自动解密功能即可正常处理这类邮件,无需额外修改代码。

方案二:手动拆分加密内容+Chilkat.Crypt2解密

如果无法升级版本,可手动提取邮件中的PKCS7加密数据,解析出GCM所需参数后用Chilkat.Crypt2解密:

  1. 提取PKCS7加密数据
    Chilkat.Email email = new Chilkat.Email();
    email.LoadEml("encrypted_email.eml");
    // 根据实际邮件结构获取加密的MIME部分(索引可能需要调整)
    Chilkat.MimePart encryptedPart = email.GetPart(0);
    byte[] pkcs7Der = encryptedPart.GetBodyBinary();
    
  2. 借助OpenSSL提取GCM参数
    由于v9.5.0.99的Chilkat.Pkcs7无法解析AES-GCM结构,可通过OpenSSL命令行提取密钥、IV、Tag和密文:
    # 导出PKCS7中的会话密钥(需用私钥解密)
    openssl cms -decrypt -in encrypted_pkcs7.der -inform DER -inkey private_key.pem -out content_key.bin -nocerts
    # 提取IV、密文和Tag(需结合DER结构解析或OpenSSL的详细输出)
    
  3. 用Chilkat.Crypt2执行GCM解密
    Chilkat.Crypt2 crypt = new Chilkat.Crypt2();
    crypt.CryptAlgorithm = "aes";
    crypt.KeyLength = 128;
    crypt.CipherMode = "gcm";
    crypt.SetEncodedKey(contentKey, "raw");
    crypt.SetEncodedIV(ivBytes, "raw");
    // 设置GCM附加数据(如果有)
    crypt.SetEncodedAad(aadBytes, "raw");
    // 解密密文并验证Tag
    byte[] decryptedData = crypt.DecryptBytes(ciphertextBytes);
    

方案三:直接调用OpenSSL解密

既然已确认OpenSSL可正常解密,可通过.NET的Process类调用OpenSSL命令行完成解密:

using System.Diagnostics;

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "openssl";
psi.Arguments = "cms -decrypt -in encrypted_email.eml -out decrypted_email.eml -inkey private_key.pem";
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;

using (Process process = Process.Start(psi))
{
    process.WaitForExit();
    // 处理解密后的邮件文件
}

内容的提问来源于stack exchange,提问作者Andrei Sokolovski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:40:19