https://github.com/shadowproject/shadow/blob/f3fa333f8377688...
That's really hard to read.
Also, don't use OpenSSL: https://paragonie.com/blog/2016/05/how-generate-secure-rando...
Yes we're always where the critics are, they are or best source of information.
I'm very happy to see our work being reviewed. I'm not an expert cryptographer but I am capable of understanding it. (fyi I didn't code it).
Our memcmp in constant time is not the prettiest, but it's short so we roll with it :P
This project started around 2014, LibSodium was still very small back then and OpenSSL, in ours view, remains the defacto standard. Is there any particular reason on why we should move away from RAND_bytes() ?
https://github.com/ramsey/uuid/issues/80
https://github.com/nodejs/node/issues/5798
There are also some recent IACR papers (linked in the Node thread), but those are the two biggest concerns.
That link to NodeJS was a good read, I'm fairly convinced that we should ditch RAND_bytes from OpenSSL for something more secure, we'll look into LibSodium.
I've caught rumours of a possible RAND_sys_bytes which operates over the systems CSPRNG? We like to be conservative on the libs.
We'd like to tip you for your efforts, do you have a Bitcoin (or ShadowCash) address?
1D6RMsgnTAf2GLWpD91EaQvQ5ppuaZKkGT
On the other hand I agree to switching over to a different mode to eliminate padding oracle attacks.
The IV are 16 random bytes generated by OpenSSL's RAND_bytes. https://github.com/shadowproject/shadow/blob/master/src/smes...