Exemple #1
0
 def _send_message(self, msg):
     if not self._conn:
         raise SSHException("Agent not connected")
     msg = asbytes(msg)
     self._conn.send(struct.pack('>I', len(msg)) + msg)
     l = self._read_all(4)
     msg = Message(self._read_all(struct.unpack('>I', l)[0]))
     return ord(msg.get_byte()), msg
Exemple #2
0
 def _send_message(self, msg):
     self.xmit.acquire()
     msg = str(msg)
     self._conn.send(struct.pack('>I', len(msg)) + msg)
     l = self._read_all(4)
     msg = Message(self._read_all(struct.unpack('>I', l)[0]))
     self.xmit.release()
     return ord(msg.get_byte()), msg
Exemple #3
0
 def add_key(self, key):
     header = asbytes(cSSH_AGENTC_ADD_IDENTITY)
     body = Message()
     body.add_string("ssh-rsa")
     body.add_mpint(key.public_numbers.n)
     body.add_mpint(key.public_numbers.e)
     body.add_mpint(key.d)
     body.add_mpint(key.iqmp)
     body.add_mpint(key.p)
     body.add_mpint(key.q)
     body.add_string("")
     packet_len = len(header) + body.packet.tell()
     self._conn.send(
         struct.pack(">I", packet_len) + header + body.packet.getvalue())
     data = self._read_all(4)
     msg = Message(self._read_all(struct.unpack(">I", data)[0]))
     if ord(msg.get_byte()) != SSH_AGENT_SUCCESS:
         raise SSHException("could not add key to agent")
     return
Exemple #4
0
    def test_2_decode(self):
        msg = Message(self.__a)
        self.assertEquals(msg.get_int(), 23)
        self.assertEquals(msg.get_int(), 123789456)
        self.assertEquals(msg.get_string(), 'q')
        self.assertEquals(msg.get_string(), 'hello')
        self.assertEquals(msg.get_string(), 'x' * 1000)

        msg = Message(self.__b)
        self.assertEquals(msg.get_boolean(), True)
        self.assertEquals(msg.get_boolean(), False)
        self.assertEquals(msg.get_byte(), '\xf3')
        self.assertEquals(msg.get_bytes(2), '\x00\x3f')
        self.assertEquals(msg.get_list(), ['huey', 'dewey', 'louie'])

        msg = Message(self.__c)
        self.assertEquals(msg.get_int64(), 5)
        self.assertEquals(msg.get_int64(), 0xf5e4d3c2b109L)
        self.assertEquals(msg.get_mpint(), 17)
        self.assertEquals(msg.get_mpint(), 0xf5e4d3c2b109L)
        self.assertEquals(msg.get_mpint(), -0x65e4d3c2b109L)
Exemple #5
0
    def test_2_decode(self):
        msg = Message(self.__a)
        self.assertEqual(msg.get_int(), 23)
        self.assertEqual(msg.get_int(), 123789456)
        self.assertEqual(msg.get_text(), "q")
        self.assertEqual(msg.get_text(), "hello")
        self.assertEqual(msg.get_text(), "x" * 1000)

        msg = Message(self.__b)
        self.assertEqual(msg.get_boolean(), True)
        self.assertEqual(msg.get_boolean(), False)
        self.assertEqual(msg.get_byte(), byte_chr(0xf3))
        self.assertEqual(msg.get_bytes(2), zero_byte + byte_chr(0x3f))
        self.assertEqual(msg.get_list(), ["huey", "dewey", "louie"])

        msg = Message(self.__c)
        self.assertEqual(msg.get_int64(), 5)
        self.assertEqual(msg.get_int64(), 0xf5e4d3c2b109)
        self.assertEqual(msg.get_mpint(), 17)
        self.assertEqual(msg.get_mpint(), 0xf5e4d3c2b109)
        self.assertEqual(msg.get_mpint(), -0x65e4d3c2b109)
