第二十一章 EVP / 21.5 对称加解密函数

典型的加解密函数主要有:

1)  EVP_CIPHER_CTX_init

初始化对称计算上下文。

2)  EVP_CIPHER_CTX_cleanup

清除对称算法上下文数据,它调用用户提供的销毁函数销清除存中的内部密钥以及其他数据。

 

       3)  EVP_des_ede3_ecb

              返回一个EVP_CIPHER;

       4)    EVP_EncryptInit和EVP_EncryptInit_ex

加密初始化函数,本函数调用具体算法的init回调函数,将外送密钥key转换为内部密钥形式,将初始化向量iv拷贝到ctx结构中。

       5)  EVP_EncryptUpdate

              加密函数,用于多次计算,它调用了具体算法的do_cipher回调函数。

       6)  EVP_EncryptFinal和EVP_EncryptFinal_ex

              获取加密结果,函数可能涉及填充,它调用了具体算法的do_cipher回调函数。

       7)  EVP_DecryptInit和EVP_DecryptInit_ex

              解密初始化函数。

       8)  EVP_DecryptUpdate

              解密函数,用于多次计算,它调用了具体算法的do_cipher回调函数。

       9)  EVP_DecryptFinal和EVP_DecryptFinal_ex

              获取解密结果,函数可能涉及去填充,它调用了具体算法的do_cipher回调函数。

       10)EVP_BytesToKey

计算密钥函数,它根据算法类型、摘要算法、salt以及输入数据计算出一个对称密钥和初始化向量iv。

       11)PKCS5_PBE_keyivgen和PKCS5_v2_PBE_keyivgen

              实现了PKCS5基于口令生成密钥和初始化向量的算法。

       12)PKCS5_PBE_add

              加载所有openssl实现的基于口令生成密钥的算法。

       13)EVP_PBE_alg_add

              添加一个PBE算法。