File pointer troubles:
I am unsure of how to efficiently  implement file pointer manipulation right now, by only extending key.py without adding new functionality.
In some cases, the file pointer being passed in to the EncryptedKey functions is either read only, or write only, and that causes some problems,
when I want to read it all in, and decrypt it, and write it back, or vice versa. Also, if I want to reopen the file, based on fp.name, how do I handle
StringIO type objects being passed in as fp?