OpenSSL/GMSSL EVP接口说明——2.2 EVP_MD_CTX操作

2.2 EVP_MD_CTX操作

  1. 有EVP_MD_CTX,然后操作
    1. EVP_MD_CTX_init(EVP_MD_CTX *ctx);
    2. EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
  2. 创建EVP_MD_CTX,然后操作
    1. EVP_MD_CTX *EVP_MD_CTX_create(void);
    2. void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);

EVP_MD_CTX_init

:   void EVP_MD_CTX_init(EVP_MD_CTX *ctx);

功能描述:   初始化EVP_MD_CTX

    :   EVP_CIPHER_CTX数据全置零

参数说明:

       ctx         (in/out)  摘要封装数据

:   - 

EVP_MD_CTX_cleanup

:   int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);

功能描述:   反初始化EVP_MD_CTX

    :   EVP_CIPHER_CTX数据全部清除并置零

参数说明:

       ctx         (in/out)  摘要封装数据

:   1

EVP_MD_CTX_create

:   EVP_MD_CTX *EVP_MD_CTX_create(void);

功能描述:   创建EVP_MD_CTX

    :   (1)malloc一个EVP_CIPHER_CTX,(2)EVP_MD_CTX_init

参数说明:

       ctx         (in/out)  摘要封装数据

:   摘要封装数据

EVP_MD_CTX_destroy

:   void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);

功能描述:   销毁EVP_MD_CTX

    :   (1)EVP_MD_CTX_cleanup,(2)free

参数说明:

       ctx         (in/out)  摘要封装数据

:   - 

EVP_MD_CTX_copy

:   int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);

功能描述:   复制EVP_MD_CTX

    :   (1)EVP_MD_CTX_init(out),(2)EVP_MD_CTX_copy_ex(out, in)

参数说明:

       out         (out)      目标摘要封装数据

       in           (in)        源摘要封装数据

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

EVP_MD_CTX_copy_ex

:   int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);

功能描述:   复制EVP_MD_CTX

    :   -

参数说明:

       out         (out)      目标摘要封装数据

       in           (in)        源摘要封装数据

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

EVP_MD_CTX_set_flags

:   void       EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);

功能描述:   添加指定的标志信息

    :   ctx->flags |= flags;

参数说明:

       ctx         (in/out)  摘要封装数据

       flags      (in)        标志信息

:   —

EVP_MD_CTX_clear_flags

:   void       EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);

功能描述:   去除指定的标志信息

    :   ctx->flags &= ~flags;

参数说明:

       ctx         (in/out)  摘要封装数据

       flags      (in)        标志信息

:   —

EVP_MD_CTX_test_flags

:   int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);

功能描述:   测试指定的标志信息

    :   return (ctx->flags & flags);

参数说明:

       ctx         (in/out)  摘要封装数据

       flags      (in)        标志信息

:   1[标志信息存在],0[标志信息不存在]

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