/***************************************************************************
- * Copyright (C) 2005-2013 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 *
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 */
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
};