SHA
头文件
#include "mln_sha.h"
模块名
sha
函数
mln_sha1_init
void mln_sha1_init(mln_sha1_t *s);
描述:初始化mln_sha1_t
类型结构s
。
返回值:无
mln_sha1_new
mln_sha1_t *mln_sha1_new(void);
描述:创建并初始化mln_sha1_t
类型结构,该结构由malloc
分配而来。
返回值:成功返回mln_sha1_t
类型指针,否则返回NULL
mln_sha1_pool_new
mln_sha1_t *mln_sha1_pool_new(mln_alloc_t *pool);
描述:创建并初始化mln_sha1_t
类型结构,该结构由pool
指定的内存池分配而来。
返回值:成功返回mln_sha1_t
类型指针,否则返回NULL
mln_sha1_free
void mln_sha1_free(mln_sha1_t *s);
描述:释放mln_sha1_t
类型结构s
的内存,该参数应由mln_sha1_new
分配而来。
返回值:无
mln_sha1_pool_free
void mln_sha1_pool_free(mln_sha1_t *s);
描述:释放mln_sha1_t
类型结构s
的内存,该参数应由mln_sha1_pool_new
分配而来。
返回值:无
mln_sha1_calc
void mln_sha1_calc(mln_sha1_t *s, mln_u8ptr_t input, mln_uauto_t len, mln_u32_t is_last);
描述:计算input
和len
所指定数据的SHA1值。本函数与MD5函数一样,支持对较大数据分批计算,最终得到一个SHA1值,is_last
用于表明是否是本块数据的最后一批次。计算后的结果存在s
中。
返回值:无
mln_sha1_tobytes
void mln_sha1_tobytes(mln_sha1_t *s, mln_u8ptr_t buf, mln_u32_t len);
描述:将SHA1计算的二进制结果写入到buf
与len
指定的内存中。
返回值:无
mln_sha1_tostring
void mln_sha1_tostring(mln_sha1_t *s, mln_s8ptr_t buf, mln_u32_t len);
描述:将SHA1计算的字符串结果写入到buf
与len
指定的内存中。
返回值:无
mln_sha1_dump
void mln_sha1_dump(mln_sha1_t *s);
描述:将mln_sha1_t
结构信息输出到标准输出上,仅用于调试。
返回值:无
mln_sha256_init
void mln_sha256_init(mln_sha256_t *s);
描述:初始化mln_sha256_t
类型结构s
。
返回值:无
mln_sha256_new
mln_sha256_t *mln_sha256_new(void);
描述:创建并初始化mln_sha256_t
类型结构,该结构由malloc
分配而来。
返回值:成功返回mln_sha256_t
类型指针,否则返回NULL
mln_sha256_pool_new
mln_sha256_t *mln_sha256_pool_new(mln_alloc_t *pool);
描述:创建并初始化mln_sha256_t
类型结构,该结构由pool
指定的内存池分配而来。
返回值:成功返回mln_sha256_t
类型指针,否则返回NULL
mln_sha256_free
void mln_sha256_free(mln_sha256_t *s);
描述:释放mln_sha256_t
类型结构s
的内存,该参数应由mln_sha256_new
分配而来。
返回值:无
mln_sha256_pool_free
void mln_sha256_pool_free(mln_sha256_t *s);
描述:释放mln_sha256_t
类型结构s
的内存,该参数应由mln_sha256_pool_new
分配而来。
返回值:无
mln_sha256_calc
void mln_sha256_calc(mln_sha256_t *s, mln_u8ptr_t input, mln_uauto_t len, mln_u32_t is_last);
描述:计算input
和len
所指定数据的SHA1值。本函数与MD5函数一样,支持对较大数据分批计算,最终得到一个SHA256值,is_last
用于表明是否是本块数据的最后一批次。计算后的结果存在s
中。
返回值:无
mln_sha256_tobytes
void mln_sha256_tobytes(mln_sha256_t *s, mln_u8ptr_t buf, mln_u32_t len);
描述:将SHA256计算的二进制结果写入到buf
与len
指定的内存中。
返回值:无
mln_sha256_tostring
void mln_sha256_tostring(mln_sha256_t *s, mln_s8ptr_t buf, mln_u32_t len);
描述:将SHA256计算的字符串结果写入到buf
与len
指定的内存中。
返回值:无
mln_sha256_dump
void mln_sha256_dump(mln_sha256_t *s);
描述:将mln_sha256_t
结构信息输出到标准输出上,仅用于调试。
返回值:无
示例
#include <stdio.h>
#include "mln_sha.h"
int main(int argc, char *argv[])
{
mln_sha256_t s;
char text[1024] = {0};
mln_sha256_init(&s);
mln_sha256_calc(&s, (mln_u8ptr_t)"Hello", sizeof("Hello")-1, 1);
mln_sha256_tostring(&s, text, sizeof(text)-1);
printf("%s\n", text);
return 0;
}