1.5 加密接口的说明
EVP_EncryptInit
int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, const unsigned char *key, const unsigned char *iv);
功能描述: 加密初始化
说 明: EVP_ EncryptInit_ex的简化版本(无ENGINE),实际调用
EVP_CipherInit(*,1).
参数说明:
ctx (in/out) 对称算法封装数据
cipher (in) 密码算法信息
key (in) 密钥
iv (in) 初始化向量
返 回 值: 1[成功],<=0[失败]
EVP_EncryptInit_ex
int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, const unsigned char *key, const unsigned char *iv);
功能描述: 加密初始化
说 明: EVP_ EncryptInit的增强版(有ENGINE),实际调用EVP_CipherInit_ex(*,1).
参数说明:
ctx (in/out) 对称算法封装数据
cipher (in) 密码算法信息
impl (in) 引擎
key (in) 密钥
iv (in) 初始化向量
返 回 值: 1[成功],<=0[失败]
EVP_EncryptUpdate
int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl);
功能描述: 加密数据
说 明: 输入数据长度不一定为分组大小,所以输出数据长度可能为零。
参数说明:
ctx (in/out) 对称算法封装数据
out (out) 密文
outl (out) 密文的长度
in (in) 明文
inl (in) 明文的长度
返 回 值: 1[成功],<=0[失败]
EVP_EncryptFinal
int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
功能描述: 加密结束并输出可能的残留数据
说 明: 实际调用EVP_EncryptFinal_ex。
参数说明:
ctx (in/out) 对称算法封装数据
outm (out) 输出密文
outl (out) 输出密文的长度
返 回 值: 1[成功],<=0[失败]
EVP_EncryptFinal_ex
int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
功能描述: 加密结束并输出可能的残留数据
说 明: EVP_EncryptFinal也是调用EVP_EncryptFinal_ex。
参数说明:
ctx (in/out) 对称算法封装数据
outm (out) 输出密文
outl (out) 输出密文的长度
返 回 值: 1[成功],<=0[失败]