Описание: Легковесная библиотека с криптографическими алгоритмами, полностью написанная на C99 и имеющая выходной размер 140 килобайт. Её главная цель это минимазция кода и его зависимостей, а так же кроссплатформенность. Библиотека реализует и предоставляет следующий список криптографических примитивов:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Исходный код: https://github.com/Receiver1/tinycrypt
			
			- SHA-256
 - HMAC
 - HMAC-PRNG
 - AES-128 (реализация только для 128 битового ключа)
 - CTR mode
 - CBC mode
 - CMAC mode
 - CCM mode
 - ECC-DH (реализация только для кривой secp256r1)
 - ECC-DSA
 
- git clone https://github.com/Receiver1/tinycrypt
 - mkdir build & cd build
 - cmake ..
 - cmake --build . --config Release
 - ctest -C Release (для прогона тестов)
 
			
				C++:
			
		
		
		// AES это блочный шифр, поэтому на вход мы подаём данные партиями по TC_AES_BLOCK_SIZE = 16 байт
std::uint8_t plain_text[TC_AES_BLOCK_SIZE]{}; // Исходные данные
std::uint8_t cipher_key[TC_AES_KEY_SIZE]{}; // Ключ шифрования
std::uint8_t cipher_text[TC_AES_BLOCK_SIZE]{}; // Зашифрованные данные
// На этом этапе нужно заполнить plain_text и cipher_key
tc_aes_key_sched_struct state{};
if (tc_aes128_set_encrypt_key(&state, cipher_key) != 1)
    exit(EXIT_FAILURE);
if (tc_aes_encrypt(cipher_text, plain_text, &state) != 1)
    exit(EXIT_FAILURE);
// На этом этапе cipher_text содержит зашифрованные данные
	Исходный код: https://github.com/Receiver1/tinycrypt
Это мой форк библиотеки переведённый на CMake.
Copyright (c) 2017, Intel Corporation. All rights reserved.
Copyright (c) 2017, Intel Corporation. All rights reserved.
			
				Последнее редактирование: