X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fstorage.h;h=71492d5b8f92e255340e4e66f0063cc8e73be77e;hb=1d1178f7d73ab19e62798f23c1d0cd5e0b4cdb59;hp=9984d3177bcc51d0c48ec0fc3a0fa9de3970a283;hpb=b65b9f7615165e8700a44d59b7275a55558dd45b;p=quassel.git diff --git a/src/core/storage.h b/src/core/storage.h index 9984d317..71492d5b 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -42,6 +42,13 @@ public: NotAvailable // remove the storage backend from the list of avaliable backends }; + enum HashVersion { + Sha1, + Sha2_512, + Latest=Sha2_512 + + }; + public slots: /* General */ @@ -408,10 +415,16 @@ 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); + + QString hashPasswordSha2_512(const QString &password); + bool checkHashedPasswordSha2_512(const QString &password, const QString &hashedPassword); + QString sha2_512(const QString &input); };