/* * Copyright (C) 2013 Freie Universität Berlin * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level * directory for more details. */ /** * @defgroup sys_crypto Crypto * @brief RIOT provides a collection of block cipher ciphers, different operation modes and cryptographic hash algorithms. * * \section ciphers Ciphers * * Riot supports the following block ciphers: * * AES-128 * * 3DES * * Twofish * * Skipjack * * NULL * * You can use them directly by adding "crypto" to your USEMODULE-List. * While you can use the ciphers functions directly, you should resort to * the generic API for block ciphers whenever possible. * * Example: * \code * #include "crypto/ciphers.h" * * ciphter_t cipher; * uint8_t key[16] = {0}, plain_text[16] = {0}, cipher_text[16] = {0}; * * if (cipher_init(&cipher, CIPHER_AES_128, key, key_len) < 0) * printf("Cipher init failed!\n"); * * if (cipher_encrypt(&cipher, plain_text, cipher_text) < 0) * printf("Cipher encryption!\n"); * \endcode * * If you need to encrypt data of arbitrary size take a look at the different * operation modes like: CBC, CTR or CCM. * * Additional examples can be found in the test suite. * * \section hashes Hashes * * RIOT currently supports sha256 as a cryptographic hash implementation. */