{"id":34681843,"url":"https://github.com/chippyash/fyne-secrets","last_synced_at":"2026-05-26T03:39:03.977Z","repository":{"id":329944002,"uuid":"1119986939","full_name":"chippyash/fyne-secrets","owner":"chippyash","description":"Device dependent secrets management for Fyne applications","archived":false,"fork":false,"pushed_at":"2025-12-22T12:24:28.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T23:29:52.218Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chippyash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-20T08:43:17.000Z","updated_at":"2025-12-22T12:28:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chippyash/fyne-secrets","commit_stats":null,"previous_names":["chippyash/fyne-secrets"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/chippyash/fyne-secrets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Ffyne-secrets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Ffyne-secrets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Ffyne-secrets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Ffyne-secrets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chippyash","download_url":"https://codeload.github.com/chippyash/fyne-secrets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Ffyne-secrets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28008553,"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","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-12-24T21:12:20.287Z","updated_at":"2025-12-24T21:12:22.059Z","avatar_url":"https://github.com/chippyash.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"assets/secret.png\" widt=30 height=30\u003e Fyne Secrets\n## git@github.com:chippyash/fyne-secrets.git\n\n## What\nProvides a device dependent secure storage mechanism for [Fyne apps](https://fyne.io/) using the \ndevice keychain if available.  Will fall back to using device file storage if the keychain is not available. \n\n## Why\nFyne does not provide a secure storage mechanism at the present time.  My hope is that this code will be incorporated \ninto the Fyne project at some point in the future.\n\n## Caveats\n\n - Secure for Linux platforms that use `gnome-keyring`\n - Secure for Linux platforms that use `keyctl`\n - Work in progress for Android platform\n - Secure for Windows platform\n - Secure for MacOS (Darwin) platform\n - Not secure for iOS platform - TBA\n\nThis secrets library **does not** provide encryption of the data.  That is left to the application using the library. Some real\nworld experience has shown that different platforms can treat the value being stored differently.  For safety you should\nput your encrypted data in an envelope, e.g. urlEncode(base64Encode(data)) and unwrap it before using it.  A crypt implementation\nis included in this library. You can use it as a starting point for your own implementation or use it as is.\n\n```go\nimport \"github.com/chippyash/fyne-secrets/crypt\"\n```\n\nSee `crypt/crypt.go` for interface details.\n\n## How\n\n```go\nimport \"github.com/chippyash/fyne-secrets/secrets\"\n\nfunc Test_Functionality(t *testing.T) {\n    sut, err := secrets.NewSecretStore(\"app-id\", \"app description\")\n    assert.NoError(t, err)\n    err = sut.Store(\"test\", []byte(\"test\"))\n    assert.NoError(t, err)\n    b, err := sut.Exists(\"test\")\n    assert.NoError(t, err)\n    assert.True(t, b)\n    v, err := sut.Load(\"test\")\n    assert.NoError(t, err)\n    assert.Equal(t, \"test\", string(v))\n    err = sut.Delete(\"test\")\n    assert.NoError(t, err)\n    b, err = sut.Exists(\"test\")\n    assert.NoError(t, err)\n    assert.False(t, b)\n}\n```\n\nSee `secrets/secretive.go` for interface details.\n\nFor development, \n\n - fork the repository\n - clone it locally\n - `go mod tidy`\n - make your changes on a branch\n - push your branch to your repo\n - do a pull request back to this repo.\n\n`make help` to see available Make commands\n\n### Linux platforms\nThe Linux code looks to see if the `gnome-keyring` daemon is running. If so, it will be used.\n\nIf you have `gnome-keyring` installed, you may need to run `sudo gnome-keyring-daemon --start` to start the daemon.\n\nIf `gnome-keyring` is not installed, i.e. you may be running the KDE desktop, then you will need to install it.\nThere is plenty of information on the internet to help you with this for your platform. Note, For Kubuntu, gnome-keyring is preinstalled\n\nYou may want to install the [secret-tool](https://man.archlinux.org/man/core/libsecret/secret-tool.1.en) cli command tool if not already installed.\n\n - Debian/Ubuntu: `sudo apt install libsecret-tools`\n - Fedora: `sudo dnf install libsecret`\n - Arch: `sudo pacman -S libsecret`\n - Suse: `sudo zypper install libsecret`\n\nVerify installation: `secret-tool --help`\n\nYou may want to install the [Seahorse GUI](https://wiki.gnome.org/Apps/Seahorse) tool if not already installed.\n\n - Debian/Ubuntu: `sudo apt install seahorse`\n - Fedora: `sudo dnf install seahorse`\n - Arch: `sudo pacman -S seahorse`\n - Suse: `sudo zypper install seahorse`\n\nIf you don't have `gnome-keyring` but `keyctl` is installed, it will be used instead.\n\nIf neither `gnome-keyring` nor `keyctl` is installed, the library will fall back to using device file storage.\n\nThe preferred method is to use `gnome-keyring`. `keyctl` has a limitation in that the persistent keyring for a user has a timeout\nand if the user logs out the keyring is lost after that period. You can use \n`cat /proc/sys/kernel/keys/persistent_keyring_expiry` to see the timeout period in seconds, usually 72 hours.\n\n## License\nBSD-3-Clause. See [LICENSE](./LICENSE)\n\n\u003ca href=\"https://www.flaticon.com/free-icons/confidential\" title=\"confidential icons\"\u003eApplication icon created by surang - Flaticon\u003c/a\u003e\n\n## Roadmap\n\n - Add support for Android\n - Add support for iOS\n - Add support for other Linux flavours\n\n## References\n\n - [Github](https://github.com/chippyash/fyne-secrets)\n - [Linux Gnome Secrets](https://grahamwatts.co.uk/gnome-secrets/)\n - [vupdate - Semantic Version Updater](https://github.com/chippyash/semantic-version-updater/tree/master)\n - [keyutils](https://man7.org/linux/man-pages/man7/keyutils.7.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchippyash%2Ffyne-secrets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchippyash%2Ffyne-secrets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchippyash%2Ffyne-secrets/lists"}