{"id":17091386,"url":"https://github.com/robertomachorro/securestore","last_synced_at":"2025-03-23T16:14:16.756Z","repository":{"id":108165082,"uuid":"197976795","full_name":"RobertoMachorro/SecureStore","owner":"RobertoMachorro","description":"A thin Keychain Services wrapper Framework, multi-target (defaults to macOS) in Swift.","archived":false,"fork":false,"pushed_at":"2019-07-24T01:28:55.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T22:19:34.632Z","etag":null,"topics":["framework","keychain-wrapper","macos","swift","swift-library","swift5"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobertoMachorro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-20T20:12:04.000Z","updated_at":"2021-05-06T00:25:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a9b10a3-b71c-4db5-9556-f4523df85c9f","html_url":"https://github.com/RobertoMachorro/SecureStore","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2FSecureStore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2FSecureStore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2FSecureStore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertoMachorro%2FSecureStore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobertoMachorro","download_url":"https://codeload.github.com/RobertoMachorro/SecureStore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245128130,"owners_count":20565206,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","keychain-wrapper","macos","swift","swift-library","swift5"],"created_at":"2024-10-14T13:58:28.123Z","updated_at":"2025-03-23T16:14:16.733Z","avatar_url":"https://github.com/RobertoMachorro.png","language":"Swift","readme":"# SecureStore\n\n[![Version](https://img.shields.io/github/release/RobertoMachorro/SecureStore.svg)](https://github.com/RobertoMachorro/SecureStore/releases)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n\nThis is **yet another** [Keychain Services](https://developer.apple.com/documentation/security/keychain_services) wrapper - queue the eye roll. I tried out quite a number, they felt overly abstracted, underimplemented or confusing. Even [Apple has one](https://developer.apple.com/library/archive/samplecode/GenericKeychain/Introduction/Intro.html). I liked Sam Soffes' [SAMKeychain](https://github.com/soffes/SAMKeychain), but it only supports [kSecClassGenericPassword](https://developer.apple.com/documentation/security/ksecclassgenericpassword). In particular, I was looking for [kSecClassInternetPassword](https://developer.apple.com/documentation/security/ksecclassinternetpassword). [SecureStore](https://github.com/RobertoMachorro/SecureStore) supports both very well and can expand to other types (certificates, keys, identities, etc).\n\nThe goal was to pickup a good project and adapt it as necessary, I don't like to re-invent wheels, and found one written by [Lorenzo Boaro](https://twitter.com/flexaddicted), it's part of [RayWenderlich.com](https://rayWenderlich.com) tutorial [Keychain Services API Tutorial for Passwords in Swift](https://www.raywenderlich.com/9240-keychain-services-api-tutorial-for-passwords-in-swift). Unfortunately, neither the author nor the project where on *GitHub*. Also, the project - while written multiplatform - only targeted iOS. I highly recommend Lorenzo's post, it describes the *Keychain* operation very well.\n\nSo this code / Framework starts where its predecessor left off, by taking the pristine sources and enhancing / adapting for real life Framework usage. *Please note that the original copyright and permission has been kept, as requested by the author*. If you are interested in the process and adapting of the code, take a look at the *commit log*.\n\n## Adding To Your Project\n\nSwift Package Manager is in the works. Right now Carthage is the way to go:\n\n\u003e github \"RobertoMachorro/SecureStore\"\n\nCheck the tests for call examples, most are very atomic.\n\n## Project Status\n\nCurrently, the project is ready to use and defaults to macOS builds.\n\n## Pending\n\n* iOS Target\n* macOS and passes all but 2 tests. The original source passes all tests under iOS.\n\n## Changes from Original Source\n\n* Independent project and framework with shared schema for Carthage\n* Public Queryable structs initializers\n\n## Contributing\n\nFeel free to fork a copy and create a pull request.\n\n## Documentation\n\nBoth API documentation and examples plus a patient description of [Keychain Services](https://developer.apple.com/documentation/security/keychain_services) can be found at [Keychain Services API Tutorial for Passwords in Swift](https://www.raywenderlich.com/9240-keychain-services-api-tutorial-for-passwords-in-swift).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertomachorro%2Fsecurestore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertomachorro%2Fsecurestore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertomachorro%2Fsecurestore/lists"}