1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

69 Commits

Author SHA1 Message Date
José Alamos
d16d911f42
Merge pull request #10120 from mtausig/ocb
Add OCB encryption mode
2019-04-23 11:08:30 +02:00
Mathias Tausig
aa611f6468 crypto: Implement OCB encryption mode 2019-04-23 10:34:32 +02:00
Kevin "Bear Puncher" Weiss
7dc243e3cc
Merge pull request #10220 from bergzand/pr/crypto/chacha20poly1305
chacha20poly1305: Initial implementation of AEAD cipher.
2019-02-04 12:52:24 +01:00
1990e1629a
crypto: Add chacha20poly1305 AEAD algorithm 2019-02-04 09:29:26 +01:00
e29adedfc5 sys/crypto/aes: avoid UB by explicit unsigned integer promotion 2019-01-21 14:01:22 +01:00
Kevin "Bear Puncher" Weiss
f05852290a
Merge pull request #9236 from bergzand/pr/crypto/poly1305
crypto: Poly1305 implementation
2018-12-03 14:31:28 +01:00
731ceda2f7
crypto/poly1305: Initial import
poly1305 implementation strongly based on
https://github.com/floodyberry/poly1305-donna
2018-12-03 09:31:09 +01:00
Juan I Carrano
77c9cc4041
Merge pull request #10219 from bergzand/pr/crypt/helper_add_wipe
crypto/helper: Add secure wipe function
2018-11-30 11:32:45 +01:00
Gaëtan Harter
c87fe94ec1
crypto/modes/ccm: update api to const input buffers
Input buffers are not modified, so can be declared const arguments.
2018-11-19 16:44:04 +01:00
Gaëtan Harter
9e6782afb4
crypto/modes/ccm: update internal functions to const input buffers
Input buffers are not modified, so can be declared const arguments.
This will allow using `const` inputs for `modes/ccm`.

Also say `iv` const even if not required for the api update, just because it is
the case.
2018-11-19 16:44:09 +01:00
Gaëtan Harter
9427371849
crypto/modes/ctr: update api to const input buffers
Input buffers are not modified, so can be declared const arguments.
This will allow using `const` inputs for `modes/ccm`.
2018-11-19 16:44:04 +01:00
Juan Carrano
3393dafe82 sys/crypto: configure AES via pseudomodules.
USEMODULE += crypto_aes_precalculated enables the precalculated T tables (the old
code).
USEMODULE += crypto_aes_unroll causes loops to be unrolled.
2018-11-15 18:25:26 +01:00
Oleg Artamonov
05fe168a1e sys/crypto: optimize AES 2018-11-15 18:21:17 +01:00
Wentao Shang
3fd8276c37
crypto/ccm: fix auth_data_len upperbound value
RFC3610 states that len_encoding is only valid for "0x0001 ... 0xFEFF"

   If 0 < l(a) < (2^16 - 2^8), then the length field is encoded as two
   octets which contain the value l(a) in most-significant-byte first
   order.
2018-11-12 16:38:45 +01:00
Gaëtan Harter
f0e785a430
crypto/ccm: check ccm_compute_adata_mac return value
Return value was ignored but function could fail
2018-11-12 16:37:00 +01:00
fa64817e61
crypto/helper: Add secure wipe function
Adds a cryptographically secure wipe function to wipe structs with
sensitive data. Works by first casting the pointer to a `volatile`
pointer to ensure that the compiler doesn't optimize the "memset" away.
2018-11-07 09:38:08 +01:00
ed23bdf25a
crypto/helper: Change equals arguments to const 2018-10-21 20:27:33 +02:00
7d013eb2b6 sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
Gaëtan Harter
fa33eacd1f
crypto/ccm: fix _fits_in_nbytes function
Function is broken with num_bytes >= 4.

Could happen when storing input_len with len_encoding >= 4.
It can take values from 2 to 8, so make it work for cases it would overflow.
2018-05-07 15:08:00 +02:00
Gaëtan Harter
ee311a331b
crypto/ccm: refactor input_len check in a function
Refactorg checking that length can be stored in a number of bytes to a
subfunction.
2018-05-07 15:08:00 +02:00
Wentao Shang
89023b3499
crypto/ccm: fix input_len check
Maximum input_len depends only on length_encoding and not auth_data_len.
The current length_max value was also wrong.

RFC3610 page 2

   3. The message m, consisting of a string of l(m) octets where 0 <=
      l(m) < 2^(8L).  The length restriction ensures that l(m) can be
      encoded in a field of L octets.
