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[失败]

posted @ 2023-04-04 20:48  艾米的爸爸  阅读(2)  评论(0)    收藏  举报  来源