Oblivious Transfers
npm install @futuretense/otA 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.
bash
npm install @futuretense/ot
`Usage
$3
Generate and process (n) random OT pairs:
`typescript
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)
`$3
Extend base OTs to (n) correlated OTs:
`typescript
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)
``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