prototype invite app
This commit is contained in:
37
www/common/curve.js
Normal file
37
www/common/curve.js
Normal file
@@ -0,0 +1,37 @@
|
||||
define([
|
||||
'/bower_components/tweetnacl/nacl-fast.min.js',
|
||||
], function () {
|
||||
var Nacl = window.nacl;
|
||||
|
||||
var Curve = {};
|
||||
|
||||
// nacl.box(message, nonce, theirPublicKey, mySecretKey)
|
||||
Curve.encrypt = function (message, theirPub, mySecret) {
|
||||
var buffer = Nacl.util.decodeUTF8(message);
|
||||
|
||||
var nonce = Nacl.randomBytes(24);
|
||||
|
||||
var box = Nacl.box(buffer, nonce, theirPub, mySecret);
|
||||
|
||||
return [Nacl.util.encodeBase64(nonce), Nacl.util.encodeBase64(box)].join('|');
|
||||
};
|
||||
|
||||
// nacl.box.open(box, nonce, theirPublicKey, mySecretKey)
|
||||
Curve.decrypt = function (packed, theirPub, mySecret) {
|
||||
var unpacked = packed.split('|');
|
||||
var nonce = Nacl.util.decodeBase64(unpacked[0]);
|
||||
|
||||
var box = Nacl.util.decodeBase64(unpacked[1]);
|
||||
|
||||
var message = Nacl.box.open(box, nonce, theirPub, mySecret);
|
||||
|
||||
return Nacl.util.encodeUTF8(message);
|
||||
};
|
||||
|
||||
Curve.createEncryptor = function () {
|
||||
console.log("PEWPEW");
|
||||
throw new Error("E_NOT_IMPL");
|
||||
};
|
||||
|
||||
return Curve;
|
||||
});
|
||||
Reference in New Issue
Block a user