|
|
@ -147,9 +147,70 @@ var createUser = function (config, cb) {
|
|
|
|
return void cb(err2);
|
|
|
|
return void cb(err2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
|
|
|
|
}).nThen(function (w) {
|
|
|
|
|
|
|
|
// pin your mailbox
|
|
|
|
|
|
|
|
user.rpc.send('PIN', [user.mailboxChannel], w(function (err, data) {
|
|
|
|
|
|
|
|
if (err) {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb(err);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
if (data[0] === EMPTY_ARRAY_HASH) { throw new Error("PIN_DIDNT_WORK"); }
|
|
|
|
|
|
|
|
user.latestPinHash = data[0];
|
|
|
|
|
|
|
|
} catch (err2) {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb(err2);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
}).nThen(function (w) {
|
|
|
|
|
|
|
|
user.team_rpc.send('GET_HASH', config.teamEdKeys.edPublic, w(function (err, hash) {
|
|
|
|
|
|
|
|
if (err) {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb(err);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!hash || hash[0] !== EMPTY_ARRAY_HASH) {
|
|
|
|
|
|
|
|
console.error("EXPECTED EMPTY ARRAY HASH");
|
|
|
|
|
|
|
|
process.exit(1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}));
|
|
|
|
}).nThen(function () {
|
|
|
|
}).nThen(function () {
|
|
|
|
|
|
|
|
// TODO check your quota usage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}).nThen(function (w) {
|
|
|
|
|
|
|
|
user.rpc.send('UNPIN', [user.mailboxChannel], w(function (err, data) {
|
|
|
|
|
|
|
|
if (err) {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb(err);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
if (data[0] !== EMPTY_ARRAY_HASH) { throw new Error("UNPIN_DIDNT_WORK"); }
|
|
|
|
|
|
|
|
user.latestPinHash = data[0];
|
|
|
|
|
|
|
|
} catch (err2) {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb(err2);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
}).nThen(function (w) {
|
|
|
|
|
|
|
|
// clean up the pin list to avoid lots of accounts on the server
|
|
|
|
|
|
|
|
user.rpc.send("REMOVE_PINS", undefined, w(function (err, data) {
|
|
|
|
|
|
|
|
if (err) {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb(err);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!data || data[0] !== 'OK') {
|
|
|
|
|
|
|
|
w.abort();
|
|
|
|
|
|
|
|
return void cb("REMOVE_PINS_DIDNT_WORK");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}));
|
|
|
|
}).nThen(function () {
|
|
|
|
}).nThen(function () {
|
|
|
|
|
|
|
|
user.cleanup = function (cb) {
|
|
|
|
|
|
|
|
// TODO remove your mailbox
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cb = cb;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cb(void 0, user);
|
|
|
|
cb(void 0, user);
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -177,9 +238,6 @@ nThen(function (w) {
|
|
|
|
bob = _bob;
|
|
|
|
bob = _bob;
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
}).nThen(function (w) {
|
|
|
|
}).nThen(function (w) {
|
|
|
|
// Alice sends a message to Bob's mailbox
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var message = alice.mailbox.encrypt(JSON.stringify({
|
|
|
|
var message = alice.mailbox.encrypt(JSON.stringify({
|
|
|
|
type: "CHEESE",
|
|
|
|
type: "CHEESE",
|
|
|
|
author: alice.curveKeys.curvePublic,
|
|
|
|
author: alice.curveKeys.curvePublic,
|
|
|
|