Patent ID: 8438392

Claim:
A method for controlling the execution of code on an endpoint device comprising: receiving a first bitstream at a device; obtaining a first key corresponding to the first bitstream, wherein the first key was created by hashing the first bitstream and encrypting the hashed first bitstream; authenticating the first bitstream using hardware at the device operable to access a first secret key specific to the device which is stored in the hardware of the device and is accessible when the device is executing in secured mode, wherein authenticating the first bitstream comprises: hashing the first bitstream, generating a second key by encrypting the hashed first bitstream, wherein the encryption of the hashed first bitstream is done in the hardware of the device and the hardware attempts to access the first secret key specific to the device and uses the result of the access in the encryption, and comparing the generated second key with the first key; if the second key and the first key match, executing the first bitstream on the processor in secured mode, wherein the first bitstream comprises a first encryption engine, and executing the first bitstream comprises decrypting encrypted digital content associated with the first bitstream using the first encryption engine and the first secret key specific to the device and the execution of the first bitstream is done in secured mode; and if the second key and the first key do not match, determining if the first bitstream is encrypted, and if the first bitstream is encrypted: obtaining a second bitstream; authenticating the second bitstream using the hardware at the device operable to access the first secret key specific to the device which is stored in the hardware, wherein authenticating the second bitstream comprises: obtaining a third key corresponding to the second bitstream, wherein the third key was created by hashing the second bitstream and encrypting the hashed second bitstream, hashing the second bitstream, wherein the hashing of the second bitstream utilizes the second key generated from the first bitstream as a seed value, generating a fourth key by encrypting the hashed second bitstream, wherein the encryption of the hashed second bitstream is done in the hardware of the device and the hardware attempts to access the first secret key specific to the device and uses the result of this access in the encryption, comparing the generated fourth key with the third key, and if the fourth key and the third key match, executing the second bitstream on the processor in secured mode.