CIS-3720 Homework #4 (Obscura)

In this assignment you will extend Obscura, an OpenPGP tool written in Java. Obscura is a large project; a full implementation of OpenPGP and all of its features would require major work. In this assignment you will focus instead on one small aspect of the system. This assignment is likely to be different every year. As Obscura evolves different groups of students will work on different parts of the project, allowing it to accumulate features over time. Proceed as follows:

  1. Make a clone of the Obscura repository from GitHub. Obscura is a Maven project, but you can import such projects into popular IDEs such as IntelliJ (and others). It is also possible to use Maven directly to build and manage the project, with a plain text editor for writing code. The details of setting up Obscure are outside the scope of this document, but have been covered in class.

  2. The immediate goal of the Obscura project (since it lacks a proper requirements document) is to create a program that can decyprt the file example.txt.gpg created by GnuPG, another OpenPGP tool. Thus initial development on Obscura will focus on only the features required to realize this goal. The example file is included in the repository, along with some notes about its structure, in the src/test/resources folder.

    Your assignment is to implement the method iteratedAndSalted in class String2Key. You do not need to implement any other method in that class or any other class. The example uses the iterated and salted method to convert a passphrase into a key used to decrypt the file's contents. That is why we need it.

Submit your version of class String2Key.

Last Revised: 2019-11-01
© Copyright 2019 by Peter C. Chapin <>