一、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缓冲区的长度,以字节为单位
返回:写出的字节数或负错误代码。
本文介绍了几种音视频加密技术,包括CAST5、DES和HMAC等。详细解释了这些技术的数据结构、函数及变量等内容,并提供了加密解密的实现方法。
1111

被折叠的 条评论
为什么被折叠?



