A network controller receives encrypted data packets in the form of interleaved streams of cells, and stores the received cells in a buffer until the end of each packet is received, at which time the complete packet is decrypted, error checked, and then transmitted to a host computer. The network controller's buffer includes a data storage array in which data packets are stored as linked lists, and a packet directory having a entry for each data packet stored in the buffer. Each directory entry contains a pointer to the first and last location in the buffer where a corresponding data packet is stored, as well as status information for the data packet. When free space in the network controller's buffer falls below a specified threshold, the network controller transmits selected partial packets to the host computer without decrypting or error checking, and also stores in its packet directory entry for each transmitted partial packet a "partial transfer" status flag. Additional portions of the partial packets may be sent to the host computer with an indication of the packet to which they belong. Upon receiving the end of a data packet that was partially transferred to the host computer, the remainder of the data packet in the packet buffer is transmitted to the host computer, without decrypting or error checking the partial data packet. The host computer then transmits the complete packet through a loopback path in the network controller for decrypting and error checking.