Patent ID: 8555059

Claim:
A computer-implemented method comprising: receiving a software update at a computing device having an existing software application, the existing software application having an historic public/private key pair including an historic private key and an historic public key, the historic private key usable by the existing software application to access historic protected content, the historic protected content previously protected using the historic public key and the existing software application; and applying the software update to the existing software application to provide an updated software application, applying the software update including: retaining the historic private key for use by the updated software application to access the historic protected content, the historic private key not usable to access new protected content, the new protected content protected by a new public key and the updated software application; generating a new public/private key pair locally at the computing device, the new public/private key pair including the new public key and a new private key, the new public key usable to protect content to provide the new protected content, the new private key usable by the updated software application to access the new protected content; encrypting the new private key at the computing device using a symmetric key included in the software update to create an encrypted private key thereby preventing the new private key from being determined by unauthorized software applications or users; storing the encrypted private key within a key file located at the computing device, the updated software application capable of accessing the new private key by decrypting the encrypted private key using the symmetric key; removing the historic public key in the historic public/private key pair from local storage at the computing device; and in an event that one or more retained historic private keys are unused, removing from the local storage at the computing device: the one or more retained historic private keys that are unused; and one or more retained historic symmetric keys that are usable to generate the one or more retained historic private keys that are unused.