Patent ID: 8024579

Claim:
A system for validation of code, the system comprising: an input/output subsystem receiving a user selection of trusted platform module (TPM) emulator code from among a plurality of TPM emulator codes stored in system storage; a processor comprising an execution space; a system memory operably coupled with the processor; the system storage comprising the plurality of the TPM emulator code enabling the processor to simulate any trusted platform module (TPM); a trusted platform module (TPM) device to emulate different trusted platform modules using the emulator code, said TPM device comprising: secure memory comprising embedded instructions; trusted platform module registers; a secure storage area comprising a first lookup table storing a hash table comprising encrypted hash values and validation public keys for each instance of trusted platform modules and a plurality of hash algorithms associated with the validation public keys and the encrypted hash values; wherein said validation public keys and encrypted hash values are indexed by the TPM emulator code and validation software, wherein each encrypted hash value is bound with an endorsement key for its associated TPM code; a second table holding an endorsement key pair for each instance of trusted platform modules, said endorsement key pair each comprising an endorsement private key and an endorsement public key; wherein the TPM device is configured to perform: loading the user-selected TPM emulator code into the TPM device; using the user-selected TPM emulator code as an index to retrieve its corresponding hash algorithm from the lookup table; running a hash algorithm selected from the plurality of hash algorithms to compute a first hash value; decrypting the first hash value pertaining to the hash algorithm to provide a second hash value, using a validation public key associated with the user-selected TPM emulator code; comparing the first and second hash values; moving the user-selected TPM emulator code into the execution space only when it is determined that the first and second hash values match; and loading the private key associated with the user-selected TPM emulator code into the trusted platform module registers.