SDF Engine简介与使用
SDF Engine是OpenSSL的一个密码算法引擎,用户通过该引擎可以使用OpenSSL接口调用SDF的算法能力。SDF Engine已打包在SDF套件的安装包中,安装完成后即可使用。
SDF Engine的使用主要包括以下三步:
- 加载ENGINE。
- 调用ENGINE_load_dynamic()并获取OpenSSL动态库加载器;
- 通过ENGINE_ctrl_cmd_string加载SDF Engine;
- 执行ENGINE_init对SDF Engine进行初始化,最终得到SDF Engine句柄
- 通过EVP层调用算法。
- SM3哈希:使用EVP_DigestInit_ex/EVP_DigestUpdate/EVP_DigestFinal_ex ,传入已加载的SDF Engine句柄和数据;
- SM4对称加解密(ECB/CBC/GCM):使用EVP_EncryptInit_ex/EVP_EncryptUpdate/EVP_EncryptFinal_ex(解密对应Decrypt函数),传入已加载的SDF Engine句柄和数据;
- 释放资源。
- 算法调用完成后,依次释放EVP_CIPHER_CTX/EVP_MD_CTX。
- 最后调用ENGINE_free(g_engine)和ENGINE_cleanup()卸载ENGINE。