OpenSSL/GMSSL EVP接口说明——1.3 CIPHER_CTX操作

本文介绍了EVP_CIPHER_CTX在加密解密过程中的关键操作,包括初始化、清理、创建、销毁以及设置密钥长度和填充方式。EVP_CIPHER_CTX是OpenSSL库中用于对称加密的上下文结构体,这些函数提供了管理和控制其行为的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.3 CIPHER_CTX操作

EVP_CIPHER_CTX_init

:   void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx);

功能描述:   初始化EVP_CIPHER_CTX

    :   EVP_CIPHER_CTX数据全置零

参数说明:

       ctx         (in/out)  EVP_CIPHER_CTX

:   - 

EVP_CIPHER_CTX_cleanup

:   int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx);

功能描述:   反初始化EVP_CIPHER_CTX

    :   清除EVP_CIPHER_CTX内所有数据,并置零

参数说明:

       ctx         (in/out)  EVP_CIPHER_CTX

:   - 

EVP_CIPHER_CTX_new

:   EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);

功能描述:   创建EVP_CIPHER_CTX

    :   malloc后调用EVP_CIPHER_CTX_init

参数说明:

       无

:   非NULL[创建的EVP_CIPHER_CTX],NULL[失败]

EVP_CIPHER_CTX_free

:   void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)

功能描述:   销毁EVP_CIPHER_CTX

    :   调用EVP_CIPHER_CTX_cleanup后free。

参数说明:

       ctx         (in/out)  EVP_CIPHER_CTX

:  

EVP_CIPHER_CTX_set_key_length

:   int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);

功能描述:   设置算法密钥长度

    :   可能调用 EVP_CIPHER_CTX_ctrl( ) 函数

参数说明:

       x            (in/out)  对称算法封装数据

       keylen   (in)        密钥长度

:   1[成功],<=0[失败]

EVP_CIPHER_CTX_ctrl

:   int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr);

功能描述:   设置控制参数

    :   -

参数说明:

       c            (in/out)  对称算法封装数据

       type              (in)        控制参数类型

       arg         (in)        控制参数(整形)

       ptr          (in)        控制参数(指针)

:   1[成功],<=0[失败]

EVP_CIPHER_CTX_set_padding

:   int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);

功能描述:   设置是否进行填充

    :   参数pad为BOOL型

参数说明:

       c            (in/out)  对称算法封装数据

       pad        (in)        是否进行填充

:   1[成功],<=0[失败]

EVP_CIPHER_CTX_rand_key

:   int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *c, unsigned char *key);

功能描述:   生成随机密钥

    :   -

参数说明:

       c            (in/out)  对称算法封装数据

       key        (out)      生成的随机密钥

:   1[成功],<=0[失败]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值