Moved some methods that shouldn't be in the interface to AbstractCipher,
added methods that should be in interface.
Reset yet again