git ssb

16+

Dominic / patchbay



Tree: 301f073d02f96f4788640d5dc8440c912c7aace9

Files: 301f073d02f96f4788640d5dc8440c912c7aace9 / modules_core / crypto.js

1325 bytesRaw
1var ref = require('ssb-ref')
2var keys = require('../keys')
3var ssbKeys = require('ssb-keys')
4
5function unbox_value(msg) {
6 var plaintext = ssbKeys.unbox(msg.content, keys)
7 if(!plaintext) return null
8 return {
9 previous: msg.previous,
10 author: msg.author,
11 sequence: msg.sequence,
12 timestamp: msg.timestamp,
13 hash: msg.hash,
14 content: plaintext,
15 private: true
16 }
17}
18
19
20module.exports = {
21
22 needs: {sbot_publish: 'first'},
23 gives: {
24 message_unbox: true, message_box: true, publish: true
25 },
26 create: function (api) {
27
28 var exports = {}
29 exports.message_unbox = function (msg) {
30 if(msg.value) {
31 var value = unbox_value(msg.value)
32 if(value)
33 return {
34 key: msg.key, value: value, timestamp: msg.timestamp
35 }
36 }
37 else
38 return unbox_value(msg)
39 }
40
41 exports.message_box = function (content) {
42 return ssbKeys.box(content, content.recps.map(function (e) {
43 return ref.isFeed(e) ? e : e.link
44 }))
45 }
46
47 exports.publish = function (content, cb) {
48 if(content.recps)
49 content = exports.message_box(content)
50 api.sbot_publish(content, function (err, msg) {
51 if(err) throw err
52 console.log('PUBLISHED', msg)
53 if(cb) cb(err, msg)
54 })
55 }
56
57 return exports
58 }
59}
60
61

Built with git-ssb-web