- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将一个项目添加到钥匙串(keychain),然后我想获取该项目的值(value)。问题是,它原来是一个空字符串。我究竟做错了什么?谢谢!
//add item to keychain
NSDictionary *secItem = @{ (__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService : [[NSBundle mainBundle] bundleIdentifier],
(__bridge id)kSecAttrAccount : myKeyVar,
(__bridge id)kSecValueData : [myValue dataUsingEncoding:NSUTF8StringEncoding],
(__bridge id)kSecAttrSynchronizable : @YES };
OSStatus status = SecItemAdd((__bridge CFDictionaryRef)secItem, NULL);
//successfully adds it
//query for existing item
NSDictionary *query = @{(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService : [[NSBundle mainBundle] bundleIdentifier],
(__bridge id)kSecAttrAccount : keyToSearchForVar,
(__bridge id)kSecAttrSynchronizable : @YES,
(__bridge id)kSecReturnAttributes : (__bridge id)kCFBooleanTrue};
CFDictionaryRef valueAttributes = NULL;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query,
(CFTypeRef *)&valueAttributes);
NSDictionary *attributes = (__bridge_transfer NSDictionary *)valueAttributes;
//attributes has 8 key/value pairs but I don't see the stored encoded value as one of them
if (status == errSecSuccess) {
NSString* myString = [[NSString alloc] initWithData:[attributes objectForKey:(__bridge id)kSecValueData] encoding:NSUTF8StringEncoding];
//myString is @""
}
最佳答案
问题是我定义了 kSecReturnAttributes 来要求它返回属性,但没有定义 kSecReturnData 来返回实际数据,这很重要。在查询中添加这一行解决了问题:
(__bridge id)kSecReturnData : (__bridge id)kCFBooleanTrue}
关于ios - 无法从 SecItemCopyMatching 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027727/
我在下一个代码中出现内存泄漏。我的灵感来自here这是RSA算法的一部分。 - (SecKeyRef)getPublicKeyRef { OSStatus resultCode = noErr; Se
我想在运行时将 OSX/iOS 证书导入到 OpenSSL 上下文中。为此,我使用带有以下代码的 SecItemCopyMatching 从操作系统钥匙串(keychain)中检索证书: CFMuta
首先,我观看了关于使用钥匙串(keychain)保护 secret 的 WWDC 2013 session 。我想做一个基本的密码存储。观看了整个视频,但在视频的前 10 分钟找到了我需要的内容。看起
我的方法: +(SecKeyRef)getKeyByTagWithoutAlert:(NSString *)keyTag status:(OSStatus *) status{ *status
与 REST API 通信并将 API token 保存在 iOS 的钥匙串(keychain)中。但钥匙串(keychain)代码抛出 nil 错误。 KeychainAccess.swift: p
我正在尝试使用钥匙串(keychain)服务来保存一个值,即使用户重新安装应用程序,该值也会持续存在。所以我使用 SecItemCopyMatching 检查一个项目是否存在,它第一次返回 errSe
我正在将一个项目添加到钥匙串(keychain),然后我想获取该项目的值(value)。问题是,它原来是一个空字符串。我究竟做错了什么?谢谢! //add item to keychain NSDic
我正在尝试从已生成的 key 对(两个 SecKeyRef)中提取一个 1024 位 RSA 公钥,以便通过网络发送它。我只需要一个普通的 (modulus, exponent) 对,它应该正好占用
我的应用程序中有以下代码片段。 CFTypeRef result = nil; OSStatus userPresenceStatus = SecItemCopyMatching((_
我无法让此调用适用于 IOS。我尝试了多种方法,但似乎没有任何效果:我总是获得 errSecParam 状态。谁能告诉我我做错了什么? 我开始使用它来获取我从字节中提取的证书的属性列表。那没有用,所以
我正在尝试使用 CryptoExercise 的 SecKeyWrapper addPeerPublicKey:keyBits: 方法将 RSA 公钥添加到我的 iPhone 钥匙串(keychain
KeychainTouchID应用程序是使用 Xcode 安装并执行的。 key 是通过按“添加 protected key ”生成的,并通过按“使用 protected key ”使用。 key 是
我从 Stack Overflow 上抓取了代码来访问一些网络浏览器密码。只要密码在登录钥匙串(keychain)中,它就可以很好地工作。在某些时候,我感兴趣的特定帐户已移至 iCloud 钥匙串(k
我使用 Veracode 扫描我的应用程序并出现以下错误未检查的错误条件。这是我的代码: let status = withUnsafeMutablePointer(to: &queryRes
所以我的问题是关于钥匙串(keychain)访问是如何工作的。如果我已经使用 kSecAttrAccessible 属性集将一个项目保存到钥匙串(keychain),并且如果我想稍后查询这个项目,我是
我想在我的 iOS 应用程序中支持多个帐户,并且我正在使用 KeyChain 来存储凭据。我正在存储具有相同类 (kSecClassGenericPassword) 和属性 (kSecAttrServ
我正在使用 SecItemCopyMatching 获取受 Touch ID 保护的钥匙串(keychain)项。 但是,如果 Touch ID 解锁失败(或用户选择“输入密码”),我想展示我自己的
我在 SecItemCopyMatching 上发现内存泄漏。经过对 SF 的调查,我找到了解决方案: __block NSString *certificateName = nil; SecKeyc
我正在尝试通过 FaceID 解锁钥匙串(keychain)/安全区域中的数据,并使其在用户 session 期间可访问(无需额外解锁)。 Per the documentation for kSec
我正在为我们的 iPhone 应用程序实现 SSL 客户端身份验证,并使用应用程序钥匙串(keychain)来存储客户端身份(证书 + 私钥)。将项目添加到钥匙串(keychain)后,我在使用 Se
我是一名优秀的程序员,十分优秀!