X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fstorage.h;h=9b9ce4f04e921e1e4986936970eb963373e5dded;hp=f5cf556e81b6a2616414bf2b611a19ad44492067;hb=d8b10ef03c8edcec9e81ee126fd5a83e350b1571;hpb=694f9bfbf7f1af19108461c7e00d133e55082bce diff --git a/src/core/storage.h b/src/core/storage.h index f5cf556e..9b9ce4f0 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef STORAGE_H @@ -42,6 +42,16 @@ public: NotAvailable // remove the storage backend from the list of avaliable backends }; + enum HashVersion { + Sha1, +#if QT_VERSION >= 0x050000 + Sha2_512, + Latest=Sha2_512 +#else + Latest=Sha1 +#endif + }; + public slots: /* General */ @@ -408,10 +418,17 @@ signals: void userRemoved(UserId); protected: - //! when implementing a storage handler, use this method to crypt user passwords. - /** This guarantees compatibility with other storage handlers and allows easy migration - */ - QString cryptedPassword(const QString &password); + QString hashPassword(const QString &password); + bool checkHashedPassword(const UserId user, const QString &password, const QString &hashedPassword, const Storage::HashVersion version); + +private: + QString hashPasswordSha1(const QString &password); + bool checkHashedPasswordSha1(const QString &password, const QString &hashedPassword); + +#if QT_VERSION >= 0x050000 + QString hashPasswordSha2_512(const QString &password); + bool checkHashedPasswordSha2_512(const QString &password, const QString &hashedPassword); +#endif };