Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Predko Silvestr fb40b81ce8
Merge pull request #106 from Relayz-io/silvestr/bump-up-dependencies-version
vor 2 Jahren
.github/workflows Update CI vor 2 Jahren
common-api Bump up outdated dependencies vor 2 Jahren
example Fixed a e2ee issues vor 2 Jahren
web-client Expose add_participant API vor 2 Jahren
.dockerignore Add /pkg to docker ignore vor 3 Jahren
.gitignore Rename js-client to example vor 3 Jahren
Cargo.toml Change optimization config to most efficient 3 vor 2 Jahren
Dockerfile Use near-client from crates.io vor 2 Jahren
README.md Update README vor 2 Jahren
docker-compose.yml Update a Docker file for new integration tests vor 3 Jahren

README.md

Client

CI

Common-API 🦆

Commonly used API among different dependencies. For example key-exchange-server

Web-Client 🦘

It’s a client that exchange keys between meeting moderator and participants. To achieve solid security used blockchain as a trust point for establishing secure channels between moderator and participant. Each user in a blockchain has an ED25519 PublicKey. For creating a secure channel Diffie–Hellman algorithm is used, provided by Dalek cryptography. Unfortunately, it’s not possible to exchange keys with ED25519 keys, because it is using a Edwards point, and for algorithm needs a Montgomery point. For this purpose, conversion happened here.

NOTE! Used the maximum key length for each algorithm

Then we have proper keys for the Diffie–Hellman exchange. Let’s create out secret with dhx. After we need to provide a uniformly distributed secret key. For this purpose used a KDF algorithm blake3. Here is an implementation.

The next stage is to pass a randomly generated key in a secure way for each participant. To do this let’s encrypt generated key with a just generated after KDF secure key, that is unique for each participant = moderator pair. Encrypt randomly generated key by ChaCha20 with a AES-GCM. That’s all.

Usage of web-client library:

Please follow the official instructions to use the latest package.

Build

wasm-pack build web-client --target bundler --out-dir ../pkg

Test

Pre requirements: Clone a key-exchange-server and near-smartcontracts. Deploy their docker instances:

⚠️ Please keep the order(near-smartcontracts depends on the key-exchange-server network)

  1. key-exchange-server: bash docker-compose up -d
  2. near-smartcontracts: bash docker-compose -f docker-compose.yml -f docker-compose.tests.yml up -d

Then:

docker-compose up