Move codes from utils to password and passwordstore

This commit is contained in:
Yishi Lin 2018-09-23 22:00:06 +08:00
parent 429ac1c915
commit 1ab70cf6d7
6 changed files with 41 additions and 40 deletions

View file

@ -10,6 +10,7 @@ import Foundation
import SwiftyUserDefaults
import OneTimePassword
import Base32
import KeychainAccess
public struct AdditionField: Equatable {
public var title: String = ""
@ -377,4 +378,31 @@ public class Password {
let (key, _) = getKeyValuePair(from: line)
return Password.OTP_KEYWORDS.contains(key ?? "")
}
public static func generatePassword(length: Int) -> String{
switch SharedDefaults[.passwordGeneratorFlavor] {
case "Random":
return randomString(length: length)
case "Apple":
return Keychain.generatePassword()
default:
return randomString(length: length)
}
}
private static func randomString(length: Int) -> String {
let letters : NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*_+-="
let len = UInt32(letters.length)
var randomString = ""
for _ in 0 ..< length {
let rand = arc4random_uniform(len)
var nextChar = letters.character(at: Int(rand))
randomString += NSString(characters: &nextChar, length: 1) as String
}
return randomString
}
}

View file

@ -912,4 +912,14 @@ public class PasswordStore {
print(error)
}
}
public func getLastSyncedTimeString() -> String {
guard let lastSyncedTime = SharedDefaults[.lastSyncedTime] else {
return "Oops! Sync again?"
}
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .short
return formatter.string(from: lastSyncedTime)
}
}