{"_id":"libsignal","_rev":"4207195","name":"libsignal","description":"Open Whisper Systems' libsignal for Node.js","dist-tags":{"latest":"2.0.1"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"time":{"modified":"2026-03-04T17:03:56.000Z","created":"2017-10-15T20:11:05.903Z","2.0.1":"2019-01-11T17:55:57.822Z","2.0.0":"2018-08-14T00:26:18.645Z","1.2.2":"2018-04-04T22:58:25.986Z","1.2.1":"2018-01-14T21:18:44.498Z","1.2.0":"2018-01-13T00:58:00.712Z","1.0.7":"2017-11-15T23:58:03.353Z","1.0.6":"2017-10-16T23:24:22.226Z","1.0.5":"2017-10-16T21:03:05.625Z","1.0.4":"2017-10-16T06:29:08.124Z","1.0.3":"2017-10-15T20:50:24.128Z","1.0.2":"2017-10-15T20:23:46.409Z","1.0.1":"2017-10-15T20:14:09.245Z","1.0.0":"2017-10-15T20:11:05.903Z"},"users":{},"repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"versions":{"2.0.1":{"name":"libsignal","version":"2.0.1","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.8"},"devDependencies":{"eslint":"5.12.0","grunt":"1.0.3","grunt-cli":"1.2.0"},"gitHead":"b819adb69a6edc436fd20179326a6542ef494de9","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@2.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"c276025c184ae4ebbd7d75c12c0be9f3b50cc19e","size":193645,"noattachment":false,"key":"/libsignal/-/libsignal-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-2.0.1.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal_2.0.1_1547229357686_0.7237702285152094"},"_hasShrinkwrap":false,"publish_time":1547229357822,"_cnpm_publish_time":1547229357822,"_cnpmcore_publish_time":"2021-12-16T16:10:32.127Z"},"2.0.0":{"name":"libsignal","version":"2.0.0","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0","grunt":"1.0.3","grunt-cli":"1.2.0"},"gitHead":"17c196d3511c835935a1ee96b7e71cf9a3bf2b73","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"47af230a6c821f72054b8f1313de8b2a131ffb5f","size":193767,"noattachment":false,"key":"/libsignal/-/libsignal-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-2.0.0.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal_2.0.0_1534206378476_0.20668562296878634"},"_hasShrinkwrap":false,"publish_time":1534206378645,"_cnpm_publish_time":1534206378645,"_cnpmcore_publish_time":"2021-12-16T16:10:32.743Z"},"1.2.2":{"name":"libsignal","version":"1.2.2","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"ab765aff3ac818760fd15dd84f6f81243b6b7bf8","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.2.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"f9599b9176cd031d29524d71162ed5f372a7b14a","size":641443,"noattachment":false,"key":"/libsignal/-/libsignal-1.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.2.2.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal_1.2.2_1522882705789_0.7882265631896463"},"_hasShrinkwrap":false,"publish_time":1522882705986,"_cnpm_publish_time":1522882705986,"_cnpmcore_publish_time":"2021-12-16T16:10:34.092Z"},"1.2.1":{"name":"libsignal","version":"1.2.1","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"7b1658b49fee28dc1c5ade3dc6f74fe338c710a3","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.2.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.3","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"87e21651bb493e27c32af652d38413b259200c2d","size":641547,"noattachment":false,"key":"/libsignal/-/libsignal-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.2.1.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.2.1.tgz_1515964723486_0.4747030057478696"},"directories":{},"publish_time":1515964724498,"_hasShrinkwrap":false,"_cnpm_publish_time":1515964724498,"_cnpmcore_publish_time":"2021-12-16T16:10:35.490Z"},"1.2.0":{"name":"libsignal","version":"1.2.0","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"95376ae5c4724dd6023140b1e5f2d266b8e3fc79","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"9fed3e026aae6f655bf9ab89c29a1fcf2ffea645","size":640950,"noattachment":false,"key":"/libsignal/-/libsignal-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.2.0.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.2.0.tgz_1515805080583_0.23162391525693238"},"directories":{},"publish_time":1515805080712,"_hasShrinkwrap":false,"_cnpm_publish_time":1515805080712,"_cnpmcore_publish_time":"2021-12-16T16:10:36.904Z"},"1.0.7":{"name":"libsignal","version":"1.0.7","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"fccad6f343ae1960f217fb990fb082dfe5512a96","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.0.7","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"bb9a9c44ba97e691c04e2cc0ad30055fd083c8ee","size":640588,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.7.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.7.tgz_1510790283268_0.4666934043634683"},"directories":{},"publish_time":1510790283353,"_hasShrinkwrap":false,"_cnpm_publish_time":1510790283353,"_cnpmcore_publish_time":"2021-12-16T16:10:38.055Z"},"1.0.6":{"name":"libsignal","version":"1.0.6","description":"Open Whisper Systems' libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"79cadda1610b9f678168703f0bda2cf63a77f07d","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.0.6","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"fc970aa8433ad4a6f381164425befe232a07e28f","size":641224,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.6.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.6.tgz_1508196261571_0.02086204313673079"},"directories":{},"publish_time":1508196262226,"_hasShrinkwrap":false,"_cnpm_publish_time":1508196262226,"_cnpmcore_publish_time":"2021-12-16T16:10:38.904Z"},"1.0.5":{"name":"libsignal","version":"1.0.5","description":"WhisperSystem's libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"49ec9adbcc475932e05a3b5d1d87e2e7a1a116d7","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.0.5","_npmVersion":"5.4.2","_nodeVersion":"8.7.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"29d4b82042875f831d43d54599a417762af339e8","size":640574,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.5.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.5.tgz_1508187785234_0.5250171169172972"},"directories":{},"publish_time":1508187785625,"_hasShrinkwrap":false,"_cnpm_publish_time":1508187785625,"_cnpmcore_publish_time":"2021-12-16T16:10:40.155Z"},"1.0.4":{"name":"libsignal","version":"1.0.4","description":"WhisperSystem's libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"7f8d99a64120edffaa0dd98ae63b85017bddcbc2","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.0.4","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"f805c492326f5c01ba517928107523c3117e61bc","size":641219,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.4.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.4.tgz_1508135347673_0.04332016524858773"},"directories":{},"publish_time":1508135348124,"_hasShrinkwrap":false,"_cnpm_publish_time":1508135348124,"_cnpmcore_publish_time":"2021-12-16T16:10:41.684Z"},"1.0.3":{"name":"libsignal","version":"1.0.3","description":"WhisperSystem's libsignal for Node.js","repository":{"type":"git","url":"git+https://github.com/ForstaLabs/libsignal-node.git"},"engines":{"node":">=8"},"keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"66f1a21aa97b9f566f2bef5916565a015e7241ec","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","_id":"libsignal@1.0.3","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"e5ccaabbf82ecd372a60a75d5679e8b49463f3b1","size":641147,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.3.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.3.tgz_1508100623946_0.38421687786467373"},"directories":{},"publish_time":1508100624128,"_hasShrinkwrap":false,"_cnpm_publish_time":1508100624128,"_cnpmcore_publish_time":"2021-12-16T16:10:42.572Z"},"1.0.2":{"name":"libsignal","repository":{"type":"git","url":"git+https://github.com/forstalabs/libsignal-node.git"},"version":"1.0.2","license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"devDependencies":{"eslint":"4.9.0"},"gitHead":"4fda0db09994b7f3e4b9267de34dc9b6120b679a","description":"libsignal-node ======== Signal Protocol implementation for Node.js based on [libsignal-protocol-javascript](https://github.com/WhisperSystems/libsignal-protocol-javascript).","bugs":{"url":"https://github.com/forstalabs/libsignal-node/issues"},"homepage":"https://github.com/forstalabs/libsignal-node#readme","_id":"libsignal@1.0.2","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"cf6ae91ea000cf2a8ad2319f8df327725da9ff82","size":641390,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.2.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.2.tgz_1508099026033_0.3508669475559145"},"directories":{},"publish_time":1508099026409,"_hasShrinkwrap":false,"_cnpm_publish_time":1508099026409,"_cnpmcore_publish_time":"2021-12-16T16:10:44.047Z"},"1.0.1":{"name":"libsignal","repository":{"type":"git","url":"git+https://github.com/forstalabs/libsignal-node.git"},"version":"1.0.1","license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"gitHead":"833714fdc2f2842751240f45b1d50d9bec39adfb","description":"libsignal-node ======== Signal Protocol implementation for Node.js based on [libsignal-protocol-javascript](https://github.com/WhisperSystems/libsignal-protocol-javascript).","bugs":{"url":"https://github.com/forstalabs/libsignal-node/issues"},"homepage":"https://github.com/forstalabs/libsignal-node#readme","_id":"libsignal@1.0.1","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"8066dc5c9ec7f3fad00ac81cc28e4b043294a073","size":643011,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.1.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.1.tgz_1508098447652_0.3125452697277069"},"directories":{},"publish_time":1508098449245,"_hasShrinkwrap":false,"_cnpm_publish_time":1508098449245,"_cnpmcore_publish_time":"2021-12-16T16:10:44.981Z"},"1.0.0":{"name":"libsignal","repository":{"type":"git","url":"git+https://github.com/forstalabs/libsignal-node.git"},"version":"1.0.0","license":"GPL-3.0","dependencies":{"protobufjs":"6.8.0"},"gitHead":"1faa93b13d757337159f3563a118541463fbe183","description":"libsignal-node ======== Signal Protocol implementation for Node.js based on [libsignal-protocol-java](https://github.com/WhisperSystems/libsignal-protocol-java).","bugs":{"url":"https://github.com/forstalabs/libsignal-node/issues"},"homepage":"https://github.com/forstalabs/libsignal-node#readme","_id":"libsignal@1.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.6.0","_npmUser":{"name":"mayfield","email":"tooker@gmail.com"},"dist":{"shasum":"b2d0379e3b343096858f9555ac112ebfd980f3f1","size":643116,"noattachment":false,"key":"/libsignal/-/libsignal-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/libsignal/download/libsignal-1.0.0.tgz"},"maintainers":[{"name":"mayfield","email":""},{"name":"purpshell","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libsignal-1.0.0.tgz_1508098265637_0.5537178879603744"},"directories":{},"publish_time":1508098265903,"_hasShrinkwrap":false,"_cnpm_publish_time":1508098265903,"_cnpmcore_publish_time":"2021-12-16T16:10:47.024Z"}},"readme":"libsignal-node\n========\nSignal protocol implementation for Node.js based on\n[libsignal-protocol-javascript](https://github.com/WhisperSystems/libsignal-protocol-javascript).\n\n[![npm](https://img.shields.io/npm/v/libsignal.svg)](https://www.npmjs.com/package/libsignal)\n[![npm](https://img.shields.io/npm/l/libsignal.svg)](https://github.com/ForstaLabs/libsignal-node)\n\n\nOverview\n--------\nA ratcheting forward secrecy protocol that works in synchronous and\nasynchronous messaging environments.\n\n\nPreKeys\n--------\nThis protocol uses a concept called 'PreKeys'. A PreKey is an ECPublicKey and\nan associated unique ID which are stored together by a server. PreKeys can also\nbe signed.\n\nAt install time, clients generate a single signed PreKey, as well as a large\nlist of unsigned PreKeys, and transmit all of them to the server.\n\n\nSessions\n--------\nSignal Protocol is session-oriented. Clients establish a \"session,\" which is\nthen used for all subsequent encrypt/decrypt operations. There is no need to\never tear down a session once one has been established.\n\nSessions are established in one of two ways:\n\n1. PreKeyBundles. A client that wishes to send a message to a recipient can\n   establish a session by retrieving a PreKeyBundle for that recipient from the\n   server.\n2. PreKeySignalMessages. A client can receive a PreKeySignalMessage from a\n   recipient and use it to establish a session.\n\n\nState\n--------\nAn established session encapsulates a lot of state between two clients. That\nstate is maintained in durable records which need to be kept for the life of\nthe session.\n\nState is kept in the following places:\n\n* Identity State. Clients will need to maintain the state of their own identity\n  key pair, as well as identity keys received from other clients.\n* PreKey State. Clients will need to maintain the state of their generated\n  PreKeys.\n* Signed PreKey States. Clients will need to maintain the state of their signed\n  PreKeys.\n* Session State. Clients will need to maintain the state of the sessions they\n  have established.\n\n\nLicense\n--------\nLicensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html\n\n* Copyright 2015-2016 Open Whisper Systems\n* Copyright 2017-2018 Forsta Inc\n","_attachments":{},"homepage":"https://github.com/ForstaLabs/libsignal-node#readme","bugs":{"url":"https://github.com/ForstaLabs/libsignal-node/issues"},"license":"GPL-3.0"}