1 min read
Confium + RNP: complementary cryptography
Confium and RNP are sibling projects. They serve complementary roles in the cryptographic stack:
What each does
| 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) |
| Signatures | Composite (hybrid classical + PQ) | Standard OpenPGP signatures |
| Transparency | RFC 6962 Merkle tree + inclusion/consistency proofs | None |
| Deployment | Deployment modes (peer-to-peer TC, PKI drop-in, Sovereign PKI) | Standard PGP keyring |
When to use which
- Confium for multi-stakeholder signing, threshold quorums, transparency logs, post-quantum migration, institutional PKI.
- RNP for standard OpenPGP key generation, signing, verification, encryption, armor encode/decode.
- Both when your application uses standard OpenPGP for person-to-person communication AND threshold signing for institutional decisions.
Ruby integration
The Confium Ruby gem includes Confium::OpenPGP — a soft-dependency
wrapper that loads ruby-rnp lazily:
require "confium"
# Threshold signing (Confium)
tree = Confium::Transparency::MerkleTree.new
seq = tree.append(artifact_type: :threshold_signature, artifact_hash: hash)
# Standard OpenPGP (RNP via Confium::OpenPGP)
Confium::OpenPGP.verify(pgp_signature, signed_data, pgp_pubkey)
Install both gems:
gem install confium ruby-rnp
Python integration
pip install confium py-rnp
The py-rnp package provides standard OpenPGP operations. Use it
alongside confium for a complete Python crypto toolkit.
WASM (browser)
Both projects ship npm packages:
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: key management, sign, verify, encrypt, decrypt.
See also
- Confium bindings — install + docs for each binding.
- RNP on GitHub — the RNP C library.
- @rnpgp/rnp on npm — WASM OpenPGP package.
More from the blog
Custody without a custodian: threshold encryption for succession
How to encrypt a master secret to a T-of-N quorum so no single party can decrypt alone — for inheritance, corporate escrow, and sealed archives.
Threshold code signing without sharing the key
How to add multi-stakeholder threshold signing to your release pipeline — no HSM, no single point of failure, fully open-source.
Transparency logs: the missing piece in trust infrastructure
How Merkle transparency logs turn one-off signatures into a verifiable history — and why every signing system should anchor to one.