{"_id":"@achingbrain/libp2p-noise","_rev":"4654003","name":"@achingbrain/libp2p-noise","description":"![npm](https://img.shields.io/npm/v/libp2p-noise) [![CI](https://github.com/ChainSafe/js-libp2p-noise/actions/workflows/ci.yml/badge.svg?branch=master&event=push)](https://github.com/ChainSafe/js-libp2p-noise/actions/workflows/ci.yml)","dist-tags":{"latest":"5.0.0"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"time":{"modified":"2026-04-10T20:58:25.000Z","created":"2020-08-12T14:50:20.523Z","5.0.0":"2021-12-03T07:20:55.413Z","1.1.2":"2020-08-12T14:50:20.523Z"},"users":{},"author":{"name":"ChainSafe","email":"info@chainsafe.io"},"repository":{"type":"git","url":"git+https://github.com/ChainSafe/js-libp2p-noise.git"},"versions":{"5.0.0":{"name":"@achingbrain/libp2p-noise","version":"5.0.0","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+https://github.com/ChainSafe/js-libp2p-noise.git"},"author":{"name":"ChainSafe","email":"info@chainsafe.io"},"license":"MIT","keywords":["libp2p","noise","crypto"],"scripts":{"bench":"node benchmarks/benchmark.js","clean":"rm -rf dist","check":"aegir dep-check && aegir ts -p check","build":"aegir build","lint":"aegir lint","lint:fix":"aegir lint --fix","pretest":"yarn run check","test":"aegir test","test:node":"aegir test -t node","test:browser":"aegir test -t browser","docs":"aegir docs","proto:gen":"pbjs -t static-module -r libp2p-noise -o ./src/proto/payload.js ./src/proto/payload.proto && pbts -o ./src/proto/payload.d.ts ./src/proto/payload.js && yarn run lint --fix"},"browser":{"util":false},"devDependencies":{"@types/bl":"^5.0.2","aegir":"^33.1.0","benchmark":"^2.1.4","buffer":"^6.0.3","chai":"^4.3.4","events":"^3.3.0","libp2p-crypto":"^0.21.0","microtime":"^3.0.0","mocha":"^9.0.2","sinon":"^11.1.1"},"dependencies":{"@stablelib/chacha20poly1305":"^1.0.1","@stablelib/hkdf":"^1.0.1","@stablelib/sha256":"^1.0.1","@stablelib/x25519":"^1.0.1","debug":"^4.3.1","it-buffer":"^0.1.3","it-length-prefixed":"^5.0.3","it-pair":"^1.0.0","it-pb-rpc":"^0.1.11","it-pipe":"^1.1.0","peer-id":"^0.16.0","protobufjs":"^6.11.2","uint8arrays":"^3.0.0"},"resolutions":{"bn.js":"4.4.0"},"eslintConfig":{"extends":"ipfs","rules":{"@typescript-eslint/no-unused-vars":"error","@typescript-eslint/explicit-function-return-type":"warn","@typescript-eslint/strict-boolean-expressions":"off"},"ignorePatterns":["src/proto/payload.js","test/fixtures/node-globals.js"]},"gitHead":"3c3c4142aeff974fbc7eaa49d8a2c6a01b261fb7","description":"![npm](https://img.shields.io/npm/v/libp2p-noise) [![CI](https://github.com/ChainSafe/js-libp2p-noise/actions/workflows/ci.yml/badge.svg?branch=master&event=push)](https://github.com/ChainSafe/js-libp2p-noise/actions/workflows/ci.yml)","bugs":{"url":"https://github.com/ChainSafe/js-libp2p-noise/issues"},"homepage":"https://github.com/ChainSafe/js-libp2p-noise#readme","_id":"@achingbrain/libp2p-noise@5.0.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"shasum":"0e0c6f047fac66b4954e6f7d844bbd2745b0c1b6","size":152469,"noattachment":false,"key":"/@achingbrain/libp2p-noise/-/@achingbrain/libp2p-noise-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/libp2p-noise/download/@achingbrain/libp2p-noise-5.0.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-noise_5.0.0_1638516055185_0.10173857648510976"},"_hasShrinkwrap":false,"publish_time":1638516055413,"_cnpm_publish_time":1638516055413,"_cnpmcore_publish_time":"2021-12-17T10:59:55.401Z"},"1.1.2":{"name":"@achingbrain/libp2p-noise","version":"1.1.2","main":"dist/src/index.js","types":"dist/src/index.d.ts","repository":{"type":"git","url":"git+https://github.com/NodeFactoryIo/js-libp2p-noise.git"},"author":{"name":"NodeFactory","email":"info@nodefactory.io"},"license":"MIT","keywords":["libp2p","noise","crypto"],"scripts":{"build":"aegir build --ts","lint":"aegir lint --ts","lint:fix":"aegir lint --ts --fix","test":"aegir test --ts --node true","test:node":"aegir test -t node --ts","test:browser":"aegir test -t browser --node true --ts","proto:gen":"pbjs -t static-module -o ./src/proto/payload.js ./src/proto/payload.proto && pbts -o ./src/proto/payload.d.ts ./src/proto/payload.js && yarn run lint --fix"},"devDependencies":{"@types/bl":"^2.1.0","@types/chai":"^4.2.4","@types/mocha":"^5.2.7","aegir":"25.0.0","chai":"^4.2.0","karma-mocha-webworker":"^1.3.0","mocha":"^6.2.2","sinon":"^8.1.0"},"dependencies":{"bcrypto":"^5.2.0","buffer":"^5.4.3","debug":"^4.1.1","it-buffer":"^0.1.1","it-length-prefixed":"^3.0.0","it-pair":"^1.0.0","it-pb-rpc":"^0.1.8","it-pipe":"^1.1.0","libp2p-crypto":"^0.18.0","peer-id":"^0.14.0","protobufjs":"^6.10.1","uint8arrays":"^1.1.0"},"resolutions":{"bn.js":"4.4.0"},"eslintConfig":{"extends":"./node_modules/aegir/src/config/eslintrc-ts.js","rules":{"@typescript-eslint/no-unused-vars":"error"},"ignorePatterns":["src/proto/payload.js"]},"gitHead":"a6c6dc5ef05eec6397768f0c4d8d5b4c6721e852","description":"![npm](https://img.shields.io/npm/v/libp2p-noise) [![Build Status](https://travis-ci.com/NodeFactoryIo/js-libp2p-noise.svg?branch=master)](https://travis-ci.com/NodeFactoryIo/js-libp2p-noise)","bugs":{"url":"https://github.com/NodeFactoryIo/js-libp2p-noise/issues"},"homepage":"https://github.com/NodeFactoryIo/js-libp2p-noise#readme","_id":"@achingbrain/libp2p-noise@1.1.2","_nodeVersion":"12.16.1","_npmVersion":"6.14.1","dist":{"shasum":"ad10d690604390824753841a4b5cba59eafda073","size":257682,"noattachment":false,"key":"/@achingbrain/libp2p-noise/-/@achingbrain/libp2p-noise-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/libp2p-noise/download/@achingbrain/libp2p-noise-1.1.2.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/libp2p-noise_1.1.2_1597243820352_0.22245862733826516"},"_hasShrinkwrap":false,"publish_time":1597243820523,"_cnpm_publish_time":1597243820523,"_cnpmcore_publish_time":"2021-12-17T10:59:56.028Z"}},"readme":"# js-libp2p-noise\n\n![npm](https://img.shields.io/npm/v/libp2p-noise)\n[![CI](https://github.com/ChainSafe/js-libp2p-noise/actions/workflows/ci.yml/badge.svg?branch=master&event=push)](https://github.com/ChainSafe/js-libp2p-noise/actions/workflows/ci.yml)\n\n[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](https://libp2p.io/)\n![](https://img.shields.io/github/issues-raw/ChainSafe/js-libp2p-noise)\n![](https://img.shields.io/github/license/ChainSafe/js-libp2p-noise)\n![](https://img.shields.io/badge/yarn-%3E%3D1.17.0-orange.svg?style=flat-square)\n![](https://img.shields.io/badge/Node.js-%3E%3D10.19.0-orange.svg?style=flat-square)\n![](https://img.shields.io/badge/browsers-last%202%20versions%2C%20not%20ie%20%3C%3D11-orange)\n[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io)\n\n> Noise libp2p handshake for js-libp2p\n\nThis repository contains TypeScript implementation of noise protocol, an encryption protocol used in libp2p.\n\n##### Warning: Even though this package works in browser, it will bundle around 600Kb (200Kb gzipped) of code\nhttps://bundlephobia.com/result?p=@chainsafe/libp2p-noise@latest\n\n## Usage\n\nInstall with `yarn add @chainsafe/libp2p-noise` or `npm i @chainsafe/libp2p-noise`.\n\nExample of using default noise configuration and passing it to the libp2p config:\n\n```js\nimport {NOISE, Noise} from \"@chainsafe/libp2p-noise\"\n\n\n//custom noise configuration, pass it instead of NOISE instance\nconst noise = new Noise(privateKey, Buffer.alloc(x));\n\nconst libp2p = new Libp2p({\n   modules: {\n     connEncryption: [NOISE],\n   },\n});\n```\n\nWhere parameters for Noise constructor are:\n - *static Noise key* - (optional) existing private Noise static key\n - *early data* - (optional) an early data payload to be sent in handshake messages\n \n\n\n## API\n\nThis module exposes a crypto interface, as defined in the repository [js-interfaces](https://github.com/libp2p/js-interfaces).\n\n[» API Docs](https://github.com/libp2p/js-interfaces/tree/master/src/crypto#api)\n\n\n## Contribute\n\nFeel free to join in. All welcome. Open an issue!\n\n[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md)\n\n## License\n\n[MIT](LICENSE)\n","_attachments":{},"homepage":"https://github.com/ChainSafe/js-libp2p-noise#readme","bugs":{"url":"https://github.com/ChainSafe/js-libp2p-noise/issues"},"license":"MIT"}