我遇到问题。 我有工作的代码为iOS添加一个私人钥匙到SecItemAdd钥匙串。它工作没有任何错误。 在具有相同属性和值的OS X上,它不起作用。 任何想法,最新问题。下面是部分代码:SecItem在OS X上无法正常工作,在iOS上是
NSData * keyData = ...
NSString * name = @"TestKey"
NSString * keyID = @"TestKey"
const id keys[] = {
(__bridge id)(kSecClass),
(__bridge id)(kSecAttrKeyClass),
(__bridge id)(kSecAttrLabel),
(__bridge id)(kSecAttrApplicationLabel),
(__bridge id)(kSecAttrIsPermanent),
(__bridge id)(kSecAttrAccessible),
(__bridge id)(kSecValueData) };
const id values[] = {
(__bridge id)(kSecClassKey),
(__bridge id)(kSecAttrKeyClassPrivate),
name,
keyID,
(id)kCFBooleanTrue,
(__bridge id)(kSecAttrAccessibleAfterFirstUnlock),
keyData };
NSMutableDictionary * attributes = [[NSMutableDictionary alloc] initWithObjects:values forKeys:keys count:ATTR_COUNT(keys)];
CFTypeRef result;
NSError * error = nil;
OSStatus osStatus = SecItemAdd((__bridge CFDictionaryRef)attributes, &result);
的错误是:
25303(errKCNoSuchAttr/errSecNoSuchAttr:/属性不 存在)。)
对于它的价值,我发现在iOS上工作以检索公钥位的SecItemCopyMatching()代码在OSX上不起作用。无论密钥大小如何,它总是返回96个字节。 – user1055568