send (Net::SSH::Transport::OutgoingPacketStream)

    # File lib/net/ssh/transport/packet-stream.rb, line 85
            def send( payload )
              @mutex.synchronize do
                # force the payload into a string
                payload = @compressor.compress( payload.to_s )

                # the length of the packet, minus the padding
                actual_length = 4 + payload.length + 1

                # compute the padding length
                padding_length = @cipher.block_size -
                  ( actual_length % @cipher.block_size )
                padding_length += @cipher.block_size if padding_length < 4

                # compute the packet length (sans the length field itself)
                packet_length = payload.length + padding_length + 1

                if packet_length < 16
                  padding_length += @cipher.block_size
                  packet_length = payload.length + padding_length + 1
                end

                padding = Array.new( padding_length ) { rand(256) }.pack("C*")

                unencrypted_data = [ packet_length, padding_length, payload,
                  padding ].pack( "NCA*A*" )
                mac = compute_hmac( unencrypted_data )

                encrypted_data = @cipher.update( unencrypted_data ) << @cipher.final
                message = encrypted_data + mac
                @socket.send message, 0

                increment_sequence_number
              end
            end