0.1.2 • Published 2 years ago

xxxdh-js v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

XXXDH_JS

WASM wrapper around xxxdh library implementing Extended Triple Diffie-Hellman key exchange.

Usage

import * as xxxdh from "xxxdh-js";

let alice_identity = new xxxdh.X25519RistrettoKeyPair();
let alice_prekey = new xxxdh.X25519RistrettoKeyPair();
let alice_signature = alice_identity.sign(alice_prekey.public);
let alice_protocol = new xxxdh.ProtocolX25519RistrettoInMemSha256Aes256Gm(alice_identity.to_vec(), alice_prekey.to_vec(), alice_signature);

let onetime_keypair = new xxxdh.X25519RistrettoKeyPair();

let bob_identity = new xxxdh.X25519RistrettoKeyPair();
let bob_prekey = new xxxdh.X25519RistrettoKeyPair();
let bob_signature = bob_identity.sign(bob_prekey.public);
let bob_protocol = new xxxdh.ProtocolX25519RistrettoInMemSha256Aes256Gm(bob_identity.to_vec(), bob_prekey.to_vec(), bob_signature, [onetime_keypair.to_vec()]);

let alice_msg = alice_protocol.prepare_init_msg(bob_identity.public, bob_prekey.public, bob_signature, onetime_keypair.public);
let alice_init_msg = alice_msg.init_msg;
let alice_sk = alice_msg.shared_secret;

let bob_sk = bob_protocol.derive_shared_secret(
    alice_init_msg.sender_identity,
    alice_init_msg.sender_ephemerial_key,
    alice_init_msg.receiver_onetime_key,
    alice_init_msg.nonce, alice_init_msg.cyphertext
);

console.log("Alice:", alice_sk);
console.log("Bob:", bob_sk);