guanzhi / GmSSL

支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱

Home Page:http://gmssl.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gmssl3.0 当前是线程安全吗?

zhangzhigang12345 opened this issue · comments

同标题,当前想在多线程中使用gmssl3.0的一些接口函数,例如:sm2_encrypt,sm2_decrypt,找了下GMSSL3.0的README,并在代码中搜了下,但不能确定gmssl3.0是否是线程安全的?谢谢

GmSSL 3.x目前不存在隐含的线程安全风险,一般来说,XXX_CTX 等状态struct在函数调用过程中状态中会被修改,const XXX_KEY等在函数调用过程中不会变化,因此对于应用开发者来说,在多线程环境下,每个线程应该保存自己独立的CTX,但是可以共享const KEY。一般来说只有涉及到struct有内部引用计数器的情况下才需要特别强调一个库是否是线程安全的,GmSSL目前没有这种功能涉及,因此不太涉及线程安全问题,或者说程序员可以很容易处理多线程的资源问题。