// header file:   Cryptor.hpp
// description:   Special Coder concept class for encryption with a generic key.
//                Design pattern: Strategy, abstract strategy.
// author:        Karlheinz Hug
// creation date: 2012-07-05
// last update:   2012-07-18

#ifndef CRYPTOR_HPP_
#define CRYPTOR_HPP_

#include "Coder.hpp"

	template <typename KEY>
	class Cryptor : public Coder
	{
		public:
			virtual void set_key (const KEY & new_key);
			KEY key () const {return a_key;};

		protected:
			KEY a_key;
	};

	template <typename KEY> void Cryptor<KEY>::set_key (const KEY & new_key)
	{
		a_key = new_key;
	}

#endif // CRYPTOR_HPP_
