Recherche des exemples sur les API liées au KeyChain
Tof
Membre
Bonjour,
Je recherches des exemples qui permettent :
La donné est un NSData et peut contenir n'importe quoi. On doit pouvoir la mettre dans le KeyChain avec un nom et pouvoir y accéder via ce nom. Le code doit pouvoir fonctionner sous Mac OS X Lion et supérieur.
J'ai trouvé des exemples liés aux passwords mais ce n'est pas ce que je recherche. J'ai évidemment consulté la documentation d'Apple sur le sujet. Ils concentrent leur exemples sur les passwords et leur doc est loin d'être clair. D'autre part si on regarde les APIs liés au KeyChain il y a, à priorie, pas mal d'options disponibles mais aucun exemples pour la plus part de ces options.
Si quelqu'un pouvait m'indiquer quel est la bonne marche à suivre pour ce dont j'ai besoin...
Merci par avance
Je recherches des exemples qui permettent :
- d'ajouter une donné dans le KeyChain
- d'enlever une donné dans le KeyChain
- retrouver la donné par rapport au nom qu'on lui a donné dans le KeyChain
La donné est un NSData et peut contenir n'importe quoi. On doit pouvoir la mettre dans le KeyChain avec un nom et pouvoir y accéder via ce nom. Le code doit pouvoir fonctionner sous Mac OS X Lion et supérieur.
J'ai trouvé des exemples liés aux passwords mais ce n'est pas ce que je recherche. J'ai évidemment consulté la documentation d'Apple sur le sujet. Ils concentrent leur exemples sur les passwords et leur doc est loin d'être clair. D'autre part si on regarde les APIs liés au KeyChain il y a, à priorie, pas mal d'options disponibles mais aucun exemples pour la plus part de ces options.
Si quelqu'un pouvait m'indiquer quel est la bonne marche à suivre pour ce dont j'ai besoin...
Merci par avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
peut-être cette classe ?
https://gist.github.com/3185191
Merci /smile.png' class='bbc_emoticon' alt=':)' />
Je dois finir un truc avant mais je vais regarder ça dès que possible...
Dans la documentation d'Apple ici y a beaucoup plus que simplement la gestion des passwords. J'ai essayé de reprendre des exemples qui fonctionnent sur iOS et qui utilisent SecItemCopyMatching, SecItemAdd, SecItemUpdate, SecItemDelete. Sous Lion ça génére des erreurs. Il faut sans doute les utiliser différement mais Apple ne fourni aucun exemple de comment les utiliser correctement sous Lion.
Il y a une erreur dans la doc d'Apple Keychain Services Reference pour Mac OS X:
Il parle de l'attribut [font=courier new,courier,monospace]kSecAttrAccessible[/font] celui-ci n'existe pas sous Mac OS X. Si on consulte Attribute Item Keys and Values ce qui s'en rapproche le plus est [font=courier new,courier,monospace]kSecAttrAccess[/font]. [font=courier new,courier,monospace]kSecAttrAccessible[/font] est par contre défini dans la doc pour iOS.
Par curiosité je suis allé dans le fichier [font=courier new,courier,monospace]MacOSX10.7/Frameworks/Security.framework/SecItem.h[/font] pour aller vérifier les attributs définis pour [font=courier new,courier,monospace]kSecClassKey[/font] (j'ai pas vérifié les autres).
Dans les commentaires ils indiquent les choses suivantes :
Dans la doc en ligne on a:
Dans [font=courier new,courier,monospace]SecItem.h[/font] on a bien [font=courier new,courier,monospace]kSecAttrAccess[/font] et pas [font=courier new,courier,monospace]kSecAttrAccessible[/font] de défini. Et on a les attributs [font=courier new,courier,monospace]kSecAttrPRF[/font], [font=courier new,courier,monospace]kSecAttrSalt[/font] et [font=courier new,courier,monospace]kSecAttrRounds[/font] qui sont pas dans la documentation en ligne ! La documentation qui est en ligne est la même que celle que l'on peut avoir avec Xcode.
À mon avis vaut mieux se fier aux commentaires dans le fichier [font=courier new,courier,monospace]SecItem.h[/font] qu'à la doc en ligne ou fournie avec Xcode !!!!