Refactored existing code and added support for symmetric encryption.

Or possibly just "Authentication"?