Wireshark  2.9.0-477-g68ec514b
The Wireshark network protocol analyzer
sober128.h
1 /* This file is derived from sober128 implementation in corosync
2  cluster engine. corosync cluster engine borrows the implementation
3  from LibTomCrypt.
4 
5  The latest version of the original code can be found at
6  http://www.libtom.net/LibTomCrypt/ according to which this code is in the
7  Public Domain
8  */
9 
10 /* About LibTomCrypt:
11  * ---------------------------------------------------------------------
12  * LibTomCrypt, modular cryptographic library -- Tom St Denis
13  *
14  * LibTomCrypt is a library that provides various cryptographic
15  * algorithms in a highly modular and flexible manner.
16  *
17  * The library is free for all purposes without any express
18  * guarantee it works.
19  *
20  * Tom St Denis, tomstdenis@iahu.ca, http://www.libtom.net/LibTomCrypt/
21  */
22 
23 #ifndef _SOBER127_H
24 #define _SOBER127_H
25 
26 #include "ws_symbol_export.h"
27 
28 typedef struct _sober128_prng {
29  unsigned long R[17], /* Working storage for the shift register */
30  initR[17], /* saved register contents */
31  konst, /* key dependent constant */
32  sbuf; /* partial word encryption buffer */
33 
34  int nbuf, /* number of part-word stream bits buffered */
35  flag, /* first add_entropy call or not? */
36  set; /* did we call add_entropy to set key? */
37 
39 
40 WS_DLL_PUBLIC
41 int sober128_start(sober128_prng *prng);
42 WS_DLL_PUBLIC
43 int sober128_add_entropy(const unsigned char *buf, unsigned long len, sober128_prng *prng);
44 WS_DLL_PUBLIC
45 unsigned long sober128_read(unsigned char *buf, unsigned long len, sober128_prng *prng);
46 
47 #endif /* sober128.h */
Definition: sober128.h:28