{"id":29407243,"url":"https://github.com/oxarbitrage/hsalsa20","last_synced_at":"2025-07-11T00:41:26.071Z","repository":{"id":166580058,"uuid":"642077116","full_name":"oxarbitrage/hsalsa20","owner":"oxarbitrage","description":"Haskell implementation of the Salsa20 Cipher","archived":false,"fork":false,"pushed_at":"2024-04-14T15:06:04.000Z","size":385,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-15T16:21:52.996Z","etag":null,"topics":["cryptography","haskell","salsa20","stream-cipher"],"latest_commit_sha":null,"homepage":"https://oxarbitrage.github.io/salsa20-docs/","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oxarbitrage.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2023-05-17T19:13:08.000Z","updated_at":"2023-10-11T14:01:51.000Z","dependencies_parsed_at":"2023-10-17T05:11:52.915Z","dependency_job_id":"e640ab7c-7aee-4b2e-a1ca-b5f74656b33b","html_url":"https://github.com/oxarbitrage/hsalsa20","commit_stats":null,"previous_names":["oxarbitrage/hsalsa20"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oxarbitrage/hsalsa20","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxarbitrage%2Fhsalsa20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxarbitrage%2Fhsalsa20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxarbitrage%2Fhsalsa20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxarbitrage%2Fhsalsa20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxarbitrage","download_url":"https://codeload.github.com/oxarbitrage/hsalsa20/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxarbitrage%2Fhsalsa20/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264697589,"owners_count":23650957,"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":["cryptography","haskell","salsa20","stream-cipher"],"created_at":"2025-07-11T00:41:25.332Z","updated_at":"2025-07-11T00:41:26.043Z","avatar_url":"https://github.com/oxarbitrage.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Haskell salsa20 cipher\n\nCompute and Analyze Salsa20 Expressions from an Interactive Haskell Terminal.\n\nWelcome to the Haskell Salsa20 Cipher project! This project serves as both a practical implementation and a learning playground for the Salsa20 algorithm, written in Haskell.\n\n## Project Overview\n\nThis codebase is primarily a personal project, initiated for the purpose of learning Haskell and functional programming. While it's evolved and some features have stabilized, it remains an experimental and educational endeavor. \n\n**Tested on Linux and macOS (Untested on Windows)**\n\n## Features\n\n- Salsa20 Encryption and Decryption Demo: Explore the Salsa20 encryption and decryption application by running the `stack run` or `cabal run salsa20-exe` commands.\n\n- Extensive Testing: The project includes a comprehensive suite of tests to ensure code quality. You can run the tests locally using `stack test` or `cabal test`. The CI (Continuous Integration) pipeline also runs most of these tests.\n\n- Every cipher function is refined using [LiquidHaskell](https://github.com/ucsd-progsys/liquidhaskell) formal verification tool.\n\n## Tutorial\n\nFor a detailed guide on using this Salsa20 cipher, check out our [tutorial](book/tutorial.md). The tutorial breaks down the Salsa20 algorithm into its core components, explains the underlying concepts, and provides practical examples.\n\n## Application\n\nYou can run the demo application with `stack run` command, for example:\n\n```bash\n---Salsa20 encryption and decryption\n\nInsert your secret key phrase:\nsecret key here\nInsert message to be encrypted or decrypted:\ntesting some sort of message\n\nPlain text: testing some sort of message\nSecret key: secret key here\nKey used: Tix73W8AQv7OKbGbxr7W7d3ZqR9YwcHYazNoUXrP0vo=\n\n---Salsa20 Encrypt\nNonce: Gww7O2hiZ2Q=\nCiphertext: xwlqEAOSot6wzT37HuBFLhJiacLSC90yobCoTA==\n\n---Salsa20 Decrypt\nDecrypted: testing some sort of message\n```\n\nPlease refer to the [application source code](https://github.com/oxarbitrage/hsalsa20/blob/main/app/Main.hs) for more information.\n\n## API Documentation\n\nExplore the API documentation for a deeper understanding of the project. Visit [here](https://oxarbitrage.github.io/salsa20-docs/) for detailed information on the project's functions and modules.\n\n## Formal verification\n\nRead more about formal verification process we are using in this library in the [formal verification page](book/formal-verification.md).\n\n## Experimental: Keelung Code\n\nOne experimental aspect of this project is the Keelung code. The current plan involves compiling the core function into an `r1cs` circuit using Keelung for educational purposes. This experimental feature is designed to explore new possibilities and enhance learning. Read the [keelung chapter from the book](book/keelung.md) for examples.\n\n## Get Involved\n\nWe welcome contributions, feedback, and discussions! If you have ideas, find issues, or want to contribute to the project, please feel free to open issues or submit pull requests. Your input and contributions are highly valued.\n\n## License\n\nThis project is open-source and released under the [MIT](LICENSE-MIT) and [APACHE](LICENCE-APACHE) licenses.\n\n---\n\n**Happy ciphering with Haskell Salsa20!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxarbitrage%2Fhsalsa20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxarbitrage%2Fhsalsa20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxarbitrage%2Fhsalsa20/lists"}