olm/javascript
Richard van der Hoff 76610c0a3a Allocate memory for message blobs on the heap
Messages can be very large, so we don't really want to allocate them on the
stack. Switch to using the heap for them, and try to clean up some of the
string handling while we're at it.
2016-12-14 12:05:56 +00:00
..
demo Return the message index when decrypting group messages. 2016-10-20 09:58:55 +01:00
.gitignore Make 'npm build' build the js lib 2016-04-26 12:12:08 +01:00
olm_inbound_group_session.js Allocate memory for message blobs on the heap 2016-12-14 12:05:56 +00:00
olm_outbound_group_session.js Allocate memory for message blobs on the heap 2016-12-14 12:05:56 +00:00
olm_post.js Allocate memory for message blobs on the heap 2016-12-14 12:05:56 +00:00
olm_pre.js Fix a console error when importing in a browser 2015-12-02 14:06:01 +00:00
package.json Version bump for 2.0.0 2016-10-25 11:35:20 +01:00
README.md Javascript bindings for group sessions 2016-05-25 17:48:01 +01:00

Olm

Example:

var alice = new Olm.Account();
var bob = new Olm.Account();
alice.create();
bob.create();
bob.generate_one_time_keys(1);

var bobs_id_keys = JSON.parse(bob.identity_keys());
var bobs_id_key = bobs_id_keys.curve25519;
var bobs_ot_keys = JSON.parse(bob.one_time_keys());
for (key in bobs_ot_keys.curve25519) {
    var bobs_ot_key = bobs_ot_keys.curve25519[key];
}

alice_session = new Olm.Session();
alice_session.create_outbound(alice, bobs_id_key, bobs_ot_key);
alice_message = a_session.encrypt("Hello");

bob_session.create_inbound(bob, bob_message);
var plaintext = bob_session.decrypt(message_1.type, bob_message);
bob.remove_one_time_keys(bob_session);

Group chat:

var outbound_session = new Olm.OutboundGroupSession();
outbound_session.create();

// exchange these over a secure channel
var session_id = group_session.session_id();
var session_key = group_session.session_key();
var message_index = group_session.message_index();

var inbound_session = new Olm.InboundGroupSession();
inbound_session.create(message_index, session_key);

var ciphertext = outbound_session.encrypt("Hello");
var plaintext = inbound_session.decrypt(ciphertext);