{"id":16775056,"url":"https://github.com/jamshedvesuna/cronos","last_synced_at":"2025-04-10T20:08:44.209Z","repository":{"id":24893623,"uuid":"28309920","full_name":"JamshedVesuna/cronos","owner":"JamshedVesuna","description":"Python module for safely and cleanly using sensitive data in code","archived":false,"fork":false,"pushed_at":"2016-05-16T21:59:27.000Z","size":11,"stargazers_count":4,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T13:19:12.298Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/JamshedVesuna.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-21T19:13:29.000Z","updated_at":"2019-09-19T13:50:16.000Z","dependencies_parsed_at":"2022-08-23T03:50:47.115Z","dependency_job_id":null,"html_url":"https://github.com/JamshedVesuna/cronos","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamshedVesuna%2Fcronos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamshedVesuna%2Fcronos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamshedVesuna%2Fcronos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamshedVesuna%2Fcronos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamshedVesuna","download_url":"https://codeload.github.com/JamshedVesuna/cronos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248288350,"owners_count":21078903,"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-10-13T06:50:53.478Z","updated_at":"2025-04-10T20:08:44.183Z","avatar_url":"https://github.com/JamshedVesuna.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"cronos\n======\n\nPython module for safely and cleanly using sensitive data in shared code.\n\nCronos uses a secure encryption method, [AES256](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard), to store passwords and sensitive values locally. Simple (and unsecure) [Caesar Ciphers](http://en.wikipedia.org/wiki/Caesar_cipher) are used to create obfuscated keys in the cronos datastore. This means keys are simply human-unreadable and values are securely encrypted with a password file (defaults to your ssh private key).\n\nInstall\n-------\nSupports Linux and OS X.\n\n* Python Pip: `pip install cronos`\n\nUsage\n-----\nWhile global keys are stored in your code (such as the plaintext `API_KEY` in the examples below), Cronos uses the single interface `get` to *initially* prompt the user for the value at runtime. Cronos stores the encrypted value in a keystore called `db.cronos`. Upon a second call to `get`, Cronos performs a lookup and decryption.\n\nYou may want to add `*.cronos` to your `.gitignore`.\n\nUsing your ssh private key (`id_rsa`) as the default encryption key:\n```python\nfrom cronos import cronos\nc = cronos.Cronos()\nmyKey = c.get(\"API_KEY\")  # Prompt user for API_KEY if not already stored\n```\n\nUsing `mypassword.txt` as the encryption key and `/tmp/db.chronos` as the db file:\n```python\nfrom cronos import cronos\nc = cronos.Cronos(passFile='mypassword.txt', storeFile='/tmp/db.chronos')\nmyKey = c.get(\"API_KEY\")  # Prompt user for API_KEY if not already stored\n```\n\nRequirements\n------------\n* [getpass](https://docs.python.org/2/library/getpass.html)\n* [os](https://docs.python.org/2/library/os.html)\n* [pickle](https://docs.python.org/2/library/pickle.htmlpassword)\n* [simplecrypt](https://pypi.python.org/pypi/simple-crypt)\n* [sys](https://docs.python.org/2/library/sys.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamshedvesuna%2Fcronos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamshedvesuna%2Fcronos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamshedvesuna%2Fcronos/lists"}