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 `proj2.go`_. .. important:: You **cannot** use any external cryptography libraries. The autograder will refuse external libraries except those given in `proj2.go`_ (see :doc:`/grading/code`). The following pages document the crypto functions provided in `userlib`_. .. toctree:: public_key_encryption.rst digital_signatures.rst hash.rst hmac.rst hkdf.rst password_key_derivation.rst symmetric_encryption.rst random_byte_generator.rst .. _userlib: https://github.com/cs161-staff/project2-userlib/blob/master/userlib.go .. _proj2.go: https://github.com/cs161-staff/project2-starter-code/blob/main/proj2.go