概述
一、AES
一)、函数
struct AVAES * | av_aes_alloc (void) |
int | av_aes_init (struct AVAES *a, const uint8_t *key, int key_bits, int decrypt) |
参数:key_bits:128,192或256
decrypt:0加密,1解密
void | av_aes_crypt (struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) |
参数:count:16字节块数
dst:目标数组,可以等于src
src:源数组,可以等于dst
iv:CBC模式的初始化向量,如果NULL,则使用ECB
decrypt::0加密,1解密
二)、变量
const int | av_aes_size |
二、Base64
一)、宏
#define | AV_BASE64_DECODE_SIZE(x) ((x) * 3LL / 4) |
#define | AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) |
二)、函数
int | av_base64_decode (uint8_t *out, const char *in, int out_size) |
参数:out:缓冲区用于解码数据
in: 以空值终止的输入字符串
out_size:输出缓冲区的大小(以字节为单位)必须至少为in的长度的3/4,即AV_BASE64_DECODE_SIZE(strlen(in))
返回:写入的字节数,或者在输入无效的情况下为负值
char * | av_base64_encode (char *out, int out_size, const uint8_t *in, int in_size) |
参数:out:编码数据的缓冲区
out_size:输出缓冲区(包括空终止符)的字节大小必须至少为AV_BASE64_SIZE(in_size)
in:输入缓冲区包含要编码的数据
in_size:在缓冲区中以字节为单位的大小
返回:出错或出现错误时为NULL
三、Blowfish
一)、结构体
struct AVBlowfish{
uint32_t | p [AV_BF_ROUNDS+2]; |
uint32_t | s [4][256] |
}
二)、宏
#define | AV_BF_ROUNDS 16 |
三)、函数
AVBlowfish * | av_blowfish_alloc (void) |
void | av_blowfish_init (struct AVBlowfish *ctx, const uint8_t *key, int key_len) |
参数:ctx:一个AVBlowfish上下文
key:密匙
key_len:密匙长度
void | av_blowfish_crypt_ecb (struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr, int decrypt) |
参数:ctx:一个AVBlowfish上下文
xl:剩下四个字节一半的输入要加密
xr:右侧四位半字节的输入要加密
decrypt:0加密,1解密
void | av_blowfish_crypt (struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) |
参数:ctx:一个AVBlowfish上下文
dst:目标数组,可以等于src
src:源数组,可以等于dst
count:8字节块数
iv:CBC模式的初始化向量,如果使用NULL ECB
decrypt:0加密,1解密
四、CAMELLIA
一)、函数
struct AVCAMELLIA * | av_camellia_alloc (void) |
int | av_camellia_init (struct AVCAMELLIA *ctx, const uint8_t *key, int key_bits) |
参数:ctx:AVCAMELLIA上下文
key:用于加密/解密的16,24,32字节的密钥
key_bits:密钥数:可能是128,192,256
void | av_camellia_crypt (struct AVCAMELLIA *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) |
参数:ctx:AVCAMELLIA上下文
dst:目标数组,可以等于src
src:源数组,可以等于dst
count:16字节块的数量iv CBC模式的初始化向量,ECB模式为NULL
decrypt:0加密,1解密
二)、变量
const int | av_camellia_size |
最后
以上就是贪玩心锁为你收集整理的FFMPEG学习【libavutil】:Crypto and Hashing(一)的全部内容,希望文章能够帮你解决FFMPEG学习【libavutil】:Crypto and Hashing(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复