Release 0.9.0-SNAPSHOT with concealed KMP transports

This commit is contained in:
sergeych committed 2026-10-22 02:41:08 +04:00
1 parent 009d62a155
commit 73a785d45c
55 files changed
+6051 -25

No files matched your search

+19 -4
View File
@@ -1,9 +1,9 @@
# Kiloparsec
The Kotlin implementation and the native [TypeScript + WASM client](typescript/README.md)
are maintained here together. Current source version **0.8.0** uses
are maintained here together. Current Kotlin source version **0.9.0-SNAPSHOT** retains
**protocol 2**, which authenticates RPC correlation metadata inside encrypted
packets. Both peers must be upgraded together; protocol 1 peers are rejected with
packets, and adds an opt-in [concealed flavor](CONCEALED-PROTOCOL-IMPLEMENTATION.md). The lightweight TypeScript client remains at 0.8.0 and uses protocol 2. Both peers must be upgraded together; protocol 1 peers are rejected with
no automatic downgrade. See [the security analysis](typescript/docs/SECURITY.md).
The new generation of __PARanoid SECurity__ protocol, advanced, faster, more secure. It also allows connecting any "
@@ -26,6 +26,8 @@ correlation vulnerability. Earlier 0.3–0.7 versions share the old envelope and
must not be assumed compatible with current source. Application command schemas
and the Kotlin interface/session programming model remain unchanged.
The 0.9.0-SNAPSHOT concealed flavor uses separate explicit endpoints and has no automatic downgrade or shared-port detection. It requires Kotlin 2.4 and `crypto2:0.9.6-SNAPSHOT`. See [release notes](RELEASE-0.9.0-SNAPSHOT.md) and [qualification evidence](CONCEALED-PROTOCOL-QUALIFICATION.md).
#### ID calculation algorithm is changed since 0.4.1
Historical note: 0.4.1 changed public/shared key ID derivation. Current deployments
@@ -74,11 +76,14 @@ The library should be used as a maven dependency, not as source.
### Declare maven repository:
Add the private repository to your `build.gradle.kts`, like:
Declare the library and its existing backend repositories in `build.gradle.kts`:
```kotlin
repositories {
mavenCentral()
maven("https://maven.universablockchain.com/")
maven("https://gitea.sergeych.net/api/packages/SergeychWorks/maven")
maven("https://gitea.sergeych.net/api/packages/YoungBlood/maven")
}
```
@@ -89,7 +94,7 @@ It could be, depending on your project structure, something like:
```kotlin
val commonMain by getting {
dependencies {
api("net.sergeych:kiloparsec:0.6.8")
api("net.sergeych:kiloparsec:0.9.0-SNAPSHOT")
}
}
```
@@ -360,3 +365,13 @@ The script runs JVM and Kotlin/JS Node tests, TypeScript unit tests, then cross-
a disposable localhost JVM server built from this checkout. It does not publish
or contact deployment hosts. Additional Gradle options can be passed to the script.
For TypeScript-only commands and examples, see [the module README](typescript/README.md).
## Experimental concealed protocol
A separate Kotlin Multiplatform flavor conceals the handshake and RPC metadata using
Elligator, authenticated encrypted records and configurable padding. It is under
active qualification and uses explicit endpoints. See the
[implementation guide](CONCEALED-PROTOCOL-IMPLEMENTATION.md),
[wire draft](CONCEALED-PROTOCOL-WIRE.md) and
[design decisions](CONCEALED-PROTOCOL-DESIGN.md). The existing protocol and lightweight
TypeScript client remain available.