restructure certs/keys; add key/cert generation

NID is also now an exposed type