{"id":20349083,"url":"https://github.com/badlocale/snailpass-desktop-client","last_synced_at":"2026-03-11T06:32:50.735Z","repository":{"id":65435337,"uuid":"535281435","full_name":"badlocale/SnailPass-Desktop-Client","owner":"badlocale","description":"Windows client for SnailPass password manager.","archived":false,"fork":false,"pushed_at":"2023-03-27T11:05:34.000Z","size":13394,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T07:51:00.338Z","etag":null,"topics":["bad-code-oh-no","client-server","client-side","password","password-manager","password-store","passwords","windows-app","wpf-application"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/badlocale.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2022-09-11T11:47:25.000Z","updated_at":"2025-01-07T05:49:17.000Z","dependencies_parsed_at":"2024-11-15T01:03:13.739Z","dependency_job_id":null,"html_url":"https://github.com/badlocale/SnailPass-Desktop-Client","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/badlocale/SnailPass-Desktop-Client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badlocale%2FSnailPass-Desktop-Client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badlocale%2FSnailPass-Desktop-Client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badlocale%2FSnailPass-Desktop-Client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badlocale%2FSnailPass-Desktop-Client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/badlocale","download_url":"https://codeload.github.com/badlocale/SnailPass-Desktop-Client/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badlocale%2FSnailPass-Desktop-Client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30373480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bad-code-oh-no","client-server","client-side","password","password-manager","password-store","passwords","windows-app","wpf-application"],"created_at":"2024-11-14T22:24:03.886Z","updated_at":"2026-03-11T06:32:50.714Z","avatar_url":"https://github.com/badlocale.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SnailPass\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/95579070/223737062-93cc4505-c52e-40bb-bee7-b822bd6cabb7.svg\" width=25% height=25%\u003e\n\u003c/p\u003e\n\nSnailPass is a simple client-server password manager, that I'm writing with my colleagues to make for ourselves a convenient, custom environment for storing passwords.\nNow is proposed to make the applications for two platforms. The client for each of the platforms is located in different repositories:\n- Windows (you are here now)\n- [Android](https://github.com/IlyaYDen/SnailPasswordManager)\n\u003c!-- --\u003e\nThe application also has a [server part](https://github.com/rebmanop/SnailPass-REST-API), where user data will be stored.\n\n# How it works\nThe main idea of the application is storing user's passwords and other information in encrypted form. Encryption is carried out using a symmetric algorithm with a hashed master password as a key. At the same time a key is not stored anywhere and is never transmitted via the network, the user just has to remember it. For this reason, the data can be decrypted only locally and the server stores only the cipher.\n#### Cryptographic algorithms\n- AES-CBC as a symmetric-key algorithm.\n- Pbkdf2 as a key derivation function.\n- SHA-512 as a hash function.\n#### Libraries and frameworks\nApplication written using WPF framework (MVVM) and several external libraries:\n- Autofac as DI container.\n- Newtonsoft.JSON for simplifying JSON boilerplate.\n- Serilog for logging.\n- Microsoft.Data.Sqlite for manage data.\n\u003c!-- --\u003e\nI intentionally used common SQL queries instead of EF as an experiment this time. :)\n\n# Screenshots\n#### Login interface\n![ScrLogin](https://user-images.githubusercontent.com/95579070/224582764-527316b4-96fd-4bb4-b33e-f03699386b44.png)\n#### Main window interface\n![ScrGen](https://user-images.githubusercontent.com/95579070/224582767-afbb7d36-9eab-41fb-b9c4-c3e17f9b3aae.png)\n![ScrNotes](https://user-images.githubusercontent.com/95579070/224582768-7273c1d3-d537-4b11-850e-0119a2a0cf64.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadlocale%2Fsnailpass-desktop-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadlocale%2Fsnailpass-desktop-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadlocale%2Fsnailpass-desktop-client/lists"}