CSE443 - Project #1 - Gcrypt Symmetric Key Operations

Due Date: Tu February 7th, 2012, 11:59pm.

This assignment demonstrates the use of the gcrypt library functions to implement a cryptographic protocol. In particular, you are to build symmetric keys for encryption/decryption and message authentication codes to encrypt and authenticate messages that can be decrypted and verified.

Follow these instructions:

  1. Obtain the tarfile from here.

  2. Unpack the tarfile in some appropriate directory on a UNIX system (there are many available at CSE -- see Notes below). You will need to get the gcrypt library (and its dependencies) if the machine does not have it installed already.

  3. You task is to implement three (3) functions: (1) GenerateSymKeys; (2) SealMessageSym; and (3) GetMessageSym. There are comments in the files to guide you to implement the proper functionality.

    These functions must complete the following tasks:

  4. I aim to test your code for the following requirements.

  5. When you have completed the code, test it by encrypting some files and decrypting the contents. I will provide a drop box for submitting this project. The project is due on Tu February 7th at 11:59pm. Please attach a tar file containing all the source, including your additions. You can build this tar file using the command make tar from the source directory.


  1. You are to complete this on your own. Any sharing of code or help during the coding of this project is expressly forbidden. Do not discuss this project with anyone.

  2. A Makefile has been created to help you build the applications. To build, simply type "make" in the target directories.


gcrypt library -- As part of this assignment, you will be required learn and use the GNU cryptography library. Details of this library are presented in the manual.

Trent Jaeger
Last modified: Seb 20 06:43:07 EST 2010