aboutsummaryrefslogtreecommitdiff
path: root/src/cc20rng/cc20_prng.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cc20rng/cc20_prng.h')
-rw-r--r--src/cc20rng/cc20_prng.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/cc20rng/cc20_prng.h b/src/cc20rng/cc20_prng.h
index 6940f53..08f78d7 100644
--- a/src/cc20rng/cc20_prng.h
+++ b/src/cc20rng/cc20_prng.h
@@ -3,16 +3,22 @@
#include <stdint.h>
-#define CHACHA20_MAX_BLOCK_COUNTER 0xffffffff
-#define CHACHA20_NUM_WORDS 16
-#define CHACHA20_BLOCK_SIZE (CHACHA20_NUM_WORDS * 4)
+#define CHACHA20_BLOCK_SIZE_WORDS 16
+#define CHACHA20_BLOCK_SIZE (CHACHA20_BLOCK_SIZE_WORDS * 4)
struct cc20_state {
- uint32_t i[CHACHA20_NUM_WORDS];
+ union {
+ struct {
+ uint32_t constant[4];
+ uint32_t key[8];
+ uint32_t counter;
+ uint32_t nonce[3];
+ } s;
+ uint32_t i[CHACHA20_BLOCK_SIZE_WORDS];
+ };
};
-extern void chacha20_prng_reseed(struct cc20_state *cc, uint32_t *entropy);
-extern void chacha20_prng_block(struct cc20_state *cc, uint32_t block_counter, struct cc20_state *out);
-extern int chacha20_prng_self_test();
+void chacha20_prng_block(struct cc20_state *cc, uint8_t *out);
+int chacha20_prng_self_test();
#endif /* __STM32_CHACHA20_H */