2.4 摘要操作
- 三段式摘要
- EVP_DigestInit_ex或EVP_DigestInit
- EVP_DigestUpdate
- EVP_DigestFinal_ex或EVP_DigestFinal
- 一段式摘要
- EVP_Digest
EVP_DigestInit
函 数 名: int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
功能描述: 摘要运算的初始化
说 明: (1)EVP_MD_CTX_init(ctx);(2)EVP_DigestInit_ex(ctx, type, NULL)
参数说明:
ctx (in/out) 摘要封装数据
type (in) 采用的摘要算法
返 回 值: 1[成功],<=0[失败]
EVP_DigestInit_ex
函 数 名: int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
功能描述: 摘要运算的初始化
说 明: 将调用摘要算法的初始化步骤
参数说明:
ctx (in/out) 摘要封装数据
type (in) 采用的摘要算法
impl (in) 引擎
返 回 值: 1[成功],<=0[失败]
EVP_DigestUpdate
函 数 名: int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count);
功能描述: 摘要运算的数据更新
说 明: 调用ctx->update(ctx,data,count),update是摘要运算的数据更新
参数说明:
ctx (in/out) 摘要封装数据
data (in) 数据
count (in) 数据长度
返 回 值: 1[成功],<=0[失败]
EVP_DigestFinal
函 数 名: int EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
功能描述: 摘要运算的获取摘要
说 明: (1)EVP_DigestFinal_ex(ctx, md, size);(2)EVP_MD_CTX_cleanup(ctx)
参数说明:
ctx (in/out) 摘要封装数据
md (out) 摘要信息
s (out) 摘要长度
返 回 值: 1[成功],<=0[失败]
EVP_DigestFinal_ex
函 数 名: int EVP_DigestFinal_ex(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
功能描述: 摘要运算的获取摘要
说 明: 调用ctx->digest->final函数
参数说明:
ctx (in/out) 摘要封装数据
md (out) 摘要信息
s (out) 摘要长度
返 回 值: 1[成功],<=0[失败]
EVP_Digest
函 数 名: int EVP_Digest(const void *data, size_t count, unsigned char *md, unsigned int *size, const EVP_MD *type, ENGINE *impl);
功能描述: 摘要运算一段式获取摘要
说 明: 调用ctx->digest->final函数
参数说明:
data (in) 待处理数据
count (in) 待处理数据长度
md (out) 摘要信息
size (out) 摘要长度
type (in) 摘要算法类型
impl (in) 引擎
返 回 值: 1[成功],<=0[失败]