libp2p.security.secio package¶
Subpackages¶
Submodules¶
libp2p.security.secio.exceptions module¶
-
exception
libp2p.security.secio.exceptions.
IncompatibleChoices
¶
-
exception
libp2p.security.secio.exceptions.
InconsistentNonce
¶
-
exception
libp2p.security.secio.exceptions.
InvalidSignatureOnExchange
¶
-
exception
libp2p.security.secio.exceptions.
PeerMismatchException
¶
-
exception
libp2p.security.secio.exceptions.
SecioException
¶
-
exception
libp2p.security.secio.exceptions.
SedesException
¶
-
exception
libp2p.security.secio.exceptions.
SelfEncryption
¶ Bases:
libp2p.security.secio.exceptions.SecioException
Raised to indicate that a host is attempting to encrypt communications with itself.
libp2p.security.secio.transport module¶
-
class
libp2p.security.secio.transport.
EncryptionParameters
¶ Bases:
object
-
cipher_type
: str = None¶
-
curve_type
: str = None¶
-
ephemeral_public_key
: PublicKey = None¶
-
hash_type
: str = None¶
-
permanent_public_key
: PublicKey = None¶
-
-
class
libp2p.security.secio.transport.
Proposal
(nonce: bytes, public_key: libp2p.crypto.keys.PublicKey, exchanges: str = 'P-256', ciphers: str = 'AES-128', hashes: str = 'SHA256')¶ Bases:
object
A
Proposal
represents the set of session parameters one peer in a pair of peers attempting to negotiate a secio channel prefers.-
calculate_peer_id
() → libp2p.peer.id.ID¶
-
ciphers
: str = 'AES-128'¶
-
classmethod
deserialize
(protobuf_bytes: bytes) → libp2p.security.secio.transport.Proposal¶
-
exchanges
: str = 'P-256'¶
-
hashes
: str = 'SHA256'¶
-
nonce
: bytes = None¶
-
public_key
: PublicKey = None¶
-
serialize
() → bytes¶
-
-
class
libp2p.security.secio.transport.
SecioMsgReadWriter
(local_encryption_parameters: libp2p.crypto.authenticated_encryption.EncryptionParameters, remote_encryption_parameters: libp2p.crypto.authenticated_encryption.EncryptionParameters, read_writer: libp2p.security.secio.transport.SecioPacketReadWriter)¶ Bases:
libp2p.io.abc.EncryptedMsgReadWriter
-
async
close
() → None¶
-
decrypt
(data: bytes) → bytes¶
-
encrypt
(data: bytes) → bytes¶
-
async
read_msg
() → bytes¶
-
read_writer
: SecioPacketReadWriter = None¶
-
async
write_msg
(msg: bytes) → None¶
-
async
-
class
libp2p.security.secio.transport.
SecioPacketReadWriter
(read_write_closer: libp2p.io.abc.ReadWriteCloser)¶ Bases:
libp2p.io.msgio.FixedSizeLenMsgReadWriter
-
size_len_bytes
: int = 4¶
-
-
class
libp2p.security.secio.transport.
SessionParameters
¶ Bases:
object
-
local_encryption_parameters
: EncryptionParameters = None¶
-
local_peer
: PeerID = None¶
-
order
: int = None¶
-
remote_encryption_parameters
: EncryptionParameters = None¶
-
remote_peer
: PeerID = None¶
-
-
class
libp2p.security.secio.transport.
Transport
(local_key_pair: libp2p.crypto.keys.KeyPair, secure_bytes_provider: Callable[[int], bytes] = <function default_secure_bytes_provider>)¶ Bases:
libp2p.security.base_transport.BaseSecureTransport
Transport
provides a security upgrader for aIRawConnection
, following the secio protocol defined in the libp2p specs.-
get_nonce
() → bytes¶
-
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)
-
-
async
libp2p.security.secio.transport.
create_secure_session
(local_nonce: bytes, local_peer: libp2p.peer.id.ID, local_private_key: libp2p.crypto.keys.PrivateKey, conn: libp2p.network.connection.raw_connection_interface.IRawConnection, remote_peer: libp2p.peer.id.ID = None) → libp2p.security.secure_conn_interface.ISecureConn¶ Attempt the initial secio handshake with the remote peer.
If successful, return an object that provides secure communication to the
remote_peer
. Raise SecioException when conn closed. Raise InconsistentNonce when handshake failed