1. A computing device having one or more components implemented at least in part in hardware and that perform acts comprising: receiving data from a calling program; generating a digital signature, in the computing device and using public key encryption, over a combination of both the data and one or more conditions identifying when the data may be revealed, the one or more conditions including one or both of a logical formula to be evaluated and a program to be executed, wherein the data can be revealed only if one or both of the logical formula evaluates true and execution of the program returns an indication of true; and returning the digital signature to the calling program.