duo

A Kotlin Multiplatform library for two-party Multi-Party Computation (MPC) operations. This module provides secure distributed key generation, signing, and key management between two parties using the SilentShard protocol.

Keys are split between two parties — neither ever holds the complete private key. Both parties drive the same DuoSession surface; which side of the protocol a session plays is chosen at construction:

  • SilentShard.ECDSA.duoInitiator(...) / SilentShard.EdDSA.duoInitiator(...) — the initiator party. It generates the protocol setup and drives each operation against the peer (typically a cloud service).

  • SilentShard.ECDSA.duoOther(...) / SilentShard.EdDSA.duoOther(...) — the other party. Same operations, same DuoSession type; its sessions consume the initiator's setup instead of generating it.

The protocol is role-agnostic — a role is configuration, not a different API.

A Kotlin Multiplatform library for two-party Multi-Party Computation (MPC) operations. This module provides secure distributed key generation, signing, and key management between two parties using the SilentShard protocol.

Keys are split between two parties — neither ever holds the complete private key. Both parties drive the same DuoSession surface; which side of the protocol a session plays is chosen at construction:

  • SilentShard.ECDSA.duoInitiator(...) / SilentShard.EdDSA.duoInitiator(...) — the initiator party. It generates the protocol setup and drives each operation against the peer (typically a cloud service).

  • SilentShard.ECDSA.duoOther(...) / SilentShard.EdDSA.duoOther(...) — the other party. Same operations, same DuoSession type; its sessions consume the initiator's setup instead of generating it.

The protocol is role-agnostic — a role is configuration, not a different API.

Packages

Link copied to clipboard
common
native

The public API: the SilentShard entry point with its duoInitiator / duoOther session factories, and the DuoSession surface for key generation, signing, and key management with a single peer.

Network configuration and utilities specific to two-party MPC communication.