A one-way hash function is applied to a seed supplied by an application to
produce a hashed seed that is used to generate the application storage
key. A one-way hash function is applied to a seed supplied by a user to
produce a first hashed seed that is passed to a keyed hash function,
which is keyed to an identity for the user, to produce a second hashed
seed. The second hashed seed is used to generate the user storage key. An
operating system storage key is generated from an unhashed seed. One of
the storage keys is used to encrypt the downloaded content. An access
predicate attached to the content when it is downloaded is associated
with the storage key to enforce certain limitations on the access of the
content.