Patent ID: 8751799

Claim:
A method for distributing content, comprising: creating first content on a first device; encrypting the first content using a first content key; storing the encrypted first content on the first device; identifying a first recipient for the first content; encrypting the encrypted first content, the first content key, and first information related to the first content using a public key of the first recipient; delivering the encrypted first content, first content key, and at least first information related to the first content to a second device, as encrypted using the public key of the first recipient, over a communication network; receiving the encrypted first content, first content key, and at least first information related to the first content, as encrypted using the public key of the first recipient, at the second device; decrypting the encrypted first content, first content key, and at least first information related to the first content, as encrypted using the public key of the first recipient, by applying a private key of the first recipient using a client application running on the second device; storing the encrypted first content in an object store on the second device; storing the encrypted at least first information related to the first content in the object store on the second device; storing the first content key in a first key ring on the second device, wherein the first key ring is encrypted using a first system key; applying the first system key to the encrypted first key ring using the client application running on the second device to access the first content key; using the unencrypted first content key, the first client application decrypting the encrypted first content to access the first content; displaying by the client application the first content, wherein actions that a user takes with respect to the first content are limited by permissions associated with the first content; and after using the unencrypted first content key to decrypt the encrypted first content, overwriting the unencrypted first content key in memory.