Adding private key into iOS Keychain

前端 未结 2 1525
轻奢々
轻奢々 2020-12-08 03:16

I am trying to add a private key into the iOS keychain. The certificate (public key) works fine but the private key refuses... I am totally confused why the following code d

2条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-08 03:25

    The following code worked for me:

    NSMutableDictionary *query = [[NSMutableDictionary alloc] init]; 
    [query setObject:(id)kSecClassKey forKey:(id)kSecClass]; 
    [query setObject:(id)kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible]; 
    [query setObject:[NSNumber numberWithBool:YES] forKey:(id)kSecReturnData];
    
    //adding access key 
    [query setObject:(id)key forKey:(id)kSecAttrApplicationTag];
    
    
    //removing item if it exists 
    SecItemDelete((CFDictionaryRef)query);
    
    //setting data (private key) 
    [query setObject:(id)data forKey:(id)kSecValueData];
    
    CFTypeRef persistKey; OSStatus status = SecItemAdd((CFDictionaryRef)query, &persistKey);
    
    if(status) {
        NSLog(@"Keychain error occured: %ld (statuscode)", status);
        return NO; 
    }
    

提交回复
热议问题