一、CAST5、
一)、函数
struct AVCAST5 * | av_cast5_alloc (void) |
分配AVCAST5上下文要释放结构体:av_free(ptr)
int | av_cast5_init (struct AVCAST5 *ctx, const uint8_t *key, int key_bits) |
参数:ctx:AVCAST5上下文
key:一个5,6,... 16字节的密钥用于加密/解密
key_bits:密钥数:可能是40,48,...,128
返回:0成功,故障时小于0
void | av_cast5_crypt (struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, int decrypt) |
参数:ctx:AVCAST5上下文
dst:目标数组,可以等于src
src:源数组,可以等于dst
count:8字节块数
decrypt:0加密,1解密
void | av_cast5_crypt2 (struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) |
参数:ctx:AVCAST5上下文
dst:目标数组,可以等于src
src:源数组,可以等于dst
count:8字节块数
iv:CBC模式的初始化向量,ECB模式为NULL
decrypt:0加密,1解密
二)、变量
const int | av_cast5_size |
二、DES
一)、数据结构
struct | AVDES{ uint64_t round_keys [3] [16]; int triple_des; } |
二)、函数
AVDES * | av_des_alloc (void) |
int | av_des_init (struct AVDES *d, const uint8_t *key, int key_bits, int decrypt) |
参数:key_bits:必须是64或192
decrypt:0加密/ CBC-MAC,1解密
返回:成功为零,否则为负值
void | av_des_crypt (struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) |
参数:count:8字节块数
dst:目标数组,可以等于src,必须是8字节对齐
src:源数组,可以等于dst,必须是8字节对齐,可能是NULL
iv:用于CBC模式的初始化向量,如果为NULL则ECB将被使用,必须是8字节对齐
decrypt: 0加密,1解密
void | av_des_mac (struct AVDES *d, uint8_t *dst, const uint8_t *src, int count) |
参数:dst:目标数组,可以等于src,必须是8字节对齐
count:8字节块数
src:源数组,可以等于dst,必须是8字节对齐,可能是NULL
三、HMAC
一)、宏
enum | AVHMACType { AV_HMAC_MD5, AV_HMAC_SHA1, AV_HMAC_SHA224, AV_HMAC_SHA256, AV_HMAC_SHA384 = 12, AV_HMAC_SHA512 } |
二)、函数
AVHMAC * | av_hmac_alloc (enum AVHMACType type) |
参数:type:用于HMAC的哈希函数。
void | av_hmac_free (AVHMAC *ctx) |
参数:ctx:用来释放的上下文,可能为NULL
void | av_hmac_init (AVHMAC *ctx, const uint8_t *key, unsigned int keylen) |
参数:ctx:HMAC上下文
key:验证密钥
keylen:密钥的长度,以字节为单位
void | av_hmac_update (AVHMAC *ctx, const uint8_t *data, unsigned int len) |
参数:ctx:HMAC上下文
data:哈希的数据
len:数据的长度(以字节为单位)
int | av_hmac_final (AVHMAC *ctx, uint8_t *out, unsigned int outlen) |
参数:ctx:HMAC上下文
out:将消息写入的输出缓冲区
outlen:out缓冲区的长度,以字节为单位
返回:写出的字节数或负错误代码。
int | av_hmac_calc (AVHMAC *ctx, const uint8_t *data, unsigned int len, const uint8_t *key, unsigned int keylen, uint8_t *out, unsigned int outlen) |
参数:ctx:HMAC上下文
data:哈希的数据
len:数据的长度(以字节为单位)
key:验证密钥
keylen:密钥的长度,以字节为单位
out:将消息写入的输出缓冲区
outlen:out缓冲区的长度,以字节为单位
返回:写出的字节数或负错误代码。