Release 0.9.0-SNAPSHOT with concealed KMP transports
This commit is contained in:
1 parent
009d62a155
commit
73a785d45c
55 files changed
+6051
-25
No files matched your search
@@ -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.
|
||||
Reference in new issue
Block a user