project 1 specification
==================

implement the Secure Hash Algorithm 1 (SHA-1) in C, using a C development environment (Visual C++ or Code::Blocks)

what is given?
------------------
1. a skeleton called sha1.cpp and the full sha1.h files.
2. the SHA-1 specification - FIPS 180-2.

what to do?
---------------

1. create a New->Project->Console application->C(++)->project title = sha1 (or so)
2. replace the generated main.cpp file with the content of the given sha1.cpp file
3. add the sha1.h file to the project
4. implement, based on the SHA-1 specification, the algorithm methods
5. execute the 3 test runs, as specified in FIPS 180-2, Appendix A (A1, A2, A3).

theoretical issues
----------------------

1. bitwise operations in C: AND, OR, XOR, left/right shift, NOT (&, |, ^, <<, >>, ~)
2. generalities about the the SHA_1 hash function (see the generalities.txt file in the main folder)
3. the macros: S(x, n) (circular left shift), GET_UINT32(n, b, i) and PUT_UINT32(n, b, i)
4. the memset() and memcpy() functions