{"id":22513263,"url":"https://github.com/amiriiw/merkle_note","last_synced_at":"2025-03-28T01:23:07.181Z","repository":{"id":266065108,"uuid":"897278972","full_name":"amiriiw/merkle_note","owner":"amiriiw","description":"Merkle Note is a lightweight GTK-based application for securely encrypting, decrypting, and saving textual data. The application uses AES-256-CBC encryption and integrates a Merkle root system for verifying the integrity of the stored data.","archived":false,"fork":false,"pushed_at":"2024-12-02T11:11:30.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T03:18:35.574Z","etag":null,"topics":["aes-256","aes-256-cbc","c","cryptography","files","hash","merkle","notebook","security"],"latest_commit_sha":null,"homepage":"https://amiriiw.github.io/","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/amiriiw.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":"2024-12-02T11:01:47.000Z","updated_at":"2024-12-02T11:12:59.000Z","dependencies_parsed_at":"2024-12-02T19:01:58.667Z","dependency_job_id":null,"html_url":"https://github.com/amiriiw/merkle_note","commit_stats":null,"previous_names":["amiriiw/merkle_note"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amiriiw%2Fmerkle_note","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amiriiw%2Fmerkle_note/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amiriiw%2Fmerkle_note/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amiriiw%2Fmerkle_note/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amiriiw","download_url":"https://codeload.github.com/amiriiw/merkle_note/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245950530,"owners_count":20699087,"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":["aes-256","aes-256-cbc","c","cryptography","files","hash","merkle","notebook","security"],"created_at":"2024-12-07T03:10:55.569Z","updated_at":"2025-03-28T01:23:07.016Z","avatar_url":"https://github.com/amiriiw.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Merkle Note\n\nMerkle Note is a lightweight GTK-based application for securely encrypting, decrypting, and saving textual data. The application uses AES-256-CBC encryption and integrates a Merkle root system for verifying the integrity of the stored data.\n\n## Features\n\n- **Text Encryption**: Secure your text files with AES-256 encryption.\n- **Merkle Root Verification**: Calculate and store Merkle roots to ensure data integrity.\n- **Graphical Interface**: Simple GTK-based GUI for saving and opening encrypted files.\n- **User-Friendly**: Easy-to-use interface for encryption, decryption, and file management.\n\n---\n\n## How It Works\n\n1. **Save Text**: \n   - The application calculates a Merkle root (SHA-256 hash) from the text.\n   - The Merkle root is appended to a local file (`pass.txt`).\n   - The text is encrypted using AES-256-CBC and saved to the specified file.\n\n2. **Open File**:\n   - Users provide the Merkle root key when opening an encrypted file.\n   - The application decrypts the file and displays the content in the text editor.\n\n---\n\n## Installation\n\n### Prerequisites\n\n- **C Compiler**: GCC or Clang\n- **GTK Development Libraries**: `libgtk-3-dev` or equivalent\n- **OpenSSL Development Libraries**: `libssl-dev`\n\n### Build Instructions\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/amiriiw/merkle_note.git\n   cd merkle_note\n   cd Merkle-note\n   ```\n\n2. Compile the code:\n   ```bash\n   gcc -o merkle_note main.c `pkg-config --cflags --libs gtk+-3.0` -lssl -lcrypto\n   ```\n\n3. Run the application:\n   ```bash\n   ./merkle_note\n   ```\n\n---\n\n## Usage\n\n1. **Start the application**:\n   - Run the compiled binary to open the Secure Notepad interface.\n\n2. **Saving Text**:\n   - Write text in the editor.\n   - Click the \"Save\" button and specify the save location.\n   - The Merkle root is stored in `pass.txt`, and the text is encrypted.\n\n3. **Opening Files**:\n   - Click the \"Open\" button and select an encrypted file.\n   - Provide the Merkle root key for decryption.\n   - The decrypted text is displayed in the editor.\n\n---\n\n## Security\n\n- **Encryption**: AES-256-CBC encryption ensures strong protection for your data.\n- **Random Initialization Vector (IV)**: A unique IV is generated for each encryption to enhance security.\n- **Merkle Root**: SHA-256 hashes are used for verifying text integrity.\n\n---\n\n## File Structure\n\n- `merkle_note.c`: Main source code for the application.\n- `pass.txt`: Stores Merkle roots for saved files.\n\n---\n\n## Known Issues\n\n- Ensure the `pass.txt` file is not shared or deleted, as it contains the Merkle roots for decryption.\n- The decryption process may fail if the wrong key is provided or if the file has been tampered with.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n\n## Acknowledgments\n\n- GTK+ for the GUI framework\n- OpenSSL for providing robust cryptographic functionality\n\n---\n\n## Contributions\n\nContributions are welcome! Feel free to submit issues, fork the repository, and open pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famiriiw%2Fmerkle_note","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famiriiw%2Fmerkle_note","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famiriiw%2Fmerkle_note/lists"}