{"id":21992592,"url":"https://github.com/tecc/nyckel","last_synced_at":"2025-03-23T03:32:24.660Z","repository":{"id":130676225,"uuid":"421614045","full_name":"tecc/nyckel","owner":"tecc","description":"Nyckel Password Manager, a little hobby project for open and secure password management.","archived":false,"fork":false,"pushed_at":"2021-10-27T00:45:44.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-01-28T09:51:28.619Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/tecc.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":"2021-10-26T23:29:18.000Z","updated_at":"2021-10-27T00:45:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"dfa95d5e-3cfc-4275-bacd-4ceb4c2c5d78","html_url":"https://github.com/tecc/nyckel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecc%2Fnyckel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecc%2Fnyckel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecc%2Fnyckel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tecc%2Fnyckel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tecc","download_url":"https://codeload.github.com/tecc/nyckel/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245052619,"owners_count":20553161,"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":[],"created_at":"2024-11-29T20:14:14.230Z","updated_at":"2025-03-23T03:32:24.636Z","avatar_url":"https://github.com/tecc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nyckel Password Manager\n\n**Disclaimer: This project was *not* made or inspected by a security expert. Use with caution.**\n\n\n\nNyckel Password Manager (or just Nyckel) is a simple password manager.\nIt is decentralised, with the possibility to synchronise between devices using a server.\n\n\u003e The name, \"Nyckel\", is Swedish for \"key\".\n\n## Structure\n\nEach instance of NyckelD has **keyrings**. Each instance also has a **salt**.\n\nKeyrings are containers for **passwords**. Keyrings have unique IDs, and by extension, unique **master keys**.\n\nMaster keys are generated through a combination of the instance salt, the keyrings ID, and a **master password**.\n\nMaster passwords are decided by the user, and are the essential keys to unlocking all the keyrings.\n\nA keyring's password is encrypted and decrypted using the master key. The actual password is however not used as the encrypted data; instead, the data is offset by the keyring's password ID.\n\n\u003e More is yet to be described.\n\n## Project structure\n\nNyckel is split into several projects to make maintenance easier.\n\n- libNyckel\n  \n  \u003e The base library.\n- NyckelD\n  \n  \u003e A daemon that handles storage, synchronisation, etc. \n  \u003e for one device.\n  + NyckelS\n    \n    \u003e Server-side software for synchronising across\n    \u003e devices.\n\n## Design goals\n\nThe design is based around security and simplicity, namely:\n\n1. Avoiding storing or transmitting important information unsecurely (e.g. raw passwords in memory should be discarded as fast as possible).\n\n2. Making everything as unique as possible, even given the same input (e.g. if 2 passwords are the same, they shouldn't produce the same encrypted output).\n\n3. Keeping everything independent from one another (e.g. an instance of NyckelD should not depend on an instance of NyckelS, should it be inaccessible).\n\n## Licence\n\nNyckel is licensed under the MIT License.\nThe full licence text can be viewed in [LICENCE.txt](./LICENCE.txt).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftecc%2Fnyckel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftecc%2Fnyckel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftecc%2Fnyckel/lists"}