Confium + RNP: complementary cryptography

Confium and RNP are sibling projects from the same team. They serve complementary roles:

Confium RNP
Focus Threshold cryptography + transparency logs Standard OpenPGP (RFC 9580)
Key model Multi-party (no single party holds the full key) Single-party (one private key)
Signature type Composite (hybrid classical + PQ) Standard OpenPGP signatures
Transparency RFC 6962 Merkle tree + inclusion/consistency proofs None
Deployment Three modes (peer-to-peer TC, PKI drop-in, Sovereign PKI) Standard PGP keyring

When to use which

  • Confium when you need: multi-stakeholder signing, threshold quorums, transparency logs, post-quantum migration via composite signatures, institutional PKI with custom certificate formats.
  • RNP when you need: standard OpenPGP key generation, signing, verification, encryption, armor encode/decode — the full RFC 9580 toolkit.
  • Both when your application uses standard OpenPGP for person-to-person communication AND threshold signing for institutional decisions (e.g., a certificate authority that issues both standard PGP keys and threshold-signed certificates).

Language bindings

Both projects ship bindings for the same languages:

Language Confium RNP
Ruby gem install confium gem install ruby-rnp
Python pip install confium pip install py-rnp
WASM npm install @confium/confium-wasm npm install @rnpgp/rnp
Rust cargo add confium-core cargo add rnp-rs
Swift (in progress) swift-rnp

Ruby integration

The Confium Ruby gem hard-bundles rnp-rs (OpenPGP, RFC 9580) into the native extension. No external gem required — install confium and OpenPGP armor encode/decode is available immediately:

require "confium"

# Threshold signing (Confium)
tree = Confium::Transparency::MerkleTree.new
seq = tree.append(artifact_type: :threshold_signature, artifact_hash: hash)

# Standard OpenPGP armor (RNP, bundled in the extension)
armored = Confium::OpenPGP.armor(raw_bytes, Confium::OpenPGP::PUBLIC_KEY)
decoded = Confium::OpenPGP.dearmor(armored)

The extension links librnp at build time and exposes _native_armor / _native_dearmor via the Rust→magnus bridge. The Ruby wrapper in lib/confium/openpgp.rb adds default-arg convenience.

Python integration

pip install confium py-rnp

The py-rnp package provides standard OpenPGP operations alongside confium for a complete Python crypto toolkit.

WASM (browser)

npm install @confium/confium-wasm @rnpgp/rnp
  • @confium/confium-wasm — transparency log verification, composite signature verification, attribute predicate evaluation.
  • @rnpgp/rnp — full OpenPGP (RFC 9580) in the browser.

See also