Split/refactor crypto.h into smaller separate modules
This will make it easier to maintain, as well as easier to create new/alternate implementations of portions of the code (e.g. in Rust). `crypto.h` is already somewhat neatly partitioned into sections. nickm said that likely appropriate categories for code for the new modules are
> something like: rsa, stream cipher, digest+xof, prime-field dh, openssl management, PRNG, and derived functions.
issue