{"id":49222791,"url":"https://github.com/symbolicsoft/noiseexplorer","last_synced_at":"2026-04-24T05:02:02.084Z","repository":{"id":34564413,"uuid":"355473594","full_name":"symbolicsoft/noiseexplorer","owner":"symbolicsoft","description":"Online engine for reasoning about the Noise Protocol Framework.","archived":false,"fork":false,"pushed_at":"2026-04-07T09:19:40.000Z","size":52506,"stargazers_count":20,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-07T11:17:33.198Z","etag":null,"topics":["cryptographic-protocols","cryptography","formal-methods","formal-verification","protocol-analysis","protocol-verification","symbolic-protocol-analysis"],"latest_commit_sha":null,"homepage":"https://noiseexplorer.com","language":"Rust","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/symbolicsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-04-07T08:44:01.000Z","updated_at":"2026-04-07T09:19:48.000Z","dependencies_parsed_at":"2024-04-16T05:48:55.712Z","dependency_job_id":null,"html_url":"https://github.com/symbolicsoft/noiseexplorer","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/symbolicsoft/noiseexplorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symbolicsoft%2Fnoiseexplorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symbolicsoft%2Fnoiseexplorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symbolicsoft%2Fnoiseexplorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symbolicsoft%2Fnoiseexplorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/symbolicsoft","download_url":"https://codeload.github.com/symbolicsoft/noiseexplorer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symbolicsoft%2Fnoiseexplorer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32209896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cryptographic-protocols","cryptography","formal-methods","formal-verification","protocol-analysis","protocol-verification","symbolic-protocol-analysis"],"created_at":"2026-04-24T05:01:59.041Z","updated_at":"2026-04-24T05:02:02.079Z","avatar_url":"https://github.com/symbolicsoft.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Noise Explorer](https://noiseexplorer.com)\n## Version 1.0.7, based on Noise Protocol Revision 34.\n\n### Overview\nThe Noise Explorer command-line tool can parse Noise Handshake Patterns according to the original specification. It can generate cryptographic models for formal verification, including security queries, top-level processes and malicious principals, for testing against an active or passive attacker. Noise Explorer can also generate fully functional discrete implementations for any Noise Handshake Pattern, written in the [Go](https://golang.org) and [Rust](https://www.rust-lang.org) programming languages, as well as [WebAssembly](https://webassembly.org) binaries.\n\nNoise Explorer can also render results from the ProVerif output into an elegant and easy to read HTML format: the pattern results that can be explored on [Noise Explorer](https://noiseexplorer.com) were generated using the Noise Explorer command-line tool.\n\n### Status\n| Output   | Functional | Reliable | Tests      |\n|----------|------------|----------|------------|\n| ProVerif | ✔️          | ✔️        | ✔️          |\n| Go       | ✔️          | ✔️        | ✔️          |\n| Rust     | ✔️          | ✔️        | ✔️          |\n| Wasm     | ✔️          | ✔️        | ✔️          |\n\n### Usage\n\n```\n$\u003e node noiseExplorer --help\nNoise Explorer version 0.3 (specification revision 34)\nNoise Explorer has three individual modes: generation, rendering and web interface.\n\nGeneration:\n--generate=(json|pv|go|rs|wasm): Specify output format.\n--pattern=[file]: Specify input pattern file (required).\n--attacker=(active|passive): Specify ProVerif attacker type (default: active).\n\nRendering:\n--render: Render results from ProVerif output files into HTML.\n--pattern=[file]: Specify input pattern file (required).\n--activeModel=[file]: Specify ProVerif active attacker model (required).\n--activeResults=[file]: Specify active results file for --render (required).\n--passiveResults=[file]: Specify passive results file for --render (required).\n\nWeb interface:\n--web=(port): Make Noise Explorer's web interface available at http://localhost:(port) (default: 8000).\n\nHelp:\n--help: View this help text.\n```\n\n### Requirements\n1. [Node](https://nodejs.org) is required for running Noise Explorer locally.\n2. [ProVerif](http://prosecco.gforge.inria.fr/personal/bblanche/proverif/) is required for verifying generated models.\n2. [Go](https://golang.org) and [Rust](https://www.rust-lang.org) are required for running generated implementations.\n3. [Google Chrome](https://chrome.google.com) is required for testing Wasm implementations.\n\n### Preparation\n1. `cd src`\n2. `make dependencies`\n3. `make parser`\n\n### Usage\n`node noiseExplorer --help`\n\n### Model Generation\nTo quickly translate all Noise handshake patterns in the `patterns` folder to ProVerif models, simply run `make models` after completing the steps outlined in the Preparation section of this document. The models will be available in the `models` folder.\n\n### Implementation Generation\nTo quickly translate all Noise handshake patterns in the `patterns` folder to Go, Rust and Wasm implementations, simply run `make implementations` after completing the steps outlined in the Preparation section of this document. The software will be available in the `implementations` folder. Note that the implementations found under `implementations/wasm` and the ones found under `implementations/rust` use different cryptographic libraries for compatibility purposes.\n\n### WebAssembly Binaries\nWasm binaries and relevant helper files are found under `implementations/wasm/*/pkg`. To re-compile the Wasm binaries run `make wasm` after generating implementations using `make implementations`. \n\n### Implementation Testing\nRunning `make tests` will verify these implementations against test vectors obtained from [Cacophony](https://github.com/centromere/cacophony), a Haskell implementation of the Noise Protocol Framework.\nTesting Wasm implementations will utilize [Google Chrome](https://chrome.google.com) in headless mode.\n\n### Implementation Documentation\nTo view the documentation of a generated Rust implementation, navigate to the directory of the desired pattern and run `cargo doc --open --no-deps`.\n\n### Contributors and License\nAuthored by [Symbolic Software](https://symbolic.software). Released under the GNU General Public License, version 3.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymbolicsoft%2Fnoiseexplorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsymbolicsoft%2Fnoiseexplorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymbolicsoft%2Fnoiseexplorer/lists"}