Bootloader
/
Encryption.cpp
29 строк · 769.0 Байт
1
2
3#include <aes.hpp>
4#include <string.h>
5
6namespace Bootloader
7{
8
9static const constexpr uint8_t Key[] = { AES_KEY };
10
11bool DecryptPage(const uint8_t *input, size_t inputSize, uint8_t *output, size_t *outputSize)
12{
13if (inputSize % AES_BLOCKLEN != 0)
14{
15return false;
16}
17
18for (size_t i = 0; i <= inputSize; i += AES_BLOCKLEN)
19{
20uint8_t buffer[AES_BLOCKLEN];
21memcpy(buffer, &input[i], AES_BLOCKLEN);
22AES_ctx ctx;
23AES_init_ctx(&ctx, Key);
24AES_ECB_decrypt(&ctx, buffer);
25memcpy(&output[i], buffer, AES_BLOCKLEN);
26}
27*outputSize = inputSize;
28return true;
29}
30
31} // namespace Bootloader