{"id":17176275,"url":"https://github.com/snosme/mytopsecret-data","last_synced_at":"2025-03-24T21:42:26.755Z","repository":{"id":50762957,"uuid":"284678689","full_name":"SnosMe/MyTopSecret-Data","owner":"SnosMe","description":null,"archived":false,"fork":false,"pushed_at":"2021-06-01T21:16:03.000Z","size":5558,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-30T01:44:58.215Z","etag":null,"topics":["argon2","datamatrix","password-manager"],"latest_commit_sha":null,"homepage":"https://snosme.github.io/MyTopSecret-Data/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SnosMe.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}},"created_at":"2020-08-03T11:11:06.000Z","updated_at":"2021-06-01T21:10:40.000Z","dependencies_parsed_at":"2022-09-11T07:01:31.243Z","dependency_job_id":null,"html_url":"https://github.com/SnosMe/MyTopSecret-Data","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SnosMe%2FMyTopSecret-Data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SnosMe%2FMyTopSecret-Data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SnosMe%2FMyTopSecret-Data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SnosMe%2FMyTopSecret-Data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SnosMe","download_url":"https://codeload.github.com/SnosMe/MyTopSecret-Data/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245359253,"owners_count":20602322,"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":["argon2","datamatrix","password-manager"],"created_at":"2024-10-14T23:59:46.760Z","updated_at":"2025-03-24T21:42:26.735Z","avatar_url":"https://github.com/SnosMe.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## MyTopSecret-Data\n\nEncrypts data with emphasis on storage space.\n\n### Binary layout\n\n```\n|0,1|2,3,4|5,6,7|8........n|\n\n[0; 1] - CRC16 of [2; n]\n[2; 4] - Is payload compressed (1 bit), Time in hours since epoch (23 bit)\n[5; 7] - Random bytes\n[8; n] - AES encrypted data\n```\n\n### Use cases\n\n- Printing in Hex format or as a 2D barcode:\n  - physical backup for important passwords\n\n### Quick guide\n\nCreate file with content:\n\n```\nurl: github\nemail: test@example.com\npassword: 12345678\n---\nurl: discord\nemail: test@example.com\npassword: 87654321\n```\n\nEncrypt\n\n```bash\nmtsd -e plaintext.mtsd -o encrypted.bin\n```\n\nDecrypt\n\n```bash\nmtsd encrypted.bin\n```\n\n### Encryption\n\n```\npwd = from_user_input()\nsalt = derive_salt_from([time_now, random_bytes])\nkey, nonce = Argon2id(iter=3,mem=64MB,parallel=2)\nencrypted = AES256_CTR(data, key, nonce)\n```\n\n### Compatibility\n\nBackward compatibility is not supported in the current implementation. Any changes to Argon2 complexity or LZMA parameters will break the ability to decrypt old data.\\\nThis project was created for personal use.\n\n### Comparison with password managers\n\n- 1Password\\\n  https://1password.com/files/1Password-White-Paper.pdf\n\n  Master Password + Secret key (Account key, ~16 bytes, stored local only)\\\n  PBKDF2-HMAC-SHA256 with 100,000+100,000 iterations\\\n  AES-256-GCM\n\n- Dashlane\\\n  https://www.dashlane.com/download/Dashlane_SecurityWhitePaper_September2019.pdf\n\n  Argon2d with 3 iterations, 32 MB memory cost, and 2 parallel tasks\\\n    or PBKDF2-HMAC-SHA256 with 200,000 iterations\\\n  AES-256-CBC\n\n- LastPass\\\n  https://enterprise.lastpass.com/wp-content/uploads/LastPass-Technical-Whitepaper-3.pdf\n\n  PBKDF2-HMAC-SHA256 with 100,100 iterations\\\n  AES-256-CBC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnosme%2Fmytopsecret-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnosme%2Fmytopsecret-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnosme%2Fmytopsecret-data/lists"}