From fbe19d23b70cb051e6089128c7eec1b82589f680 Mon Sep 17 00:00:00 2001 From: "moneromooo.monero" Date: Fri, 16 Dec 2016 00:11:37 +0000 Subject: Use zxcvbn for password strength estimation --- src/libwalletqt/WalletManager.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/libwalletqt/WalletManager.cpp') diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index 0ff8d74d..64e9a1db 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -1,6 +1,7 @@ #include "WalletManager.h" #include "Wallet.h" #include "wallet/wallet2_api.h" +#include "zxcvbn-c/zxcvbn.h" #include #include #include @@ -241,6 +242,21 @@ QUrl WalletManager::localPathToUrl(const QString &path) const return QUrl::fromLocalFile(path); } +double WalletManager::getPasswordStrength(const QString &password) const +{ + static const char *local_dict[] = { + "monero", "fluffypony", NULL + }; + + if (!ZxcvbnInit("zxcvbn.dict")) { + fprintf(stderr, "Failed to open zxcvbn.dict\n"); + return 0.0; + } + double e = ZxcvbnMatch(password.toStdString().c_str(), local_dict, NULL); + ZxcvbnUnInit(); + return e; +} + WalletManager::WalletManager(QObject *parent) : QObject(parent) { m_pimpl = Monero::WalletManagerFactory::getWalletManager(); -- cgit v1.2.3