草庐IT

paramErr

全部标签

iOS 钥匙串(keychain) : SecItemUpdate returns -50 (paramErr) when updating kSecAttrAccessible

我需要更新钥匙串(keychain)条目的kSecAttrAccessible。我不需要更新实际数据,只需更新可访问性属性。首先,我尝试查找项目以确保我的查询字典是正确的:sanityCheck=SecItemCopyMatching((__bridgeCFDictionaryRef)(queryPrivateKey),(void*)&privateKeyRef);这一行成功地找到了我要找的项目(返回码是0)。然后我使用相同的查询更新kSecAttrAccessible属性:if(sanityCheck==noErr&&privateKeyRef!=nil){//foundit,upd

ios - 为什么 SecKeyEncrypt 会为超过 246 字节的输入字符串返回 paramErr (-50)?

我正在使用SecKeyEncrypt将JSON格式的字符串作为输入。如果向SecKeyEncrypt传递一个小于246的plainTextLength,它就可以工作。如果我传递给它的长度为246或更长,它将失败并返回值:paramErr(-50)。这可能是字符串本身的问题。我可能会发送SecKeyEncrypt的示例是:{"handle":"music-list","sym_key":"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALeaEO7ZrjgOFGLBzBHZtQuzH2GNDYMLWP+fIFNu5Y+59C6HECY+jt0yOXXom2mzp/WYY