{"id":16370205,"url":"https://github.com/mrdcvlsc/bethela","last_synced_at":"2025-10-14T19:39:54.139Z","repository":{"id":45198134,"uuid":"423866488","full_name":"mrdcvlsc/bethela","owner":"mrdcvlsc","description":"A command line tool for file encryption and decryption (AES256-CBC)","archived":false,"fork":false,"pushed_at":"2023-09-23T07:09:17.000Z","size":330,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-12T08:37:10.443Z","etag":null,"topics":["aes-128","aes-192","aes-256","aes128","aes192","aes256","cbc","cfb","command-line-tool","cryptography","decryption","encryption","file","file-cryptography","file-encryption","information-security","key","security","sensitive-data","terminal"],"latest_commit_sha":null,"homepage":"","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/mrdcvlsc.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":"2021-11-02T14:01:46.000Z","updated_at":"2024-06-16T15:28:49.000Z","dependencies_parsed_at":"2025-02-11T11:42:47.669Z","dependency_job_id":null,"html_url":"https://github.com/mrdcvlsc/bethela","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/mrdcvlsc/bethela","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2Fbethela","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2Fbethela/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2Fbethela/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2Fbethela/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrdcvlsc","download_url":"https://codeload.github.com/mrdcvlsc/bethela/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrdcvlsc%2Fbethela/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279020654,"owners_count":26086898,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["aes-128","aes-192","aes-256","aes128","aes192","aes256","cbc","cfb","command-line-tool","cryptography","decryption","encryption","file","file-cryptography","file-encryption","information-security","key","security","sensitive-data","terminal"],"created_at":"2024-10-11T03:04:19.915Z","updated_at":"2025-10-14T19:39:54.124Z","avatar_url":"https://github.com/mrdcvlsc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bethela - CLI file cryptography\n\n![Ubuntu](https://github.com/mrdcvlsc/bethela/actions/workflows/test.yml/badge.svg)\n\nA simple terminal command line tool for encryption \u0026 decryption of any files, currently supports `Vigenere`, `AES128-CBC`, `AES192-CBC` and `AES256-CBC` ciphers.\n\nThe program can also use hardware acceleration technology for AES ciphers using `AES-NI` (Intel and AMD CPUs) and `ARM-neon` (armv8, aarch64 CPUs) intrinsics.\n\n## **Install in Linux**\n\n- Requirement:\n    - **make**\n    - **compiler that can compile with or above C++17**\n\n1. **Clone** the repo\n\n    ```\n    git clone --recurse-submodules https://github.com/mrdcvlsc/bethela\n    git submodule update --init --recursive\n    cd bethela\n    ```\n\n2. **Compile** the program\n\n    Example:\n    ```\n    make compile CXX=clang++ VERSION=aesni TYPE=release\n    ```\n\n    This table shows what values you can pass to a dflag\n    during compilation to alter the compilation behaviour.\n\n    If a variable flag is not specified, the first value in \n    the table below are taken as the default values.\n\n    | Variable    | Value                               |\n    | ----------- | ----------------------------------- | \n    | **CXX**     | `g++`, `clang++`                    |\n    | **TYPE**    | `release`, `debug`, `debug_threads` |\n    | **VERSION** | `portable`, `aesni`, `neon`         |\n    | **LINK**    | `dynamic`, `static`                 |\n\n    **aesni** - will enable hardware acceleration technology\n    `AES-NI` when compiling for x86-64 Intel and/or AMD CPUs.\n\n    **neon** - will enable hardware acceleration technology\n    in ARM when compiling for ARM armv8/aarch64 CPUs.\n\n3. **Install** the program to usr/local/bin (**for linux**)\n\n    ```\n    make install\n    ```\n\n    To **Uninstall** the program in usr/local/bin (**for linux**), use\n    the command below\n\n    ```\n    make uninstall\n    ```\n\n-----\n\n### **Generate a key file:**\n\n```cmd\nbethela --generate key_filename key_size_in_bytes\n```\n\nThe **key size** should be a positive number greater than 0\n\n-----\n\n### **Encrypt/Decrypt with replace**\n\nAdding `-replace` command when encrypting/decrypting will\nreplace the old files with the encrypted/decrypted files.\n\n-----\n\n### **Vigenere Cipher**\nRequires any key file sizes.\n```\nbethela --encrypt-replace keyfile file1 file2 ... fileN\nbethela --decrypt-replace keyfile file1.bthl file2.bthl ... fileN.bthl\n```\n\n-----\n\n### **AES-128**\nRequires a 128-bit key, or 16 byte key file size.\n```\nbethela --enc-AES128-replace keyfile file1 file2 ... fileN\nbethela --dec-AES128-replace keyfile file1.bthl file2.bthl ... fileN.bthl\n```\n\n-----\n\n### **AES-192**\nRequires a 192-bit key, or 24 byte key file size.\n```\nbethela --enc-AES192-replace keyfile file1 file2 ... fileN\nbethela --dec-AES192-replace keyfile file1.bthl file2.bthl ... fileN.bthl\n```\n\n-----\n\n### **AES-256**\nRequires a 256-bit key, or 32 byte key file size.\n```\nbethela --enc-AES256-replace keyfile file1 file2 ... fileN\nbethela --dec-AES256-replace keyfile file1.bthl file2.bthl ... fileN.bthl\n```\n\n-----\n\n###  **Help flag**\n```\nbethela --help\n```\n\n-----\n\n### External Libraries\n\n- [AES](https://github.com/mrdcvlsc/AES) - for AES encryption with hardware acceleration support.\n- [BytePadding](https://github.com/mrdcvlsc/BytePadding) - for simple padding operations.\n- [BlockCipherModes](https://github.com/mrdcvlsc/BlockCipherModes) - for block cipher encryption modes.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdcvlsc%2Fbethela","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrdcvlsc%2Fbethela","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrdcvlsc%2Fbethela/lists"}