{"id":21472204,"url":"https://github.com/cailllev/apfel","last_synced_at":"2025-03-17T07:18:19.913Z","repository":{"id":184665565,"uuid":"319060102","full_name":"cailllev/APFEL","owner":"cailllev","description":"Asymmetric Password File Encryption Library","archived":false,"fork":false,"pushed_at":"2021-12-13T13:15:54.000Z","size":1482,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T16:30:02.988Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/cailllev.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}},"created_at":"2020-12-06T15:03:36.000Z","updated_at":"2021-12-13T13:15:57.000Z","dependencies_parsed_at":"2023-07-29T15:42:35.149Z","dependency_job_id":null,"html_url":"https://github.com/cailllev/APFEL","commit_stats":null,"previous_names":["cailllev/apfel"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cailllev%2FAPFEL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cailllev%2FAPFEL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cailllev%2FAPFEL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cailllev%2FAPFEL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cailllev","download_url":"https://codeload.github.com/cailllev/APFEL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243989714,"owners_count":20379648,"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-23T09:48:01.919Z","updated_at":"2025-03-17T07:18:19.880Z","avatar_url":"https://github.com/cailllev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Asymmetric Password File Encryption Library\n## Description\nUses the RSA / ECC / El Gamal algorithm to encrypt files. Only a password is needed, i.e. no private key (files) meaning that *all* files can be public. The password is transformed to a (prime) number to be used as the secret.\n\n## Usage\n```\ninit:    python3 apfel.py -i \u003ckeyfile\u003e\n            i: the name of the new keyfile\n\nencrypt: python3 apfel.py -k \u003ckeyfile\u003e -e \u003cfile to encrypt\u003e [-a RSA | ECC | EG] [-r]\n            k: the keyfile with the keys\n            e: the file to encrypt\n            a: algorithm to encrypt, defaults to all\n            r: remove original after encryption\n            \ndecrypt: python3 apfel.py -k \u003ckeyfile\u003e -d \u003cfile to decrypt\u003e [-v] [-s \u003cnew file name\u003e]\n            k: the keyfile with the keys\n            d: the file to decrypt\n            v: verbose, print decrypted file\n            s: save decrypted file\n```\n\n## Threat Modelling\n- no obvious RSA weakness, see [here](helpers/Threat_Modelling.md)\n\n## TODO\n- add ECC and El Gamal encryption algorithm\n- update threat modelling\n- create pypi package\n- read https://www.researchgate.net/profile/Anton-Stiglic-2/publication/2372902_Security_Issues_in_the_Diffie-Hellman_Key_Agreement_Protocol/links/54b55eea0cf28ebe92e53305/Security-Issues-in-the-Diffie-Hellman-Key-Agreement-Protocol.pdf?origin=publication_detail\n- implement Montgomery Reductuion\n\n## Implementation Comments\n- own RSA used instead of Pycryptodome's bc. they need a private key or a PEM cert -\u003e destroying the \"all files can be public\" part\n-  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcailllev%2Fapfel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcailllev%2Fapfel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcailllev%2Fapfel/lists"}