RIOT provides a collection of block cipher ciphers, different operation modes and cryptographic hash algorithms. More...
RIOT provides a collection of block cipher ciphers, different operation modes and cryptographic hash algorithms.
RIOT supports the following block ciphers:
You can use them directly by adding crypto_aes_128, crypto_aes_192 or crypto_aes_256 to your USEMODULE-List. While you can use the ciphers functions directly, you should resort to the generic API for block ciphers whenever possible.
Depending on the selected block ciphers, a sufficient large buffer size of the cipher_context_t is used for en-/de-cryption operations.
Example:
Some aspects of the AES implementation can be fine tuned by pseudo-modules:
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.
Modules | |
| HACL* High Assurance Cryptographic Library | |
| Support for HACL* (High Assurance Cryptographic Library)  | |
| Lightweight ASN.1 decoding/encoding library | |
| Lightweight ASN.1 decoding/encoding library.  | |
| Micro-ECC for RIOT | |
| Micro-ECC for RIOT.  | |
| Relic toolkit for RIOT | |
| Provides the Relic cryptographic toolkit to RIOT.  | |
| chacha20poly1305 AEAD cipher | |
| Provides RFC 8439 style chacha20poly1305.  | |
| poly1305 | |
| Poly1305 one-time message authentication code.  | |
Files | |
| file | aes.h | 
| Headers for the implementation of the AES cipher-algorithm.  | |
| file | chacha.h | 
| ChaCha stream cipher.  | |
| file | ciphers.h | 
| Headers for the packet encryption class.  | |
| file | helper.h | 
| helper functions for sys_crypto_modes  | |
| file | cbc.h | 
| Cipher block chaining mode of operation for block ciphers.  | |
| file | ccm.h | 
| Counter with CBC-MAC mode of operation for block ciphers.  | |
| file | ctr.h | 
| Counter mode of operation for block ciphers.  | |
| file | ecb.h | 
| Electronic code book mode of operation for block ciphers.  | |
| file | ocb.h | 
| Offset Codebook (OCB3) AEAD mode as specified in RFC 7253.  | |