2019-04-28 07:42:05 +08:00
|
|
|
from abc import ABC, abstractmethod
|
2019-08-01 19:12:11 +08:00
|
|
|
|
2019-08-03 07:04:46 +08:00
|
|
|
from libp2p.peer.id import ID
|
2019-08-08 14:22:06 +08:00
|
|
|
from libp2p.network.connection.raw_connection_interface import IRawConnection
|
2019-08-01 19:12:11 +08:00
|
|
|
|
2019-05-02 01:54:19 +08:00
|
|
|
|
2019-04-28 07:42:05 +08:00
|
|
|
"""
|
|
|
|
Represents a secured connection object, which includes a connection and details about the security
|
|
|
|
involved in the secured connection
|
|
|
|
|
|
|
|
Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interface.go
|
|
|
|
"""
|
|
|
|
|
2019-08-01 06:00:12 +08:00
|
|
|
|
2019-08-03 07:04:46 +08:00
|
|
|
class AbstractSecureConn(ABC):
|
2019-04-28 07:42:05 +08:00
|
|
|
@abstractmethod
|
2019-08-03 07:04:46 +08:00
|
|
|
def get_local_peer(self) -> ID:
|
|
|
|
pass
|
2019-04-28 07:42:05 +08:00
|
|
|
|
2019-04-30 06:05:38 +08:00
|
|
|
@abstractmethod
|
2019-08-03 07:04:46 +08:00
|
|
|
def get_local_private_key(self) -> bytes:
|
|
|
|
pass
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
def get_remote_peer(self) -> ID:
|
|
|
|
pass
|
|
|
|
|
|
|
|
@abstractmethod
|
|
|
|
def get_remote_public_key(self) -> bytes:
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ISecureConn(AbstractSecureConn, IRawConnection):
|
|
|
|
pass
|