|
@@ -1,5 +1,3 @@
|
|
-
|
|
|
|
-
|
|
|
|
import Foundation
|
|
import Foundation
|
|
import Security
|
|
import Security
|
|
|
|
|
|
@@ -21,7 +19,7 @@ public class KeychainManager {
|
|
|
|
|
|
private static func createRandomPassword() -> String {
|
|
private static func createRandomPassword() -> String {
|
|
let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZY1234567890"
|
|
let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZY1234567890"
|
|
- return String((0..<50).map { _ in letters.randomElement()! })
|
|
|
|
|
|
+ return String((0..<36).map { _ in letters.randomElement()! })
|
|
}
|
|
}
|
|
|
|
|
|
private static func addDBSecret() throws -> String {
|
|
private static func addDBSecret() throws -> String {
|
|
@@ -45,7 +43,7 @@ public class KeychainManager {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- private static func queryDBSecret() throws -> String {
|
|
|
|
|
|
+ private static func queryDBSecret() throws -> String {
|
|
let query: [String: Any] = [kSecClass as String: kSecClassGenericPassword,
|
|
let query: [String: Any] = [kSecClass as String: kSecClassGenericPassword,
|
|
kSecAttrAccount as String: "dc_db",
|
|
kSecAttrAccount as String: "dc_db",
|
|
kSecMatchLimit as String: kSecMatchLimitOne,
|
|
kSecMatchLimit as String: kSecMatchLimitOne,
|
|
@@ -57,7 +55,7 @@ public class KeychainManager {
|
|
guard status != errSecItemNotFound else { throw KeychainError.noPassword }
|
|
guard status != errSecItemNotFound else { throw KeychainError.noPassword }
|
|
guard status == errSecSuccess else { throw KeychainError.unhandledError(status: status) }
|
|
guard status == errSecSuccess else { throw KeychainError.unhandledError(status: status) }
|
|
|
|
|
|
- guard let existingItem = item as? [String : Any],
|
|
|
|
|
|
+ guard let existingItem = item as? [String: Any],
|
|
let passwordData = existingItem[kSecValueData as String] as? Data,
|
|
let passwordData = existingItem[kSecValueData as String] as? Data,
|
|
let password = String(data: passwordData, encoding: String.Encoding.utf8)
|
|
let password = String(data: passwordData, encoding: String.Encoding.utf8)
|
|
else {
|
|
else {
|