Bootloader

Форк
0
/
Encryption.cpp 
29 строк · 769.0 Байт
1

2

3
#include <aes.hpp>
4
#include <string.h>
5

6
namespace Bootloader
7
{
8

9
    static const constexpr uint8_t Key[] = { AES_KEY };
10

11
    bool DecryptPage(const uint8_t *input, size_t inputSize, uint8_t *output, size_t *outputSize)
12
    {
13
        if (inputSize % AES_BLOCKLEN != 0)
14
        {
15
            return false;
16
        }
17

18
        for (size_t i = 0; i <= inputSize; i += AES_BLOCKLEN)
19
        {
20
            uint8_t buffer[AES_BLOCKLEN];
21
            memcpy(buffer, &input[i], AES_BLOCKLEN);
22
            AES_ctx ctx;
23
            AES_init_ctx(&ctx, Key);
24
            AES_ECB_decrypt(&ctx, buffer);
25
            memcpy(&output[i], buffer, AES_BLOCKLEN);
26
        }
27
        *outputSize = inputSize;
28
        return true;
29
    }
30

31
} // namespace Bootloader

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.