본문 바로가기
  • 그냥 하자
iOS

KeyChain 사용하기.

by Mash 2014. 11. 18.
반응형

- keychain을 사용하기 위해서는 Apple 에서 제공되는 KeychainItemWrapper 클래스를 다운받아 사용한다.

- 사용법

// create instance

wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Account Number"

                                       accessGroup:@"XXXXXXXX.com.yourcompany.GenericKeychainSuite"];


// set data to item

[wrapper setObject: @"data" forKey: kSecAttrAccount]


// read data from item

[wrapper objectForKey: kSecAttrAccount]


- 응용

사용법에서 @"XXXXXXXX.com.yourcompany.GenericKeychainSuite" 의 경우 nil을 주면 내부 앱에서만 사용한다.

nil 아닌 값을 사용하면 keychain group 을 사용하는 앱끼리 정보 교환도 가능하다. 단, 이때는 Entitlement 파일을 만들어서 공유할 keychaing group을 지정해야한다.

Entitlement 설정이 안되어 있는 상태에서 accessGroup 지정하고 사용하면 Error 발생 한다.

KeychainItemWrapper 데이터를 넣을때 key사용할 있는 값은 다음과 같은 네가지이다.

  • kSecAttrAccount : Account 정보
  • kSecAttrLabel : 라벨 정보
  • kSecAttrDescription : 설명
  • kSecValueData : Data

위의 Data중에 kSecValueData 저장할때는 내부적으로 NSData 변환하기때문에 NSString 필요는 없다.


- 유의사항

wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Account Number"

                                       accessGroup:@"XXXXXXXX.com.yourcompany.GenericKeychainSuite"];

에서  @"Account Number" 를 알아야만 키에 접근할 수 있다. 

 

참조 : http://10apps.tistory.com/archive/20130403

반응형