Skip to content

ChainSafe/js-libp2p-noise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e0cce36 · Jan 21, 2025
Sep 11, 2024
Sep 11, 2024
Sep 11, 2024
Sep 11, 2024
Apr 11, 2022
Sep 11, 2024
Jun 24, 2024
Jan 21, 2025
Apr 11, 2022
Apr 11, 2022
Apr 11, 2022
Sep 11, 2024
Mar 31, 2023
Jan 21, 2025
Apr 14, 2022
Sep 11, 2024

Repository files navigation

@chainsafe/libp2p-noise

npm License Apache 2.0 License MIT Twitter Discord

Noise libp2p handshake for js-libp2p

About

This repository contains TypeScript implementation of noise protocol, an encryption protocol used in libp2p.

Usage

Install with yarn add @chainsafe/libp2p-noise or npm i @chainsafe/libp2p-noise.

Example of using default noise configuration and passing it to the libp2p config:

import {createLibp2p} from "libp2p"
import {noise} from "@chainsafe/libp2p-noise"

//custom noise configuration, pass it instead of `noise()`
//x25519 private key
const n = noise({ staticNoiseKey });

const libp2p = await createLibp2p({
  connectionEncrypters: [noise()],
  //... other options
})

See the NoiseInit interface for noise configuration options.

API

This module exposes an implementation of the ConnectionEncrypter interface.

Bring your own crypto

You can provide a custom crypto implementation (instead of the default, based on @noble) by adding a crypto field to the init argument passed to the Noise factory.

The implementation must conform to the ICryptoInterface, defined in https://github.com/ChainSafe/js-libp2p-noise/blob/master/src/crypto.ts

Install

$ npm i @chainsafe/libp2p-noise

Browser <script> tag

Loading this module through a script tag will make its exports available as ChainsafeLibp2pNoise in the global namespace.

<script src="https://unpkg.com/@chainsafe/libp2p-noise/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.