A method comprising: pre-authenticating a receiving device by a transmitting device, wherein the receiving device receives a data stream from the transmitting device via a main data path, wherein pre-authenticating refers to authenticating the receiving device prior to switching of inputs; associating a main High-Definition Content Protection (HDCP) engine with a main port in the main data path, the main HDCP engine coupled with a roving HDCP engine including a decipher processing engine, wherein the main port includes an active port selected by a user to receive the data stream; and associating the roving HDCP engine with a plurality of roving ports (312, 314, 316) in a roving data path, wherein the roving ports include inactive ports that are pre-authenticated and stay ready to be used when one of the roving ports is called upon to replace the main port as the active port, each of the plurality of roving ports associated with a memory pipe having state information relating to the status of synchronization of each of the plurality of roving ports, the state information being used to pre-authenticate the receiving device, wherein the state information includes information relating to Mi values and internal states of the roving HDCP engine, and wherein the state information from the memory pipe is copied to the main HDCP engine to transfer the status of synchronization of the roving port that is called upon to replace the main port as the active port while the main port is designated as another roving port associated with the roving HDCP engine; performing synchronization and deciphering of the replaced main port by the main HDCP engine by using the copied state information. pre-authenticating a receiving device by a transmitting device, wherein the receiving device receives a data stream from the transmitting device via a main data path, wherein pre-authenticating refers to authenticating the receiving device prior to switching of inputs; associating a main High-Definition Content Protection (HDCP) engine with a main port in the main data path, the main HDCP engine coupled with a roving HDCP engine including a decipher processing engine, wherein the main port includes an active port selected by a user to receive the data stream; and associating the roving HDCP engine with a plurality of roving ports (312, 314, 316) in a roving data path, wherein the roving ports include inactive ports that are pre-authenticated and stay ready to be used when one of the roving ports is called upon to replace the main port as the active port, each of the plurality of roving ports associated with a memory pipe having state information relating to the status of synchronization of each of the plurality of roving ports, the state information being used to pre-authenticate the receiving device, wherein the state information includes information relating to Mi values and internal states of the roving HDCP engine, and wherein the state information from the memory pipe is copied to the main HDCP engine to transfer the status of synchronization of the roving port that is called upon to replace the main port as the active port while the main port is designated as another roving port associated with the roving HDCP engine; performing synchronization and deciphering of the replaced main port by the main HDCP engine by using the copied state information.