From 62cad6fda0a377350661251e0f0aec6e7fd5e9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Thunstr=C3=B6m?= Date: Sun, 17 Apr 2016 23:56:06 +0200 Subject: [PATCH] Fix entropy count by merging characters sets before calculating --- MacPass/NSString+MPPasswordCreation.m | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/MacPass/NSString+MPPasswordCreation.m b/MacPass/NSString+MPPasswordCreation.m index 1f169208..7b9717eb 100644 --- a/MacPass/NSString+MPPasswordCreation.m +++ b/MacPass/NSString+MPPasswordCreation.m @@ -105,11 +105,16 @@ static NSString *mergeWithoutDuplicates(NSString* baseCharacters, NSString* cust } - (CGFloat)entropyWhithPossibleCharacterSet:(MPPasswordCharacterFlags)allowedCharacters orCustomCharacters:(NSString *)customCharacters { - CGFloat alphabetCount = customCharacters.length; + NSString *characters = nil; if(nil == customCharacters) { - NSString *stringSet = allowedCharactersString(allowedCharacters); - alphabetCount = stringSet.length; + characters = allowedCharactersString(allowedCharacters); } + else { + NSString *characters = mergeWithoutDuplicates( + allowedCharactersString(allowedCharacters), + customCharacters); + } + CGFloat alphabetCount = characters.length; CGFloat passwordLegnth = self.length; return passwordLegnth * ( log10(alphabetCount) / log10(2) ); }