快速添加“kSecAttrSynchronized”阻止保存私钥

问题描述 投票:0回答:1

您好,我正在使用下面的代码将私钥(端到端加密所需的)保存到钥匙串中。如果我取出带有“kSecAttrSynchronized as String: kCFBooleanTrue!”的行,则密钥将被正确保存。看来这条线导致了错误。我正在尝试让私钥在所有 iCloud 设备之间同步。如果您能帮助解决此问题,我将不胜感激。谢谢。

func save(userUID: String, privatekey: String) {
        let passwordData = privatekey.data(using: .utf8)!
        
        let query: [String: Any] = [
            kSecClass as String: kSecClassGenericPassword,
            kSecAttrSynchronizable as String: kCFBooleanTrue!,
            kSecAttrService as String: "hustles/\(userUID)",
            kSecAttrAccount as String: userUID,
            kSecValueData as String: passwordData
        ]
        SecItemAdd(query as CFDictionary, nil)
    }
ios swift xcode encryption keychain
1个回答
0
投票

解决方案是还通过添加“kSecAttrSynchronized as String: kCFBooleanTrue!,”来更新读取函数中的查询。保存查询必须与读取查询匹配。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.