[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v3 0/4] lib/ukswrand: Add ChaCha20
Hey Simon, On 11.11.2019 14:11, Simon Kuenzer wrote: > Hi Vlad, > > thanks a lot for your work. I was trying out your patches and it looks > good so far. > > Design-wise I would like to change the way how the seed is handled. I > think we have two options (although I prefer the second idea): > > 1) Remove the seed argument from the init function API > (`uk_swrandr_init_r`). The random number generators would call the > function as often as seeds are needed by themselves. > > 2) Extend the seed argument at the init function API > (`uk_swrandr_init_r`) with a custom sized vector: > > void uk_swrand_init_r(struct uk_swrand *r, unsigned int seedc, const > __u32 seedv[]); > > ...or even abstract it with a random byte buffer: > > void uk_swrand_init_r(struct uk_swrand *r, __sz seedlen, const void > *seed); > > A helper function in `chacha.c` would make it easy to access as many > bytes as needed (as example to the vector): > > static inline __u32 _infvec_val(unsigned int c, __u32 v[], unsinged > int pos) > { > if (c == 0) > return 0x0; > return vec[pos % c]; > } > > This would keep us the ability that we can initialize multiple random > number generator instances while keeping it flexible which seed source > someone wants to use (similar to libc's random functions). In the > library constructor we would need to dimension the vector size > according to the selected default random number generator. We could do > this by using a vector of 2 numbers as default and use a > compile-guard'ed version with 10 numbers for ChaCha. > > Independent of this, we should also decide if we want to make > `_get_random_seed()` public on the API or if we want to keep internal > to the library. In the public case, I would rename it to `__u32 > uk_swrandr_gen_seed32(void)` (and adding it to `exportsyms.uk`). In > the other case, try to remove it from the API header and introduce a > small internal header (e.g, `/lib/ukswrandr/swrandr.h`) that is > included with quotes in your sources: `#include "swrandr.h"` > > What do you think? This seems like a better approach to handling the seed. I'll send a v4 with the proposed changes. > > > Thanks, > > Simon > > On 21.10.19 13:35, Vlad-Andrei BĂDOIU (78692) wrote: >> We add the ChaCha20 algorithm. This patch series refactors the >> existing code for multiple algorithms support. >> >> Changes since v2: >> * Moved _uk_rotl32 to chacha.c >> * Moved the constructor and _get_random_seed32 to swrand.c >> * Added compile check for rdrand >> * Changed to drop-down menu in config. >> >> >> Vlad-Andrei Badoiu (4): >> lib/ukswrand: Adapt the library to work with multiple algorithms >> lib/ukswrand: Add seed generating function >> lib/ukswrand: Add ChaCha algorithm >> lib/ukswrand: Fix uk_swrand_fill_buffer to fill the entire buffer >> >> lib/ukswrand/Config.uk | 29 +++++- >> lib/ukswrand/Makefile.uk | 2 + >> lib/ukswrand/chacha.c | 151 +++++++++++++++++++++++++++++++ >> lib/ukswrand/include/uk/swrand.h | 10 +- >> lib/ukswrand/mwc.c | 37 ++------ >> lib/ukswrand/swrand.c | 86 ++++++++++++++++++ >> 6 files changed, 273 insertions(+), 42 deletions(-) >> create mode 100644 lib/ukswrand/chacha.c >> create mode 100644 lib/ukswrand/swrand.c >> _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |