Refactored existing code and added support for symmetric encryption.

I was thinking not to vendor-in reps for libraries, only for the repos resulting in binaries, what do you think?