iOSPortachiavi


Sintassi

  • kSecClassGenericPassword // Una chiave di valore che rappresenta una password non Internet
  • kSecClassInternetPassword // Una chiave di valore che rappresenta una password internet
  • kSecClassCertificate // Una chiave di valore che rappresenta un certificato
  • kSecClassCertificate // Una chiave di valore che rappresenta una chiave
  • kSecClassIdentity // Una chiave di valore che rappresenta un'identità, che è un certificato più una chiave

Osservazioni

iOS memorizza informazioni private come password, chiavi di crittografia, certificati e identità in un'area di archiviazione protetta chiamata Keychain. Questa area di memoria è gestita completamente da un co-processore chiamato Secure Enclave, che è incorporato all'interno del processore dell'applicazione. Poiché il portachiavi è in modalità sandbox su iOS, gli elementi portachiavi possono essere recuperati solo dall'applicazione che li ha messi lì in primo luogo.

In alcuni casi è necessario attivare Condivisione dei portachiavi nelle funzionalità Xcode per evitare errori.

Per interagire con il portachiavi, utilizziamo il framework ac chiamato Keychain Services. Per ulteriori informazioni, consulta la Guida alla programmazione dei servizi Keychain di Apple .

Poiché i servizi portachiavi sono al di sotto del livello Foundation , è limitato all'utilizzo di tipi CoreFoundation . Di conseguenza, la maggior parte degli oggetti sono internamente rappresentati come CFDictionary che CFString s come le loro chiavi e una varietà di tipi CoreFoundation come i loro valori.

Mentre i Keychain Services sono inclusi come parte del framework Security , l'importazione di Foundation è di solito una buona opzione poiché include alcune funzioni di supporto nel back-end.

Inoltre, se non vuoi gestire direttamente i Keychain Services, Apple fornisce il progetto di esempio Generic Keychain Swift che fornisce i tipi Swift che utilizzano i servizi Keychain dietro le quinte.

Portachiavi Esempi correlati