A method comprising: using first cryptographic key data specific to a computing device and which has been hardcoded to a memory of the computing device by an in-system programmer to verify a package of machine readable instructions to run on the computing device ; executing, by the computing device , the verified package, wherein the execution of the package comprises: generating a random number using a true random number generator of the computing device , and storing the generated random number hardcoded to a one-time programmable memory by an in-system programmer of the computing device ; producing second cryptographic key data, the second cryptographic key data generated by a pseudorandom number generator of the computing device based on a seed comprising a combination of the random number generated by a true random number generator of the computing device as a first seed portion and a second seed portion; and sending a portion of the second cryptographic key data to a certifying authority; the method further comprising receiving a certification value based on the sent portion of the second cryptographic key data from the certifying authority and storing the certification value in a memory of the computing device . using first cryptographic key data specific to a computing device and which has been hardcoded to a memory of the computing device by an in-system programmer to verify a package of machine readable instructions to run on the computing device ; executing, by the computing device , the verified package, wherein the execution of the package comprises: generating a random number using a true random number generator of the computing device , and storing the generated random number hardcoded to a one-time programmable memory by an in-system programmer of the computing device ; producing second cryptographic key data, the second cryptographic key data generated by a pseudorandom number generator of the computing device based on a seed comprising a combination of the random number generated by a true random number generator of the computing device as a first seed portion and a second seed portion; and sending a portion of the second cryptographic key data to a certifying authority; the method further comprising receiving a certification value based on the sent portion of the second cryptographic key data from the certifying authority and storing the certification value in a memory of the computing device . generating a random number using a true random number generator of the computing device , and storing the generated random number hardcoded to a one-time programmable memory by an in-system programmer of the computing device ; producing second cryptographic key data, the second cryptographic key data generated by a pseudorandom number generator of the computing device based on a seed comprising a combination of the random number generated by a true random number generator of the computing device as a first seed portion and a second seed portion; and sending a portion of the second cryptographic key data to a certifying authority; the method further comprising receiving a certification value based on the sent portion of the second cryptographic key data from the certifying authority and storing the certification value in a memory of the computing device . <EOS>