{"id":27624276,"url":"https://github.com/pogsmok/chacha20","last_synced_at":"2025-04-23T11:27:14.955Z","repository":{"id":288955416,"uuid":"969660545","full_name":"PogSmok/chacha20","owner":"PogSmok","description":"Implementation of the ChaCha20 cipher according to RFC standards for IETF Protocols ","archived":false,"fork":false,"pushed_at":"2025-04-20T17:31:28.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-20T17:43:29.538Z","etag":null,"topics":["chacha20","cpp","ietf","rfc"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PogSmok.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,"zenodo":null}},"created_at":"2025-04-20T16:49:35.000Z","updated_at":"2025-04-20T17:33:53.000Z","dependencies_parsed_at":"2025-04-20T17:53:33.348Z","dependency_job_id":null,"html_url":"https://github.com/PogSmok/chacha20","commit_stats":null,"previous_names":["pogsmok/chacha20"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PogSmok%2Fchacha20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PogSmok%2Fchacha20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PogSmok%2Fchacha20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PogSmok%2Fchacha20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PogSmok","download_url":"https://codeload.github.com/PogSmok/chacha20/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250423878,"owners_count":21428255,"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":["chacha20","cpp","ietf","rfc"],"created_at":"2025-04-23T11:27:14.385Z","updated_at":"2025-04-23T11:27:14.942Z","avatar_url":"https://github.com/PogSmok.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChaCha20 cipher\nChaCha20 is a stream cipher designed by Daniel J. Bernstein that provides high-speed encryption with strong security guarantees. It is an evolution of the earlier Salsa20 cipher, featuring improved security and performance characteristics.\nChaCha20 is widely regarded as secure when used correctly, especially with a unique nonce for each message. It is commonly used in protocols like TLS, VPNs, and secure messaging systems due to its speed and security properties.\n\n## The core of the implementation follows the [RFC 8439](https://datatracker.ietf.org/doc/html/rfc8439) specification for ChaCha20.\nThis library ensures compatibility with the official standard, including test vectors, initialization procedures, and processing steps.\nThe implementation emphasizes correctness, security, and performance, making it suitable for integration into cryptographic systems requiring high-speed and secure stream cipher operations.\n\n## Features:\n  * Fast and secure stream cipher based on the ChaCha20 algorithm\n  * 256-bit keys and 96-bit nonces\n  * Implementation of encryption and decryption (since it's a symmetric cipher)\n  * Modular and easy to integrate into your projects\n  * Safe and exception-free code\n\n## Usage\nSimply download the `chacha20.hpp` file and include it like any other header. This will allow the construction of a `Chacha20` object with a user-provided key, block count and nonce.\nAfterwards simply call `encrypt()` function on whatever string is to be encoded or decoded. For an example refer to `test.cpp`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpogsmok%2Fchacha20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpogsmok%2Fchacha20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpogsmok%2Fchacha20/lists"}