Abstract: The various implementations described herein include methods and devices for creating and using trust binaries and blockchains. In one aspect, a method includes accessing a trust store for the computing device, including obtaining a blockchain for the trust store. A first change to the trust store is identified. In response to identifying the first change, a first block is generated and inserted into the blockchain, where the first block includes a first encrypted digest for the first change and a first block digest. A second change to the trust store is identified. In response to identifying the second change, a second block is generated and inserted into the blockchain, where the second block includes a second encrypted digest for the second change, a second block digest, and the first block digest.
Abstract: The various implementations described herein include methods and devices for creating and using trust binaries. In one aspect, a computer-readable storage medium includes a trust database storing a plurality of trust binaries, each trust binary corresponding to a respective executable program. Each trust binary of the plurality of trust binaries includes: a trust binary name generated by applying a hash function to a respective header of the respective executable program; and a function digest for each executable function identified in the executable program. The function digest is generated based on a respective starting address and one or more respective static parts of the respective executable function. The plurality of trust binaries are indexed in the trust database using their respective trust binary names.
Abstract: The various implementations described herein include methods and devices for creating and using trust binaries. In one aspect, a method includes obtaining executable code for a program, identifying a plurality of executable functions from the executable code, and for each executable function of the plurality of executable functions, generating a respective function digest based on one or more static parts of the respective executable function. The method further includes constructing a respective trust binary comprising the respective digest for each executable function of the plurality of executable functions, generating a trust binary name by applying a hash function to a header of the executable code, and indexing the trust binary in a trust database utilizing the trust binary name.
Abstract: A method for speeding up computer execution of short, highly repetitive program loops, wherein the method involves storing the address of the first instruction in the program loop in the stack of a control element before the loop is run, and thereafter generating that address when it is needed to restart processing of the loop by holding the stack and reading its value into the control element's register.