Cryptographic Functions
We provide implementations of several cryptographic algorithms that you can use in your implementation.
These utilities are defined in userlib, which is already imported into client.go.
You cannot use any external cryptography libraries. The autograder will refuse external libraries except those given in client.go (see Autograded Code).