{"_id":"@atex-ovi/libsignal-node","_rev":"5-5d7b996cc3948c8736a167b91794652e","name":"@atex-ovi/libsignal-node","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@atex-ovi/libsignal-node","version":"1.0.0","keywords":["signal","whispersystems","crypto","libsignal","baileys"],"license":"GPL-3.0","_id":"@atex-ovi/libsignal-node@1.0.0","maintainers":[{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"}],"homepage":"https://github.com/atex-ovi/atexovi-libsignal-node#readme","bugs":{"url":"https://github.com/atex-ovi/atexovi-libsignal-node/issues"},"dist":{"shasum":"5170e3ffc99f6fc0b9bb81f0f1240c62392bf8cb","tarball":"https://registry.npmjs.org/@atex-ovi/libsignal-node/-/libsignal-node-1.0.0.tgz","fileCount":19,"integrity":"sha512-/kNfj/mqVSlJ7jIw2PzgkjdX5zPJ6iRchhZKCwTwQ/6uqYtPAVGIscM7sTL3N6uUfgjvD10EjkLyu7zhzIUvag==","signatures":[{"sig":"MEQCIF0HGd/ajJ8bzFi7kGtn0YnVupX/oFRFbCmUFcTtPA/iAiBQ62E8j40Mg3CYKVrYncrU4N+LcRwhDdGQ/LKKS06ICQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127374},"main":"index.js","_npmUser":{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"},"repository":{"url":"git+https://github.com/atex-ovi/atexovi-libsignal-node.git","type":"git"},"_npmVersion":"11.6.0","description":"Forked libsignal-node for custom Baileys projects","directories":{},"_nodeVersion":"24.9.0","dependencies":{"protobufjs":"6.8.8","curve25519-js":"^0.0.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/libsignal-node_1.0.0_1761390004275_0.12489622835018888","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@atex-ovi/libsignal-node","version":"1.1.0","keywords":["signal","whispersystems","crypto","libsignal","baileys"],"license":"GPL-3.0","_id":"@atex-ovi/libsignal-node@1.1.0","maintainers":[{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"}],"dist":{"shasum":"92e86b93f24505d64492cb6ee85c686612c1f1ba","tarball":"https://registry.npmjs.org/@atex-ovi/libsignal-node/-/libsignal-node-1.1.0.tgz","fileCount":19,"integrity":"sha512-Tv27cK6tebv/Jtx4FR+h1M3gcekc/47bupv4ogrDrXX9lDuIJ9OnR+JwIYSwg6XPLdhAbDcrRZzoTsc56NF+aA==","signatures":[{"sig":"MEYCIQCcxI64XZGFg9O6urfl3A1p0oEwMsTY7UR7X+sZF3yxZgIhAK0Fn0KOtasvbeQ0Rw6xzLMdP/BHbCmiFM3vBcqB3jWt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127216},"main":"index.js","_npmUser":{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"},"_npmVersion":"11.6.0","description":"Forked libsignal-node for custom Baileys projects","directories":{},"_nodeVersion":"24.9.0","dependencies":{"protobufjs":"6.8.8","curve25519-js":"^0.0.4"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/libsignal-node_1.1.0_1761405280297_0.490366952428259","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@atex-ovi/libsignal-node","version":"2.0.0","keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","_id":"@atex-ovi/libsignal-node@2.0.0","maintainers":[{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"}],"dist":{"shasum":"bd7c2d39c54e13ae8a290e960014cb86e0178bb9","tarball":"https://registry.npmjs.org/@atex-ovi/libsignal-node/-/libsignal-node-2.0.0.tgz","fileCount":99,"integrity":"sha512-urMVbgPM4TP+su6VZCRxUkzmqnHjcdy+z7w5c+njdIWxsk2xVaKQSXJkHECDIKDkh2DJrWC4yxdZ8T9Ezk+J/A==","signatures":[{"sig":"MEUCIQDY5hamFocirEXjqNpeIYLXxazpLZVEEbcMzm+/BV8enQIgUMrS64LS66qzurcvAUakmSTZCKTpBd5IEaYQHNDZ1BQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703060},"_npmUser":{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"},"_npmVersion":"11.6.0","description":"Open Whisper Systems' libsignal for Node.js","directories":{},"_nodeVersion":"24.9.0","dependencies":{"protobufjs":"6.8.8"},"_hasShrinkwrap":false,"devDependencies":{"grunt":"1.0.4","eslint":"6.0.1","grunt-cli":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/libsignal-node_2.0.0_1761903852761_0.4572323491211254","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@atex-ovi/libsignal-node","version":"2.0.1","keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","_id":"@atex-ovi/libsignal-node@2.0.1","maintainers":[{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"}],"dist":{"shasum":"cdcc3939382ddf03383e54004cea14ba79e6d8ba","tarball":"https://registry.npmjs.org/@atex-ovi/libsignal-node/-/libsignal-node-2.0.1.tgz","fileCount":99,"integrity":"sha512-3ruSQbV8PG6fUNJc2WAOYwunsFPQ41DNiZxhk5VMWeuhJ2r4t+qrys2FVq3yU7+zs0Eo1wKm/3bcPhTHSWYIbQ==","signatures":[{"sig":"MEQCIE5GlDZTOmX05z6EiXD9YBc5Bi8PwIbJ4OnsQbkjgWEHAiAXogN+OmcCU5hO0uapcbwzI6v+vYrUuHyc1Vop3PSbYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703060},"_npmUser":{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"},"_npmVersion":"11.6.0","description":"Open Whisper Systems' libsignal for Node.js","directories":{},"_nodeVersion":"24.9.0","dependencies":{"protobufjs":"6.8.8"},"_hasShrinkwrap":false,"devDependencies":{"grunt":"1.0.4","eslint":"6.0.1","grunt-cli":"1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/libsignal-node_2.0.1_1761906555212_0.17159057002930078","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@atex-ovi/libsignal-node","version":"3.0.0","description":"Open Whisper Systems' libsignal for Node.js","keywords":["signal","whispersystems","crypto"],"license":"GPL-3.0","dependencies":{"protobufjs":"7.5.4"},"devDependencies":{"eslint":"9.39.0","grunt":"1.6.1","grunt-cli":"1.5.0"},"_id":"@atex-ovi/libsignal-node@3.0.0","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-aCtMnfj8rsXazr/4335c3OTyKOJpF5T+AhwPZZkpIYLUeMYzVpAref/oBvAoyMBjZ+uKbrXayRJTiWm9NCvQBw==","shasum":"cb9466351f5afa01d9f5c027c42487ca12ff78fb","tarball":"https://registry.npmjs.org/@atex-ovi/libsignal-node/-/libsignal-node-3.0.0.tgz","fileCount":99,"unpackedSize":703089,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDi9yWns1mJ5jqXrjx3tezb9a+mUpSI+iSXzVUL2xlRUwIhAP5b6Ha3gfdPnFnq/qi3p6kLj34XA/9fQ7UMbYj569Uf"}]},"_npmUser":{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"},"directories":{},"maintainers":[{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/libsignal-node_3.0.0_1762167165705_0.5232211642868374"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-25T11:00:04.203Z","modified":"2025-11-03T10:52:46.118Z","1.0.0":"2025-10-25T11:00:04.543Z","1.1.0":"2025-10-25T15:14:40.476Z","2.0.0":"2025-10-31T09:44:12.977Z","2.0.1":"2025-10-31T10:29:15.391Z","3.0.0":"2025-11-03T10:52:45.934Z"},"license":"GPL-3.0","keywords":["signal","whispersystems","crypto"],"description":"Open Whisper Systems' libsignal for Node.js","maintainers":[{"name":"atex-ovi","email":"zhangdingliliang@gmail.com"}],"readme":"# libsignal-node (Atex Ovi Version)\n\nSignal protocol implementation for Node.js based on  \n[libsignal-protocol-javascript](https://github.com/WhisperSystems/libsignal-protocol-javascript).\n\n![npm version](https://img.shields.io/npm/v/@atex-ovi/libsignal-node.svg)\n![npm license](https://img.shields.io/npm/l/@atex-ovi/libsignal-node.svg)\n\n## Overview\n\nA ratcheting forward secrecy protocol that works in synchronous and asynchronous messaging environments.\n\n## PreKeys\n\nThis protocol uses a concept called 'PreKeys'. A PreKey is an ECPublicKey and an associated unique ID which are stored together by a server. PreKeys can also be signed.\n\nAt install time, clients generate a single signed PreKey, as well as a large list of unsigned PreKeys, and transmit all of them to the server.\n\n## Sessions\n\nSignal Protocol is session-oriented. Clients establish a \"session,\" which is then used for all subsequent encrypt/decrypt operations. There is no need to ever 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 establish a session by retrieving a PreKeyBundle for that recipient from the server.  \n2. PreKeySignalMessages – A client can receive a PreKeySignalMessage from a recipient and use it to establish a session.\n\n## State\n\nAn established session encapsulates a lot of state between two clients. That state is maintained in durable records which need to be kept for the life of the session.\n\nState is kept in the following places:\n\n* **Identity State** – Clients will need to maintain the state of their own identity key pair, as well as identity keys received from other clients.  \n* **PreKey State** – Clients will need to maintain the state of their generated PreKeys.  \n* **Signed PreKey States** – Clients will need to maintain the state of their signed PreKeys.  \n* **Session State** – Clients will need to maintain the state of the sessions they have established.\n\n## License\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* Modified 2025 by Atex Ovi\n\n---","readmeFilename":"README.md"}