{"id":31764299,"url":"https://github.com/sander/noise-kotlin","last_synced_at":"2025-10-09T23:48:24.165Z","repository":{"id":88592522,"uuid":"606774943","full_name":"sander/noise-kotlin","owner":"sander","description":"Noise protocols based on Diffie-Hellman key agreement","archived":false,"fork":false,"pushed_at":"2024-04-22T12:46:58.000Z","size":441,"stargazers_count":7,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-22T13:56:06.187Z","etag":null,"topics":["cryptography","noise-protocol-framework","pure-functional"],"latest_commit_sha":null,"homepage":"https://sander.github.io/noise-kotlin/api/","language":"Kotlin","has_issues":false,"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/sander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2023-02-26T14:32:27.000Z","updated_at":"2024-04-22T13:56:16.476Z","dependencies_parsed_at":"2024-01-31T16:54:55.821Z","dependency_job_id":"899a7d1a-7115-4b11-9ea6-b399ebfddfde","html_url":"https://github.com/sander/noise-kotlin","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/sander/noise-kotlin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sander%2Fnoise-kotlin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sander%2Fnoise-kotlin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sander%2Fnoise-kotlin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sander%2Fnoise-kotlin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sander","download_url":"https://codeload.github.com/sander/noise-kotlin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sander%2Fnoise-kotlin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002312,"owners_count":26083342,"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-09T02:00:07.460Z","response_time":59,"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":["cryptography","noise-protocol-framework","pure-functional"],"created_at":"2025-10-09T23:48:17.545Z","updated_at":"2025-10-09T23:48:24.156Z","avatar_url":"https://github.com/sander.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Noise for Kotlin\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/nl.sanderdijkhuis/noise-kotlin/badge.svg?style=flat-square\u0026gav=true)](https://central.sonatype.com/artifact/nl.sanderdijkhuis/noise-kotlin/)\n\n**Noise for Kotlin** enables implementation of [Noise](https://noiseprotocol.org) protocols based on Diffie-Hellman key agreement.\n\n\u003e **Warning**: This project has not been independently audited. Help is welcome to increase security or to make risks explicit. Also see the [Security policy](SECURITY.md).\n\n## API documentation\n\nSee the [API docs](https://sander.github.io/noise-kotlin/api/) about the latest release or use the Gradle `dokkaHtml` task for a local copy about any version.\n\n## How to build\n\nRun the tests. On POSIX:\n\n    ./gradlew test\n\nOn Windows:\n\n    gradlew test\n\nSee [HandshakeTest](src/test/kotlin/HandshakeTest.kt) for some example handshakes.\n\nInstead of `test`, use `jar` to create a JAR in `build/distributions`.\n\n## How to use in an application\n\nAdd the [`noise-kotlin` dependency](https://central.sonatype.com/artifact/nl.sanderdijkhuis/noise-kotlin) to your project.\n\nThen, implement [`Cryptography`](src/main/kotlin/cryptography/Cryptography.kt) for your platform and `initialize` a [`Handshake`](src/main/kotlin/Handshake.kt).\n\n## Design decisions\n\n- Provide pure functions only, never a callback, leaving effect handling to the user.\n    - Consequence: users must provide any generated keys upfront. Not yet sure if this will work for all situations.\n- Support only Curve25519, ChaCha20-Poly1305, and SHA-256 to reduce the need to choose and since these are available on most platforms.\n    - Consequence: it should be easy to use with [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html).\n- Use only Kotlin types and functions, and nothing directly from Java SE or libraries.\n    - Consequence: all cryptographic function dependency implementation is behind an interface, which users need to implement using native platform functions.\n- Do not include particular masking, encryption, or zeroization functionality for sensitive data, to avoid disproportional complexity.\n    - Consequence: run with sufficiently protected volatile memory and protect heap dump data from unauthorized access.\n\n## Test vectors\n\n[Test vectors](https://github.com/noiseprotocol/noise_wiki/wiki/Test-vectors) are used from:\n\n- [snow.txt](src/test/resources/vectors/snow.txt) from [mcginty/snow](https://github.com/mcginty/snow/blob/375ba067b54f09ecaaa4211f9dd48fdc7f43fa50/tests/vectors/snow.txt)\n\n## Related resources\n\n- [License](LICENSE.md)\n- [Security policy](SECURITY.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsander%2Fnoise-kotlin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsander%2Fnoise-kotlin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsander%2Fnoise-kotlin/lists"}