Exemple #6
0
    def test_decode(self):
        msg = Message(self.__a)
        self.assertEqual(msg.get_int(), 23)
        self.assertEqual(msg.get_int(), 123789456)
        self.assertEqual(msg.get_text(), 'q')
        self.assertEqual(msg.get_text(), 'hello')
        self.assertEqual(msg.get_text(), 'x' * 1000)

        msg = Message(self.__b)
        self.assertEqual(msg.get_boolean(), True)
        self.assertEqual(msg.get_boolean(), False)
        self.assertEqual(msg.get_byte(), byte_chr(0xf3))
        self.assertEqual(msg.get_bytes(2), zero_byte + byte_chr(0x3f))
        self.assertEqual(msg.get_list(), ['huey', 'dewey', 'louie'])

        msg = Message(self.__c)
        self.assertEqual(msg.get_int64(), 5)
        self.assertEqual(msg.get_int64(), 0xf5e4d3c2b109)
        self.assertEqual(msg.get_mpint(), 17)
        self.assertEqual(msg.get_mpint(), 0xf5e4d3c2b109)
        self.assertEqual(msg.get_mpint(), -0x65e4d3c2b109)
    def test_2_decode(self):
        msg = Message(self.__a)
        self.assertEqual(msg.get_int(), 23)
        self.assertEqual(msg.get_int(), 123789456)
        self.assertEqual(msg.get_text(), 'q')
        self.assertEqual(msg.get_text(), 'hello')
        self.assertEqual(msg.get_text(), 'x' * 1000)

        msg = Message(self.__b)
        self.assertEqual(msg.get_boolean(), True)
        self.assertEqual(msg.get_boolean(), False)
        self.assertEqual(msg.get_byte(), byte_chr(0xf3))
        self.assertEqual(msg.get_bytes(2), zero_byte + byte_chr(0x3f))
        self.assertEqual(msg.get_list(), ['huey', 'dewey', 'louie'])

        msg = Message(self.__c)
        self.assertEqual(msg.get_int64(), 5)
        self.assertEqual(msg.get_int64(), 0xf5e4d3c2b109)
        self.assertEqual(msg.get_mpint(), 17)
        self.assertEqual(msg.get_mpint(), 0xf5e4d3c2b109)
        self.assertEqual(msg.get_mpint(), -0x65e4d3c2b109)
Exemple #8
0
    def test_2_decode(self):
        msg = Message(self.__a)
        self.assertEquals(msg.get_int(), 23)
        self.assertEquals(msg.get_int(), 123789456)
        self.assertEquals(msg.get_string(), b'q')
        self.assertEquals(msg.get_string(), b'hello')
        self.assertEquals(msg.get_string(), b'x' * 1000)

        msg = Message(self.__b)
        self.assertEquals(msg.get_boolean(), True)
        self.assertEquals(msg.get_boolean(), False)
        self.assertEquals(msg.get_byte(), b'\xf3')
        self.assertEquals(msg.get_bytes(2), b'\x00\x3f')
        self.assertEquals(msg.get_list(), [b'huey', b'dewey', b'louie'])

        msg = Message(self.__c)
        self.assertEquals(msg.get_int64(), 5)
        self.assertEquals(msg.get_int64(), 0xf5e4d3c2b109)
        self.assertEquals(msg.get_mpint(), 17)
        self.assertEquals(msg.get_mpint(), 0xf5e4d3c2b109)
        self.assertEquals(msg.get_mpint(), -0x65e4d3c2b109)
Exemple #9
0
    def test_2_decode(self):
        msg = Message(self.__a)
        self.assertEquals(msg.get_int(), 23)
        self.assertEquals(msg.get_int(), 123789456)
        self.assertEquals(msg.get_string(), "q")
        self.assertEquals(msg.get_string(), "hello")
        self.assertEquals(msg.get_string(), "x" * 1000)

        msg = Message(self.__b)
        self.assertEquals(msg.get_boolean(), True)
        self.assertEquals(msg.get_boolean(), False)
        self.assertEquals(msg.get_byte(), "\xf3")
        self.assertEquals(msg.get_bytes(2), "\x00\x3f")
        self.assertEquals(msg.get_list(), ["huey", "dewey", "louie"])

        msg = Message(self.__c)
        self.assertEquals(msg.get_int64(), 5)
        self.assertEquals(msg.get_int64(), 0xF5E4D3C2B109L)
        self.assertEquals(msg.get_mpint(), 17)
        self.assertEquals(msg.get_mpint(), 0xF5E4D3C2B109L)
        self.assertEquals(msg.get_mpint(), -0x65E4D3C2B109L)
Exemple #10
0
 def _send_message(self, msg):
     msg = asbytes(msg)
     self._conn.send(struct.pack('>I', len(msg)) + msg)
     l = self._read_all(4)
     msg = Message(self._read_all(struct.unpack('>I', l)[0]))
     return ord(msg.get_byte()), msg
Exemple #11
0
 def _send_message(self, msg):
     msg = asbytes(msg)
     self._conn.send(struct.pack('>I', len(msg)) + msg)
     l = self._read_all(4)
     msg = Message(self._read_all(struct.unpack('>I', l)[0]))
     return ord(msg.get_byte()), msg
Exemple #12
0
 def send(self, msg):
     msg = asbytes(msg)
     self.client.send(struct.pack('>I', len(msg)) + msg)
     size = struct.unpack('>I', self.client.recv(4))[0]
     msg = Message(self.client.recv(size))
     return ord(msg.get_byte()), msg
Exemple #13
0
 def read_message(self):
     size = struct.unpack('>I', self._read(4))[0]
     msg = Message(self._read(size))
     return ord(msg.get_byte()), msg
Exemple #14
0
 def _get_message(self):
     msg_size = self._read_all(4)
     msg = Message(self._read_all(struct.unpack('>I', msg_size)[0]))
     # get message type
     return ord(msg.get_byte()), msg