{"id":37143073,"url":"https://github.com/navilg/aegis-cli","last_synced_at":"2026-01-14T16:47:49.537Z","repository":{"id":65752582,"uuid":"584151644","full_name":"navilg/aegis-cli","owner":"navilg","description":"Terminal User interface to generate 2FA from Aegis' json file","archived":false,"fork":false,"pushed_at":"2024-06-24T05:01:22.000Z","size":7435,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T22:38:56.535Z","etag":null,"topics":["aegis","linux","totp","totp-generator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/navilg.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}},"created_at":"2023-01-01T15:45:02.000Z","updated_at":"2025-01-21T10:25:45.000Z","dependencies_parsed_at":"2024-06-24T06:38:27.224Z","dependency_job_id":null,"html_url":"https://github.com/navilg/aegis-cli","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/navilg/aegis-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navilg%2Faegis-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navilg%2Faegis-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navilg%2Faegis-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navilg%2Faegis-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/navilg","download_url":"https://codeload.github.com/navilg/aegis-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navilg%2Faegis-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28426455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["aegis","linux","totp","totp-generator"],"created_at":"2026-01-14T16:47:48.968Z","updated_at":"2026-01-14T16:47:49.527Z","avatar_url":"https://github.com/navilg.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aegis-cli\nCommand-line interface to generate 2FA from Aegis' json file\n\n# How to use\n\n## 1. Install\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eLinux\u003c/b\u003e\u003c/summary\u003e\n\nDownload:\n* [x86_64](https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-linux-x86_64) Intel or AMD 64-Bit CPU\n  ```shell\n  curl -L \"https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-linux-x86_64\" \\\n       -o \"aegis-cli\" \u0026\u0026 \\\n  chmod +x \"aegis-cli\"\n  ```\n* [arm64](https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-linux-arm64) Arm-based 64-Bit CPU (i.e. in Raspberry Pi)\n  ```shell\n  curl -L \"https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-linux-arm64\" \\\n       -o \"aegis-cli\" \u0026\u0026 \\\n  chmod +x \"aegis-cli\"\n  ```\n\n\u003e To determine your OS version, run `getconf LONG_BIT` or `uname -m` at the command line.\n\nMove:\n```shell\nsudo mv aegis-cli /usr/bin/aegis-cli\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003emacOS\u003c/b\u003e\u003c/summary\u003e\n\nDownload:\n* [x86_64](https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-macos-x86_64) Intel 64-bit\n  ```shell\n  curl -L \"https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-macos-x86_64\" \\\n       -o \"aegis-cli\" \u0026\u0026 \\\n  chmod +x \"aegis-cli\"\n  ```\n* [arm64](https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-macos-arm64) Apple silicon 64-bit\n  ```shell\n  curl -L \"https://github.com/navilg/aegis-cli/releases/latest/download/aegis-cli-macos-arm64\" \\\n       -o \"aegis-cli\" \u0026\u0026 \\\n  chmod +x \"aegis-cli\"\n  ```\n\n\u003e To determine your OS version, run `uname -m` at the command line.\n\nMove:\n```shell\nmv aegis-cli ~/Applications/aegis-cli\n```\n\nTip:\n\n* Add `~/Applications/` to your `$PATH`\n    ```shell\n    echo 'export PATH=\"$HOME/Applications/:$PATH\"' \u003e\u003e ~/.zshrc\n    ```\n* Or, add `~/Applications/aegis-cli` as alias for `aegis-cli`\n    ```shell\n    echo 'alias aegis-cli=\"$HOME/Applications/aegis-cli\"' \u003e\u003e ~/.zshrc\n    ```\n\n\u003c/details\u003e\n\n## 2. Export\n\nExport vault (encrypted) from your mobile app and put the vault file on your system under `$HOME/.config/aegis-cli` with filename `aegis.json`.\n\n## 3. Execute\n\nExecute aegis cli:\n\n```shell\naegis-cli\n```\n\n# Screenshots\n\n![](assets/img/aegis-cli-login-page.png)\n\n![](assets/img/aegis-cli-lists.png)\n\n![](assets/img/aegis-cli-totp.png)\n\n# Aegis design and architecture\n\nAES 256 in GCM mode is used as AEAD cipher.\n\nScrypt is used as the KDF with N=2^15, r=8 and p=1\n\nVault is encrypted using 256-bit master key. This master key is encrypted with credential in stored in slot. This process is called key wrapping.\n\n\n![](assets/img/diagram.svg)\n\n\nVault format:\n\n```json\n{\n    \"version\": 1,\n    \"header\": {},\n    \"db\": {}\n}\n```\n\ndb contains vault content. If its encrypted, Its value is base64 encoded (with padding) ciphertext of vault content. If its not encrypted, Its in json format.\n\nHeader contains `slots` and `params`. \n\n```json\n{\n    \"slots\": [],\n    \"params\": {\n        \"nonce\": \"0123456789abcdef01234567\",\n        \"tag\": \"0123456789abcdef0123456789abcdef\"\n    }\n}\n```\n\nparams contains `nonce` and `tag` that was produced during encryption encoded as hexadecimal string.\n\nSlot is of three type. Type 1 is raw, Type 2 is password and Type 3 is biometric.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavilg%2Faegis-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavilg%2Faegis-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavilg%2Faegis-cli/lists"}