Yet another Security framework wrapper.
let data = Data("Hello world!".utf8)
let keychainID = "fr.frostland.Keychain.testBasicStorage"
/* Set some data in the keychain. */
try Keychain.GenericPassword(service: keychainID)
.upsertInKeychain(updatedAttributes: .init(value: data))
/* Retrieve the data from the keychain. */
let storedData = try Keychain.GenericPassword(service: keychainID)
.fetchAnyMatchingFromKeychain(retrieveProtectedData: true)?
.protectedData
assert(data == storedData) /* This should be true */
/* Delete some data from the keychain. */
try Keychain.GenericPassword(service: keychainID)
.deleteFromKeychain()