1.0.0 • Published 7 months ago
@futuretense/ot v1.0.0
@futuretense/ot
A TypeScript library for Oblivious Transfer (OT) primitives, featuring Random OT (ROT) as a base and KOS15 as an efficient OT extension. Built for cryptographic developers, this package provides flexible OT implementations for secure protocols like multi-party computation (MPC), private set intersection (PSI), and more.
Features
- Base OT (ROT): Random Oblivious Transfer with elliptic curve cryptography for small-scale OT generation.
- OT Extension (KOS15): Scales base OTs to large (n).
- Class-Based: Sender/receiver classes for clean, stateful OT workflows.
Installation
npm install @futuretense/otUsage
Random OT (ROT)
Generate and process (n) random OT pairs:
import { ROTSender, ROTReceiver } from '@futuretense/ot';
// Sender
const sender = new ROTSender(128); // 128 OTs
const A = sender.send1(); // Initial message
// Receiver
const receiver = new ROTReceiver(128);
const B = receiver.recv(A); // Receiver's response
sender.send2(B); // Finalize OT
console.log(sender.e); // Sender's OT outputs (Uint8Array[][])
console.log(receiver.ec); // Receiver's OT outputs (Uint8Array[])
console.log(receiver.choice); // Receiver's choice bits (Uint8Array)OT Extension (KOS15)
Extend base OTs to (n) correlated OTs:
import { ROTSender, ROTReceiver, OTESender, OTEReceiver } from '@futuretense/ot';
// Base OT
const rotSender = new ROTSender(128);
const rotReceiver = new ROTReceiver(128);
const A = rotSender.send1();
const B = rotReceiver.recv(A);
rotSender.send2(B);
// Extend
const oteSender = new OTESender(rotSender, 256); // 256 OTs
const oteReceiver = new OTEReceiver(rotReceiver, 256);
const m = oteSender.send();
oteReceiver.recv(m);
console.log(oteSender.ec); // Sender's extended outputs (Uint8Array[])
console.log(oteReceiver.e); // Receiver's extended outputs (Uint8Array[][])
console.log(oteReceiver.choice); // Receiver's extended choice bits (Uint8Array)Notes
ROT is a Simplest OT, with collision resistant hashing. OTE implements the 2022 update of the KOS15 protocol, making it actively secure.
Copyright © 2025 Future Tense, LLC