Fix linting issues'

This commit is contained in:
Stuckinaboot 2019-05-01 13:54:19 -04:00
parent e555f17a7b
commit 4333c2d061
10 changed files with 31 additions and 31 deletions

View File

@ -2,6 +2,7 @@ import asyncio
import multiaddr import multiaddr
from Crypto.PublicKey import RSA from Crypto.PublicKey import RSA
from libp2p.security.insecure_security import InsecureTransport
from .peer.peerstore import PeerStore from .peer.peerstore import PeerStore
from .peer.id import id_from_public_key from .peer.id import id_from_public_key
from .network.swarm import Swarm from .network.swarm import Swarm
@ -10,7 +11,6 @@ from .kademlia.routed_host import RoutedHost
from .transport.upgrader import TransportUpgrader from .transport.upgrader import TransportUpgrader
from .transport.tcp.tcp import TCP from .transport.tcp.tcp import TCP
from .kademlia.network import KademliaServer from .kademlia.network import KademliaServer
from libp2p.security.insecure_security import InsecureTransport
async def cleanup_done_tasks(): async def cleanup_done_tasks():

View File

@ -1,7 +1,5 @@
import asyncio
from .raw_connection_interface import IRawConnection from .raw_connection_interface import IRawConnection
class RawConnection(IRawConnection): class RawConnection(IRawConnection):
def __init__(self, ip, port, reader, writer, initiator): def __init__(self, ip, port, reader, writer, initiator):

View File

@ -147,7 +147,7 @@ class Swarm(INetwork):
# to appropriate stream handler (using multiaddr) # to appropriate stream handler (using multiaddr)
raw_conn = RawConnection(multiaddr.value_for_protocol('ip4'), raw_conn = RawConnection(multiaddr.value_for_protocol('ip4'),
multiaddr.value_for_protocol('tcp'), reader, writer, False) multiaddr.value_for_protocol('tcp'), reader, writer, False)
# Per, https://discuss.libp2p.io/t/multistream-security/130, we first secure # Per, https://discuss.libp2p.io/t/multistream-security/130, we first secure
# the conn and then mux the conn # the conn and then mux the conn
secured_conn = await self.upgrader.upgrade_security(raw_conn, peer_id, False) secured_conn = await self.upgrader.upgrade_security(raw_conn, peer_id, False)

View File

@ -5,7 +5,7 @@ class InsecureTransport(ISecureTransport):
def __init__(self, transport_id): def __init__(self, transport_id):
self.transport_id = transport_id self.transport_id = transport_id
async def secure_inbound(self, conn): async def secure_inbound(self, conn):
""" """
Secure the connection, either locally or by communicating with opposing node via conn, Secure the connection, either locally or by communicating with opposing node via conn,

View File

@ -1,5 +1,7 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
# pylint: disable=W0105
""" """
Represents a secured connection object, which includes a connection and details about the security Represents a secured connection object, which includes a connection and details about the security
involved in the secured connection involved in the secured connection
@ -19,4 +21,3 @@ class ISecureConn(ABC):
""" """
:return: map containing details about the connections security :return: map containing details about the connections security
""" """

View File

@ -1,9 +1,9 @@
import asyncio
from abc import ABC, abstractmethod from abc import ABC, abstractmethod
# pylint: disable=W0105
""" """
Transport that is used to secure a connection. This transport is Transport that is used to secure a connection. This transport is
chosen by a security transport multistream module. chosen by a security transport multistream module.
Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interface.go Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interface.go

View File

@ -1,9 +1,9 @@
import asyncio from abc import ABC
from abc import ABC, abstractmethod
from libp2p.protocol_muxer.multiselect_client import MultiselectClient from libp2p.protocol_muxer.multiselect_client import MultiselectClient
from libp2p.protocol_muxer.multiselect import Multiselect from libp2p.protocol_muxer.multiselect import Multiselect
# pylint: disable=W0105
""" """
Represents a secured connection object, which includes a connection and details about the security Represents a secured connection object, which includes a connection and details about the security
involved in the secured connection involved in the secured connection
@ -13,7 +13,7 @@ Relevant go repo: https://github.com/libp2p/go-conn-security/blob/master/interfa
class SecurityMultistream(ABC): class SecurityMultistream(ABC):
def __init__(self): def __init__(self):
# Map protocol to secure transport # Map protocol to secure transport
self.transports = {} self.transports = {}
# Create multiselect # Create multiselect
@ -31,7 +31,7 @@ class SecurityMultistream(ABC):
# we only care about selecting the protocol, not any handler function # we only care about selecting the protocol, not any handler function
self.multiselect.add_handler(protocol, None) self.multiselect.add_handler(protocol, None)
async def secure_inbound(self, conn): async def secure_inbound(self, conn):
""" """
Secure the connection, either locally or by communicating with opposing node via conn, Secure the connection, either locally or by communicating with opposing node via conn,
@ -66,19 +66,21 @@ class SecurityMultistream(ABC):
async def select_transport(self, conn, initiator): async def select_transport(self, conn, initiator):
""" """
Select a transport that both us and the node on the Select a transport that both us and the node on the
other end of conn support and agree on other end of conn support and agree on
:param conn: conn to choose a transport over :param conn: conn to choose a transport over
:param initiator: true if we are the initiator, false otherwise :param initiator: true if we are the initiator, false otherwise
:return: selected secure transport :return: selected secure transport
""" """
# TODO: Is conn acceptable to multiselect/multiselect_client instead of stream? In go repo, # TODO: Is conn acceptable to multiselect/multiselect_client
# they pass in a raw conn (https://raw.githubusercontent.com/libp2p/go-conn-security-multistream/master/ssms.go) # instead of stream? In go repo, they pass in a raw conn
# (https://raw.githubusercontent.com/libp2p/go-conn-security-multistream/master/ssms.go)
protocol = None protocol = None
if initiator: if initiator:
# Select protocol if initiator # Select protocol if initiator
protocol = await self.multiselect_client.select_one_of(list(self.transports.keys()), conn) protocol = \
await self.multiselect_client.select_one_of(list(self.transports.keys()), conn)
else: else:
# Select protocol if non-initiator # Select protocol if non-initiator
protocol, _ = await self.multiselect.negotiate(conn) protocol, _ = await self.multiselect.negotiate(conn)

