Abstract:
Methods and systems for allowing customer or third party testing of secure programmable code are disclosed and may include verifying code loaded in a set-top box utilizing a test hash or a production hash prior to execution of the code, where the test hash and production hash may be stored in a memory, such as an OTP, within the set-top box, and may allow migration from corresponding test code to production code, which may be verified utilizing the test hash and production hash, respectively. The test and production hashes may be customer specific. The migration from test code to production code may be authenticated using at least a set-top box specific password. The test hash may be stored in a first portion of a one-time programmable memory and the production hash in a remaining portion, with the first portion being less than or equal to the remaining portion.
Abstract:
A stored predefined unmodifiable bootable code set may be verified during code reprogramming of a device, and executed as a first stage of code reprogramming of the device. The predefined unmodifiable bootable code set may be stored in a locked memory such as a locked flash memory and may comprise code that enables minimal communication functionality of the device. The predefined unmodifiable bootable code set may be verified using a security algorithm, for example, a SHA-based algorithm. Information necessary for the security algorithm may be stored in a memory, for example, a one-time programmable read-only memory (OTP ROM). The stored information necessary for the security algorithm may comprise a SHA digest, a signature, and/or a key. A second stage code set may be verified and executed during the code reprogramming of the device subsequent to the verification of the stored predefined unmodifiable bootable code set.
Abstract:
Aspects of a method and system for command interface protection to achieve a secure interface are provided. A host device may encrypt a command based on a key index generated within the host device, a host device key, a command count, a random number from a slave device, at least one host control word, and a host variable value. The encrypted command may be communicated to the slave device where it may be decrypted based on the key index, the host device key decrypted from a slave device key generated by the slave device, the command count, the random number, at least one slave control word, and a slave variable value. The key index may be utilized in the host and slave devices to select a master key from a key table from which generational derivatives may be generated for command encryption and decryption respectively.
Abstract:
In one embodiment, there is presented a method for processing data. The method comprises receiving a plurality of packets, wherein each packet comprises a payload, and wherein the plurality of packets carry video data encoded in accordance with an encoding standard from a plurality of encoding standards; identifying encoding standards encoding the video data carried in the payloads of the plurality of packets; and inserting identifiers that identify the encoding standard encoding the video data carried in the payloads of the plurality of packets into the plurality of packets.
Abstract:
Presented herein are system(s) for demultiplexing, merging, and duplicating packetized elementary stream/program stream/elementary stream data. In one embodiment, there is presented a system for processing data. The system comprises a first circuit and a memory. The first circuit receives transport packets carrying the data. The memory stores data and comprises at least one context. The first circuit maps the data associated with at least one channel to the at least one context.
Abstract:
A method and system are provided for providing data commonality in a programmable transport demultiplexer engine. The method may involve utilizing a hardware assist block to process a portion of an incoming data packet, which may result in a partially processed data packet. The data packet may comprise data in any one of video formats and/or audio formats. A firmware block may then execute a plurality of instructions to process the partially processed data packet. The plurality of instructions may be independent of video and/or audio formats associated with the data packet.