libp2p.security.noise package¶
Subpackages¶
Submodules¶
libp2p.security.noise.exceptions module¶
-
exception
libp2p.security.noise.exceptions.
HandshakeHasNotFinished
¶
-
exception
libp2p.security.noise.exceptions.
InvalidSignature
¶
-
exception
libp2p.security.noise.exceptions.
NoiseFailure
¶
-
exception
libp2p.security.noise.exceptions.
NoiseStateError
¶ Bases:
libp2p.security.noise.exceptions.NoiseFailure
Raised when anything goes wrong in the noise state in noiseprotocol package.
-
exception
libp2p.security.noise.exceptions.
PeerIDMismatchesPubkey
¶
libp2p.security.noise.io module¶
-
class
libp2p.security.noise.io.
BaseNoiseMsgReadWriter
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection, noise_state: noise.connection.NoiseConnection)¶ Bases:
libp2p.io.abc.EncryptedMsgReadWriter
The base implementation of noise message reader/writer.
encrypt and decrypt are not implemented here, which should be implemented by the subclasses.
-
async
close
() → None¶
-
noise_state
: NoiseState = None¶
-
prefix
: bytes = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'¶
-
async
read_msg
(prefix_encoded: bool = False) → bytes¶
-
read_writer
: MsgReadWriteCloser = None¶
-
async
write_msg
(data: bytes, prefix_encoded: bool = False) → None¶
-
async
-
class
libp2p.security.noise.io.
NoiseHandshakeReadWriter
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection, noise_state: noise.connection.NoiseConnection)¶ Bases:
libp2p.security.noise.io.BaseNoiseMsgReadWriter
-
decrypt
(data: bytes) → bytes¶
-
encrypt
(data: bytes) → bytes¶
-
noise_state
= None¶
-
read_writer
= None¶
-
-
class
libp2p.security.noise.io.
NoisePacketReadWriter
(read_write_closer: libp2p.io.abc.ReadWriteCloser)¶ Bases:
libp2p.io.msgio.FixedSizeLenMsgReadWriter
-
size_len_bytes
: int = 2¶
-
-
class
libp2p.security.noise.io.
NoiseTransportReadWriter
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection, noise_state: noise.connection.NoiseConnection)¶ Bases:
libp2p.security.noise.io.BaseNoiseMsgReadWriter
-
decrypt
(data: bytes) → bytes¶
-
encrypt
(data: bytes) → bytes¶
-
noise_state
= None¶
-
read_writer
= None¶
-
libp2p.security.noise.messages module¶
-
class
libp2p.security.noise.messages.
NoiseHandshakePayload
(id_pubkey: libp2p.crypto.keys.PublicKey, id_sig: bytes, early_data: bytes = None)¶ Bases:
object
-
classmethod
deserialize
(protobuf_bytes: bytes) → libp2p.security.noise.messages.NoiseHandshakePayload¶
-
early_data
: bytes = None¶
-
id_pubkey
: PublicKey = None¶
-
id_sig
: bytes = None¶
-
serialize
() → bytes¶
-
classmethod
-
libp2p.security.noise.messages.
make_data_to_be_signed
(noise_static_pubkey: libp2p.crypto.keys.PublicKey) → bytes¶
-
libp2p.security.noise.messages.
make_handshake_payload_sig
(id_privkey: libp2p.crypto.keys.PrivateKey, noise_static_pubkey: libp2p.crypto.keys.PublicKey) → bytes¶
-
libp2p.security.noise.messages.
verify_handshake_payload_sig
(payload: libp2p.security.noise.messages.NoiseHandshakePayload, noise_static_pubkey: libp2p.crypto.keys.PublicKey) → bool¶ - Verify if the signature
is composed of the data SIGNED_DATA_PREFIX`++`noise_static_pubkey and
signed by the private key corresponding to id_pubkey
libp2p.security.noise.patterns module¶
-
class
libp2p.security.noise.patterns.
BasePattern
¶ Bases:
libp2p.security.noise.patterns.IPattern
-
create_noise_state
() → noise.connection.NoiseConnection¶
-
early_data
: bytes = None¶
-
libp2p_privkey
: PrivateKey = None¶
-
local_peer
: ID = None¶
-
make_handshake_payload
() → libp2p.security.noise.messages.NoiseHandshakePayload¶
-
noise_static_key
: PrivateKey = None¶
-
protocol_name
: bytes = None¶
-
-
class
libp2p.security.noise.patterns.
IPattern
¶ Bases:
abc.ABC
-
abstract async
handshake_inbound
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection) → libp2p.security.secure_conn_interface.ISecureConn¶
-
abstract async
handshake_outbound
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection, remote_peer: libp2p.peer.id.ID) → libp2p.security.secure_conn_interface.ISecureConn¶
-
abstract async
-
class
libp2p.security.noise.patterns.
PatternXX
(local_peer: libp2p.peer.id.ID, libp2p_privkey: libp2p.crypto.keys.PrivateKey, noise_static_key: libp2p.crypto.keys.PrivateKey, early_data: bytes = None)¶ Bases:
libp2p.security.noise.patterns.BasePattern
-
early_data
= None¶
-
async
handshake_inbound
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection) → libp2p.security.secure_conn_interface.ISecureConn¶
-
async
handshake_outbound
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection, remote_peer: libp2p.peer.id.ID) → libp2p.security.secure_conn_interface.ISecureConn¶
-
libp2p_privkey
= None¶
-
local_peer
= None¶
-
noise_static_key
= None¶
-
protocol_name
= None¶
-
libp2p.security.noise.transport module¶
-
class
libp2p.security.noise.transport.
Transport
(libp2p_keypair: libp2p.crypto.keys.KeyPair, noise_privkey: libp2p.crypto.keys.PrivateKey = None, early_data: bytes = None, with_noise_pipes: bool = False)¶ Bases:
libp2p.security.secure_transport_interface.ISecureTransport
-
early_data
: bytes = None¶
-
get_pattern
() → libp2p.security.noise.patterns.IPattern¶
-
libp2p_privkey
: PrivateKey = None¶
-
local_peer
: ID = None¶
-
noise_privkey
: PrivateKey = None¶
-
async
secure_inbound
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection) → libp2p.security.secure_conn_interface.ISecureConn¶ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are not the initiator)
- Returns
secure connection object (that implements secure_conn_interface)
-
async
secure_outbound
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection, peer_id: libp2p.peer.id.ID) → libp2p.security.secure_conn_interface.ISecureConn¶ Secure the connection, either locally or by communicating with opposing node via conn, for an inbound connection (i.e. we are the initiator)
- Returns
secure connection object (that implements secure_conn_interface)
-
with_noise_pipes
: bool = None¶
-