2018-05-07 15:08:00 +02:00
61f1b941ce make: replace curly braces with parenthesis 2018-03-22 20:43:15 +01:00
4ec8f4c2fc sys: instead of cpp-style, use C-style comments 2018-02-06 16:59:58 +01:00
Vincent Dupont
4f6fadbdc7 crypto/cbc: constify input buffers 2017-06-27 18:58:33 +02:00
Emmanuel Baccelli
6589c01aa0 sys/crypto: remove 3DES 2017-04-25 18:34:18 +02:00
Martine Lenders
62ca7f9242 crypto: fix cppcheck warnings 2017-04-14 14:36:14 +02:00
Oleg Hahm
c2893d4a88 sys: crypto: remove twofish and rc5 2017-01-15 14:53:43 +01:00
Mathias Tausig
3a3b26e70a ciphers: Added defines for return values of cipher_init() and [specific cipher]_init() functions
New definitions: CIPHER_INIT_SUCCESS and CIPHER_ERR_BAD_CONTEXT_SIZE
2016-10-04 13:01:38 +02:00
Oleg Hahm
b428979a1d debug: add missing line breaks 2016-09-27 23:38:41 +02:00
Cenk Gündoğan
e70c5d416e Merge pull request #4787 from BytesGalore/doc_crypto_add_word_on_required_cflags
doc crypto: add word on using required `CFLAGS`
2016-03-03 13:36:27 +01:00
9082273746 core: header cleanup 2016-02-28 22:46:28 +01:00
BytesGalore
d09ae8f384 doc crypto: add word on using required CFLAGS 2016-02-12 08:41:53 +01:00
Oleg Hahm
825ba72751 doc crypto: fixed typo and improved example 2016-02-11 11:44:57 +01:00
Oleg Hahm
51db509f7c sha256: move from crypto to hashes 2016-02-04 14:58:34 +01:00
René Kijewski
cecb4c8c56 crypto: remove skipjack support
Unused, unmaintained, buggy code for an unknown algorithm.
2015-09-25 00:05:18 +02:00
Oleg Hahm
a0957b11d6 Merge pull request #3926 from OlegHahm/some-scan-build-warnings
clean up: Some scan build warnings
2015-09-22 11:43:20 +02:00
René Kijewski
d2afdf5079 crypto: memcpy() in overlapping data in ccm
`memcpy()` must not be used if the input and output ranges overlap,
because it is undefined if the data if copied from front to the end or
vice versa.

Found via valgrind.
2015-09-22 11:01:56 +02:00
Oleg Hahm
e15bdd257a debug: replace __FILE__ by RIOT_RELATIVE_FILE 2015-09-20 01:51:47 +02:00
Oleg Hahm
fac95806a8 sys: replace DEBUGF with corresponding DEBUG calls 2015-09-20 01:51:47 +02:00
Oleg Hahm
4a8e897c0e doc: minor fixing for crypto module
Moves the crypto module documentation to the right group and streamline the doxygen keywords.
2015-08-26 10:42:50 +02:00
Oleg Hahm
4f4b924e6f crypto: replaced printf with DEBUGF
also getting rid of non-ISO compliant __FUNCTION__ macros
2015-08-04 17:47:40 +02:00
Nico von Geyso
4a4235c622 Unified Cipher API and Block cipher operation modes 2015-07-22 19:18:34 +02:00
René Kijewski
2cf4253710 sys: add ChaCha stream cipher and PRNG
This implementation is optimized for a little code and data size, not
for speed. IMO the code is more readable than in the reference
implementation.

The biggest advantage of ChaCha over other stream ciphers is the very
little data usage with only 64 bytes of context, and its good encryption
speed.

Also part of this PR is pseudo-random number generator, that just
returns the keystream of a randomly initialized ChaCha context.
2015-06-28 18:32:04 +02:00
Joakim Gebart
13832d8e62 everything: Remove filename from @file Doxygen command 2015-05-22 07:34:41 +02:00
Hinnerk van Bruinehsen
ff6a7febc6 lint: fix uselessAssignmentPtrArg 2014-10-31 01:24:30 +01:00
Hinnerk van Bruinehsen
ec98c85a05 lint: fix unusedVariable warnings
SQUASH ME: into unusedVariable (annotated)

SQUASH ME: into unusedVariable (II)

SQUASH ME: into unreadVariable (II)
2014-10-31 01:24:29 +01:00
Oleg Hahm
6d8c0d74c3 doc: some doxygen cleanups
* removed RIOT unrelated cpu documentation
* introduced cpu_specific prefix to mark such documentation
* put oneway_malloc and crypto into sys group
2014-10-23 17:29:25 +02:00
Hinnerk van Bruinehsen
57b998e4a1 cpu/examples/sys/drivers: reduce scope of variables 2014-09-13 19:03:40 +02:00
Ludwig Ortmann
b7992922ce fix license headers in non-.c files 2014-08-23 16:16:26 +02:00
Oleg Hahm
feca0d73c8 crypto: get rid of compiler warnings 2014-08-01 00:04:55 +02:00