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.