8 #include "core/aes/aes.hpp"
21 AES_CBC() { memset(&m_ctx, 0,
sizeof(m_ctx)); }
28 void Init(
const uint8_t *key,
const uint8_t *iv);
35 void Encrypt(uint8_t *buf,
size_t length);
42 void Decrypt(uint8_t *buf,
size_t length);
82 static void Pad(std::string &data);
93 static int Pad(uint8_t *in,
int inSize, uint8_t *out,
int &outSize);
99 static void UnPad(std::string &data);
108 static int UnPad(uint8_t *data,
int &size);
113 static void Encode(
const uint8_t *key,
const uint8_t *iv, std::string &base64);
115 static void Decode(
const std::string &base64, uint8_t *key, uint8_t *iv);
用于数据的AES CBC模式的加解密
Definition: Crypto.hpp:19
void Decrypt(uint8_t *buf, size_t length)
对数据进行解密,需要保证数据16字节对齐
AES_CBC()
Definition: Crypto.hpp:21
void Encrypt(uint8_t *buf, size_t length)
对数据进行加密,需要保证数据16字节对齐
void Init(const uint8_t *key, const uint8_t *iv)
初始化AES的上下文
Definition: Crypto.hpp:111
static void Decode(const std::string &base64, uint8_t *key, uint8_t *iv)
static void Encode(const uint8_t *key, const uint8_t *iv, std::string &base64)
Pkcs7填充与去填充
Definition: Crypto.hpp:76
static int UnPad(uint8_t *data, int &size)
去掉填充
static void UnPad(std::string &data)
去掉填充
static int Pad(uint8_t *in, int inSize, uint8_t *out, int &outSize)
填充
static void Pad(std::string &data)
填充
用于AES的key和iv的加解密
Definition: Crypto.hpp:49
static void Decrypt(uint32_t *v, int n, const uint32_t key[4]=m_teaKey, uint32_t delta=m_delta)
使用teaKey解码出aes的key和iv
static const uint32_t m_delta
Definition: Crypto.hpp:52
static const uint32_t m_teaKey[4]
Definition: Crypto.hpp:51
static void Encrypt(uint32_t *v, int n, const uint32_t key[4]=m_teaKey, uint32_t delta=m_delta)
使用aes的key和iv编码出teaKey
Definition: EmxGpio.hpp:10