Latest Version, WIP

Still a work in progress as there is a flaw in the key generation. Fails
every so often and messages cannot be decrypted. If key generates fine
then all is well and it will always work.