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

多线程使用EVP_Seal系列函数时EVP_PKEY的线程安全问题

关于多线程使用EVP_PKEY调用EVP_Seal系列函数的线程安全问题
  • 核心结论:不需要用互斥锁保护EVP_PKEY,也没必要复制密钥(包括开发环境的EVP_PKEY_dup()操作)。
  • 原因说明:
    1. EVP_SealInit()/EVP_SealUpdate()/EVP_SealFinal()对传入的公钥EVP_PKEY仅做只读操作,不会修改其内部状态;
    2. OpenSSL 1.1.1及更高版本中,只读访问EVP_PKEY对象是线程安全的,多个线程同时调用这些加密函数不会引发竞态问题。
  • 生产环境(OpenSSL 1.1.1)的处理:
    1. 1.1.1确实没有EVP_PKEY_dup(),但完全不需要这个操作;
    2. 直接在多个线程中复用同一个EVP_PKEY即可,只要确保该密钥对象在所有线程完成加密操作后再调用EVP_PKEY_free()释放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:22:05