Your final project assignment is a simple encrypted file system. You may choose to either implement it in the kernel, or as a user-level application.
There are several simplifying assumptions that you are free to make:
Start by implementing a basic file system that can handle the create, open, read, write, and stat operations. Then add some form of encryption. You’ll need to support a synthetic control file to which the key is written. As a basic version, keep the contents of the files in memory. For a more challenging version, store the encrypted files in persistent storage. I.e. Make your file system implementation exist as a layer on top of an existing file system.
As usual, you should turn in any code you modify or write and documentation for your design and testing.