From 81ed04b620d75cb57ab63bbb804f837ab3deaf6d Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Mon, 20 Feb 2017 21:56:23 +0800 Subject: [PATCH] add function to generate Apple's style password --- Cartfile | 1 - pass/Helpers/DefaultsKeys.swift | 10 +++++++--- pass/Helpers/Utils.swift | 11 +++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Cartfile b/Cartfile index bfd1d63..c8f12c5 100644 --- a/Cartfile +++ b/Cartfile @@ -4,4 +4,3 @@ github "mssun/objective-git" "master" github "zahlz/SwiftPasscodeLock" "master" github "bitserf/FavIcon" github "kishikawakatsumi/KeychainAccess" "master" - diff --git a/pass/Helpers/DefaultsKeys.swift b/pass/Helpers/DefaultsKeys.swift index 375849e..791e9c1 100644 --- a/pass/Helpers/DefaultsKeys.swift +++ b/pass/Helpers/DefaultsKeys.swift @@ -17,9 +17,6 @@ extension DefaultsKeys { static let pgpPublicKeyArmor = DefaultsKey("pgpPublicKeyArmor") static let pgpPrivateKeyArmor = DefaultsKey("pgpPrivateKeyArmor") -// -// static let pgpPrivateKeyURLPassphrase = DefaultsKey("pgpPrivateKeyURLPassphrase") -// static let pgpPrivateKeyArmorPassphrase = DefaultsKey("pgpPrivateKeyArmorPassphrase") static let pgpKeyID = DefaultsKey("pgpKeyID") static let pgpKeyUserID = DefaultsKey("pgpKeyUserID") @@ -36,5 +33,12 @@ extension DefaultsKeys { static let passcodeKey = DefaultsKey("passcodeKey") static let isHideUnknownOn = DefaultsKey("isHideUnknownOn") + + static let passwordGenerationMethod = DefaultsKey("passwordGenerationMethod") + func initDefaultKeys() { + if Defaults[.passwordGenerationMethod] == "" { + Defaults[.passwordGenerationMethod] = "Random" + } + } } diff --git a/pass/Helpers/Utils.swift b/pass/Helpers/Utils.swift index b76cdc5..729d665 100644 --- a/pass/Helpers/Utils.swift +++ b/pass/Helpers/Utils.swift @@ -37,6 +37,17 @@ class Utils { return lastUpdatedTimeString } + static func generatePassword(length: Int) -> String{ + switch Defaults[.passwordGenerationMethod] { + case "Random": + return randomString(length: length) + case "Keychain": + return Keychain.generatePassword() + default: + return randomString(length: length) + } + } + static func randomString(length: Int) -> String { let letters : NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"