@transmissionbot/core-wasm
v0.1.1
Published
WASM bindings for TransmissionBot's core crypto library. Provides key generation, PQXDH session establishment, and safety number computation for Node.js and browser environments.
Readme
@transmissionbot/core-wasm
WASM bindings for TransmissionBot's core crypto library. Provides key generation, PQXDH session establishment, and safety number computation for Node.js and browser environments.
Installation
npm install @transmissionbot/core-wasmUsage
const wasm = require('@transmissionbot/core-wasm');
// Generate Ed25519 identity signing key pair
const signing = JSON.parse(wasm.generate_identity_signing_key());
// { public_key: "<base64url>", secret_key: "<base64url>" }
// Generate X25519 identity DH key pair
const dh = JSON.parse(wasm.generate_identity_dh_key());
// { public_key: "<base64url>", secret_key: "<base64url>" }
// Generate a signed pre-key
const spk = JSON.parse(
wasm.generate_signed_prekey(Buffer.from(signing.secret_key, 'base64url'), 1)
);
// { key_id: 1, public_key: "<base64url>", signature: "<base64url>" }
// Generate one-time pre-keys
const otpKeys = JSON.parse(wasm.generate_one_time_prekeys(1, 10));
// [{ key_id: 1, public_key: "<base64url>" }, ...]
// Generate a PQ (ML-KEM-768) pre-key
const pqKey = JSON.parse(
wasm.generate_pq_prekey(Buffer.from(signing.secret_key, 'base64url'), 1)
);
// { key_id: 1, public_key: "<base64url>", signature: "<base64url>" }
// Compute safety number for two agents
const safetyNumber = wasm.compute_safety_number(
keyA, idA, // Uint8Array
keyB, idB // Uint8Array
);
// "12345 67890 12345 67890 12345 67890 12345 67890 12345 67890 12345 67890"Building from source
wasm-pack build crates/transmissionbot-core \
--target nodejs \
--out-dir ../../sdks/wasm \
--features wasm \
--no-default-featuresSize
~176KB (uncompressed WASM binary).
