get (Net::SSH::Transport::IncomingPacketStream)

    # File lib/net/ssh/transport/packet-stream.rb, line 146
            def get
              @mutex.synchronize do
                # get the first block of data
                if @log.debug?
                  @log.debug "reading #{@cipher.block_size} bytes from socket..."
                end

                data = read( @cipher.block_size )

                # decipher it
                reader = @buffers.reader( @cipher.update( data ) )

                # determine the packet length and how many bytes remain to be read
                packet_length = reader.read_long
                remaining_to_read = packet_length + 4 - @cipher.block_size
                if @log.debug?
                  @log.debug "packet length(#{packet_length}) " +
                    "remaining(#{remaining_to_read})"
                end

                # read the remainder of the packet and decrypt it.
                data = read( remaining_to_read )

                # get the hmac from the tail of the packet (if one exists), and
                # then validate it.
                hmac = @hmac.mac_length > 0 ? read( @hmac.mac_length ) : ""

                reader.append @cipher.update( data ) unless data.empty?
                reader.append @cipher.final

                padding_length = reader.read_byte

                payload = reader.read( packet_length - padding_length - 1 )
                padding = reader.read( padding_length ) if padding_length > 0

                my_computed_hmac = compute_hmac( reader.content )
                raise Net::SSH::Exception, "corrupted mac detected" if hmac != my_computed_hmac

                # decompress the payload
                payload = @decompressor.decompress( payload )

                increment_sequence_number

                buffer = @buffers.reader( payload )
                @log.debug "received: #{buffer.content.inspect}" if @log.debug?

                return buffer
              end
            end