Generate the salt randomly each time
Percolate errors back up the stack instead of panicing
Use interface for generating salts so that we can both test and re-use the same salt for key_id and secret