View File

@ -25,8 +25,8 @@ class TransportUpgrader:
""" """
if initiator: if initiator:
return await self.security_multistream.secure_outbound(raw_conn, peer_id) return await self.security_multistream.secure_outbound(raw_conn, peer_id)
else:
return await self.security_multistream.secure_inbound(raw_conn) return await self.security_multistream.secure_inbound(raw_conn)
def upgrade_connection(self, conn, generic_protocol_handler, peer_id): def upgrade_connection(self, conn, generic_protocol_handler, peer_id):
""" """

View File

@ -6,7 +6,7 @@ class SimpleSecurityTransport(ISecureTransport):
def __init__(self, key_phrase): def __init__(self, key_phrase):
self.key_phrase = key_phrase self.key_phrase = key_phrase
async def secure_inbound(self, conn): async def secure_inbound(self, conn):
""" """
Secure the connection, either locally or by communicating with opposing node via conn, Secure the connection, either locally or by communicating with opposing node via conn,

View File

@ -4,9 +4,8 @@ import pytest
from libp2p import new_node from libp2p import new_node
from libp2p.peer.peerinfo import info_from_p2p_addr from libp2p.peer.peerinfo import info_from_p2p_addr
from tests.utils import cleanup, set_up_nodes_by_transport_opt from libp2p.security.insecure_security import InsecureTransport
from libp2p.security.security_multistream import SecurityMultistream from tests.utils import cleanup
from libp2p.security.insecure_security import InsecureConn, InsecureTransport
from simple_security import SimpleSecurityTransport from simple_security import SimpleSecurityTransport
# TODO: Add tests for multiple streams being opened on different # TODO: Add tests for multiple streams being opened on different
@ -25,8 +24,9 @@ async def connect(node1, node2):
info = info_from_p2p_addr(addr) info = info_from_p2p_addr(addr)
await node1.connect(info) await node1.connect(info)
async def perform_simple_test(assertion_func, transports_for_initiator, transports_for_noninitiator): async def perform_simple_test(assertion_func, \
transports_for_initiator, transports_for_noninitiator):
# Create libp2p nodes and connect them, then secure the connection, then check # Create libp2p nodes and connect them, then secure the connection, then check
# the proper security was chosen # the proper security was chosen
# TODO: implement -- note we need to introduce the notion of communicating over a raw connection # TODO: implement -- note we need to introduce the notion of communicating over a raw connection
@ -43,9 +43,9 @@ async def perform_simple_test(assertion_func, transports_for_initiator, transpor
await connect(node1, node2) await connect(node1, node2)
# Wait a very short period to allow conns to be stored (since the functions # Wait a very short period to allow conns to be stored (since the functions
# storing the conns are async, they may happen at slightly different times # storing the conns are async, they may happen at slightly different times
# on each node) # on each node)
await asyncio.sleep(0.1) await asyncio.sleep(0.1)
# Get conns # Get conns
@ -84,7 +84,7 @@ async def test_single_simple_test_security_transport_succeeds():
@pytest.mark.asyncio @pytest.mark.asyncio
async def test_two_simple_test_security_transport_for_initiator_succeeds(): async def test_two_simple_test_security_transport_for_initiator_succeeds():
transports_for_initiator = {"tacos": SimpleSecurityTransport("tacos"), transports_for_initiator = {"tacos": SimpleSecurityTransport("tacos"),
"shleep": SimpleSecurityTransport("shleep")} "shleep": SimpleSecurityTransport("shleep")}
transports_for_noninitiator = {"shleep": SimpleSecurityTransport("shleep")} transports_for_noninitiator = {"shleep": SimpleSecurityTransport("shleep")}
@ -93,4 +93,3 @@ async def test_two_simple_test_security_transport_for_initiator_succeeds():
await perform_simple_test(assertion_func, await perform_simple_test(assertion_func,
transports_for_initiator, transports_for_noninitiator) transports_for_initiator, transports_for_noninitiator)