def main():
    host_address = ("127.0.0.1", 5684)
    ip = '127.0.0.1'
    port = 5684
    current_mid = random.randint(1, 1000)
    server_mid = random.randint(1000, 2000)
    server_read_timeout = 0.1

    pem = setUpPems()
    ''' Set up server side DTLS socket '''
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    sock = wrap_server(sock,
                       keyfile=pem['SERVER_KEY'],
                       certfile=pem['SERVER_KEY'],
                       ca_certs=pem['CA_CERT'])

    sock.bind(host_address)
    try:
        sock.listen(0)
    except KeyboardInterrupt:
        print("Server shutting down...")
        sock.close()
    ''' Connect CoAP server to the newly created socket '''
    server = CoAPServer(ip,
                        port,
                        starting_mid=server_mid,
                        sock=sock,
                        cb_ignore_listen_exception=cb_ignore_listen_exception)
    ''' Start the server listen routine '''
    server_thread = threading.Thread(target=server.listen,
                                     name='ServerThread',
                                     args=(server_read_timeout, ))
    server_thread.start()
Beispiel #2
0
def main():
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    serversocket.settimeout(300)
    cert_path = path.join(path.abspath(path.dirname(__file__)), "certs")
    host_address = ("212.201.8.88", 6657)

    # Create a server side DTLS socket
    dtls_sock = wrap_server(serversocket,
                            keyfile=path.join(cert_path, "keycert.pem"),
                            certfile=path.join(cert_path, "keycert.pem"),
                            ca_certs=path.join(cert_path, "ca-cert.pem"),
                            do_handshake_on_connect=True)

    dtls_sock.bind(host_address)
    dtls_sock.listen(1)
    print ("Waiting for CoAP Client to Connect ..")

    # Connect the Listening DTLS socket to CoAP
    server = CoAPServer(host_address, sock=dtls_sock)
    server.add_resource('temperature/', Temperature())
    server.add_resource('humidity/', Humidity())
    server.add_resource('pressure/', Pressure())
    print("CoAP Server start on " + host_address[0] + ":" + str(host_address[1]))
    while True:
        time.sleep(0.5)
        try:
            server.listen(1)
        except KeyboardInterrupt:
            print "Server Shutdown"
            server.close()
            print "Exiting..."
    def __init__(self, host, port):
        #print("server_key:"+pem_server_key)
        #print("ca_cert   :"+pem_server_key)
        #logger.debug("cert_chain   :"+cert_chain)
        #inicializacao do DTLS
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        #
        do_patch()
        self.sock = wrap_server(
            sock=self.sock,
            keyfile=caminho_serv_key,  #pem_server_key, 
            certfile=caminho_server_cert,  #pem_server_key)#,
            ca_certs=caminho_ca_cert,  #,
            ciphers="ECDHE+AESGCM")  #pem_server_key)

        #cert_reqs,
        #ssl_version,

        #,

        #do_handshake_on_connect,
        #suppress_ragged_eofs,
        #ciphers,
        #curves,
        #sigalgs,
        #user_mtu,
        #server_key_exchange_curve,
        #server_cert_options

        logger.debug("inicializou socket ssl")

        #self.sock.bind((host,port))
        self.sock.bind(host_address)
        self.sock.listen(0)
        logger.debug("fez o bind")

        self.server = CoAP((host, port), starting_mid=None, sock=self.sock)
        logger.debug("instanciou servidor")
        #CoAP.__init__(self, (host, port))
        self.server.add_resource('basic/', BasicResource())
        self.server.add_resource('teste', TesteResource())
        self.server.add_resource('sala/teste', TesteResource())
        self.server.add_resource('jardim/teste', TesteResource())
        logger.debug("adicionou recursos")
Beispiel #4
0
    def setUp(self):
        self.host_address = ("127.0.0.1", 5684)
        self.current_mid = random.randint(1, 1000)
        self.server_mid = random.randint(1000, 2000)
        self.server_read_timeout = 0.1

        self.pem = self._setUpPems()

        # Set up a server side DTLS socket
        _sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        _sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        _sock = wrap_server(_sock,
                            keyfile=self.pem['SERVER_KEY'],
                            certfile=self.pem['SERVER_KEY'],
                            ca_certs=self.pem['CA_CERT'])
        _sock.bind(self.host_address)
        _sock.listen(0)

        # Connect the CoAP server to the newly created socket
        self.server = CoAPServer(
            self.host_address,
            starting_mid=self.server_mid,
            sock=_sock,
            cb_ignore_listen_exception=self._cb_ignore_listen_exception)
        self.server.add_resource('storage/', Storage())

        # Test code to "pseudo" capture the udp communication between server and client on the loopback device
        try:
            from proxy import proxy_thread
            self.server_address, self.runFlag = proxy_thread(
                0, self.host_address[0], self.host_address[1])
        except ImportError:
            self.server_address = self.host_address
            self.runFlag = None

        # Start the server listen routine
        self.server_thread = threading.Thread(
            target=self.server.listen,
            name='ServerThread',
            args=(self.server_read_timeout, ))
        self.server_thread.start()
Beispiel #5
0
    def __init__(self, host, port, pemCertAndServerKeyFileName, pemCAFileName):
        self.host_address = (host, port)

        # Set up a server side DTLS socket
        _sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        _sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        #expecting Cert and Private key merged in one file
        _sock = wrap_server(_sock,
                            keyfile=pemCertAndServerKeyFileName,
                            certfile=pemCertAndServerKeyFileName,
                            ca_certs=pemCAFileName)
        _sock.bind(self.host_address)
        _sock.listen(0)

        # Connect the CoAP server to the newly created socket
        self.server = CoAPServer(self.host_address,
                                 starting_mid=None,
                                sock=_sock,
                                cb_ignore_listen_exception =  
                                self._cb_ignore_listen_exception)
        # Add resource by passing the URI and the Instance of the Resource
        self.server.add_resource('gpsflowtemp/', GpsFlowTempResource())
Beispiel #6
0
    def setUp(self):
        self.host_address = ("127.0.0.1", 5684)
        self.current_mid = random.randint(1, 1000)
        self.server_mid = random.randint(1000, 2000)
        self.server_read_timeout = 0.1

        self.pem = self._setUpPems()

        # Set up a server side DTLS socket
        _sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        _sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        _sock = wrap_server(_sock,
                            keyfile=self.pem['SERVER_KEY'],
                            certfile=self.pem['SERVER_KEY'],
                            ca_certs=self.pem['CA_CERT'])
        _sock.bind(self.host_address)
        _sock.listen(0)

        # Connect the CoAP server to the newly created socket
        self.server = CoAPServer(self.host_address,
                                 starting_mid=self.server_mid,
                                 sock=_sock,
                                 cb_ignore_listen_exception=self._cb_ignore_listen_exception)
        self.server.add_resource('storage/', Storage())

        # Test code to "pseudo" capture the udp communication between server and client on the loopback device
        try:
            from proxy import proxy_thread
            self.server_address, self.runFlag = proxy_thread(0, self.host_address[0], self.host_address[1])
        except ImportError:
            self.server_address = self.host_address
            self.runFlag = None

        # Start the server listen routine
        self.server_thread = threading.Thread(target=self.server.listen,
                                              name='ServerThread',
                                              args=(self.server_read_timeout,))
        self.server_thread.start()