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. | |