Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Storing keys in KeyChain with KeyChainItemWrapper

I'm using KeyChainItemWrapper class, provided by Apple's Sample Code to save the authentication token to the keychain.

KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier"JetTaxiApp_AuthToken" accessGroup:nil];  

But when I'm trying to set the value to keychain, an odd exception is raised

[_authenticationTokenKeychain setObject:authenticationToken forKey: @"auth_token"];

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Couldn't add the Keychain Item.'

The keychain doesn't exist yet (at the moment of this call) What can cause this exception?

like image 283
Oksana Avatar asked Aug 19 '11 06:08

Oksana


1 Answers

You need to use standard keys, so here your @"auth_token" is incorrect.

The keys that can be used for this purpose and the possible values for each key are listed in the “Keychain Services Constants” section.

source, with list of valid constants: Keychain Services Reference

For instance, you can use:

[_authenticationTokenKeychain setObject:authenticationToken forKey: (__bridge NSString *)kSecValueData];

like image 125
Vincent Tourraine Avatar answered Nov 16 '22 03:11

Vincent Tourraine