From 9586a443b60fc29a20cf71c769fe36ce8396ebe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 28 Jul 2023 10:46:21 -0400 Subject: [PATCH] PIN: increase size to 16 chars Increases entropy from 41,36 bits to 82,72 bits. GitLab: https://git.jami.net/savoirfairelinux/jami-project/-/issues/1587 Change-Id: Ib5b73ef493963bfabaf87686ad22eccfd0079e31 --- src/jamidht/archive_account_manager.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/jamidht/archive_account_manager.cpp b/src/jamidht/archive_account_manager.cpp index 5b930b04ef..9b887bb4be 100644 --- a/src/jamidht/archive_account_manager.cpp +++ b/src/jamidht/archive_account_manager.cpp @@ -653,15 +653,18 @@ ArchiveAccountManager::changePassword(const std::string& password_old, } std::string -generatePIN(size_t length = 8) +generatePIN(size_t length = 16, size_t split = 8) { static constexpr const char alphabet[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; dht::crypto::random_device rd; std::uniform_int_distribution<size_t> dis(0, sizeof(alphabet) - 2); std::string ret; ret.reserve(length); - for (size_t i = 0; i < length; i++) + for (size_t i = 0; i < length; i++) { ret.push_back(alphabet[dis(rd)]); + if (i % split == split - 1 and i != length - 1) + ret.push_back('-'); + } return ret; } -- GitLab