OpenSSL/GMSSL EVP接口说明——1.4 加解密统一接口的说明
1.4 加解密统一接口的说明
EVP_CipherInit
int EVP_CipherInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, const unsigned char *key,const unsigned char *iv, int enc);
功能描述: 加解密密初始化
说 明: EVP_CipherInit_ex的简化版本(无ENGINE),实际调用EVP_CipherInit_ex。
另有加密接口EVP_EncryptInit(*),调用EVP_CipherInit(*,1).
另有解密接口EVP_DecryptInit(*),调用EVP_CipherInit(*,0).
参数说明:
ctx (in/out) 对称算法封装数据
cipher (in) 密码算法信息
key (in) 密钥
iv (in) 初始化向量
enc (in) 加密(1)/解密(0)
返 回 值: 1[成功],<=0[失败]
EVP_CipherInit_ex
int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, const unsigned char *key,const unsigned char *iv, int enc);
功能描述: 加解密密初始化
说 明: EVP_CipherInit的增强版(有ENGINE)。
另有加密接口EVP_EncryptInit_ex(*),调用EVP_CipherInit_ex(*,1).
另有解密接口EVP_DecryptInit_ex(*),调用EVP_CipherInit_ex(*,0).
参数说明:
ctx (in/out) 对称算法封装数据
cipher (in) 密码算法信息
impl (in) 引擎
key (in) 密钥
iv (in) 初始化向量
enc (in) 加密(1)/解密(0)
返 回 值: 1[成功],<=0[失败]
EVP_CipherUpdate
int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl);
功能描述: 更新加解密数据
说 明: 若ctx->encrypt为加密,则调用EVP_EncryptUpdate。
若ctx->encrypt为解密,则调用EVP_DecryptUpdate。
参数说明:
ctx (in/out) 对称算法封装数据
out (out) 密文/明文
outl (out) 密文/明文的长度
in (in) 明文/密文
inl (in) 明文/密文的长度
返 回 值: 1[成功],<=0[失败]
EVP_CipherFinal
int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
功能描述: 加解密结束并输出可能的残留数据
说 明: 若ctx->encrypt为加密,则调用EVP_EncryptFinal。
若ctx->encrypt为解密,则调用EVP_DecryptFinal。
参数说明:
ctx (in/out) 对称算法封装数据
outm (out) 输出密文/明文
outl (out) 输出密文/明文的长度
返 回 值: 1[成功],<=0[失败]
EVP_CipherFinal_ex
int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl);
功能描述: 加解密结束并输出可能的残留数据
说 明: 若ctx->encrypt为加密,则调用EVP_EncryptFinal_ex。
若ctx->encrypt为解密,则调用EVP_DecryptFinal_ex。
参数说明:
ctx (in/out) 对称算法封装数据
outm (out) 输出密文/明文
outl (out) 输出密文/明文的长度
返 回 值: 1[成功],<=0[失败]

浙公网安备 33010602011771号