/** * @RDE_HEADER@ * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include #include "pwscommon_export.h" namespace ProjectionWorkstation { class PWSCOMMON_EXPORT DES { public: explicit DES(quint64 key); quint64 des(quint64 block, bool mode); quint64 encrypt(quint64 block); quint64 decrypt(quint64 block); static quint64 encrypt(quint64 block, quint64 key); static quint64 decrypt(quint64 block, quint64 key); protected: void keygen(quint64 key); static quint64 ip(quint64 block); static quint64 fp(quint64 block); static void feistel(quint32 &L, quint32 &R, quint32 F); static quint32 f(quint32 R, quint64 k); private: quint64 m_subKey[16]; // 48 bits each }; } // ProjectionWorkstation