Abstract:
Embodiments are directed towards decrypting encrypted content. A key for decrypting the encrypted content may be provided to a web application executing within a browser. The application may employ a generic cryptography application program interface (GCAPI) to perform actions on the key, including, storing the key, decrypting an encrypted key, generating another key, converting the key to a different encryption type, or the like. The GCAPI may or may not be enabled to explicitly share the key with the browser's media engine. In response to receiving encrypted content, the GCAPI may provide the key to the application, explicitly or inexplicitly to the browser's media engine, or the like. The key may be utilized by the application, the browser, the media element, browser's media engine, and/or the GCAPI to decrypt the encrypted content. The decrypted content may be displayed within the browser to a user of a client device.
Abstract:
A method, apparatus, and manufacture for a content decryption module (CDM) is provided. A user agent loads a web application. The web application gets a license for encrypted media content. The web application instructs a media stack of the user agent to play the encrypted media content. The license is sent from the web application to the media stack. Next, the license is sent from the media stack to the CDM. The media stack and the CDM are distinct binaries from each other. Encrypted data is sent from the media stack to the CDM. The encrypted data includes at least a portion of the encrypted media content. Next, the CDM provides decrypted data by decrypting the encrypted data.
Abstract:
Techniques are described for reducing time to decrypt a next encrypted frame in a content stream by optimizing a license/key acquisition process. When requesting content, a key identifier and/or license identifier may be included within a webpage using a link, script, or similar access point. When a client device sends a request for content, the loading of the webpage within the client device includes the embedded key identifier. Access to the key/license identifier at the client device then may initiate a key/license acquisition process by the client device. The key/license may be obtained from a key management device in parallel with, or prior to, downloading of at least a portion of the content stream.
Abstract:
A method, apparatus, and manufacture for content protection for protecting some objects is provided. A content protection operation or license operation is performed for at least one media object of a web application. Some or all of the objects are then marked as protected. When an operation is performed that accesses a protected object, a user agent determines whether to deny the operation, to allow the operation and mark data exported by the operation and objects storing the exported data as protected objects, or to allow the operation and not mark data exported by the operation and objects storing the exported data as protected objects.
Abstract:
Embodiments are directed towards generating an image from a plurality of content layers. The content layers may include secure content that overlaps at least one other content layer. When the image is generated, the secure content may be rendered as a layer below the plurality of content layers. Additionally, each area of content layers that is overlapped by an area of the secure content may be modified to be transparent, where the area of the secure content is visible in the image through each transparently modified area. In some embodiments, an alpha channel value of each pixel in each area of content layers that is overlapped by the secure content may be modified. Secure content and unsecure content at a same layer may be split into different layers, where the unsecure content layer may be rendered at a theoretical secure content layer.
Abstract:
Embodiments are directed towards decrypting encrypted content. A key for decrypting the encrypted content may be provided to a web application executing within a browser. The application may employ a generic cryptography application program interface (GCAPI) to perform actions on the key, including, storing the key, decrypting an encrypted key, generating another key, converting the key to a different encryption type, or the like. The GCAPI may or may not be enabled to explicitly share the key with the browser's media engine. In response to receiving encrypted content, the GCAPI may provide the key to the application, explicitly or inexplicitly to the browser's media engine, or the like. The key may be utilized by the application, the browser, the media element, browser's media engine, and/or the GCAPI to decrypt the encrypted content. The decrypted content may be displayed within the browser to a user of a client device.
Abstract:
Embodiments are directed towards decrypting encrypted content. A key for decrypting the encrypted content may be provided to a web application executing within a browser. The application may employ a generic cryptography application program interface (GCAPI) to perform actions on the key, including, storing the key, decrypting an encrypted key, generating another key, converting the key to a different encryption type, or the like. The GCAPI may or may not be enabled to explicitly share the key with the browser's media engine. In response to receiving encrypted content, the GCAPI may provide the key to the application, explicitly or inexplicitly to the browser's media engine, or the like. The key may be utilized by the application, the browser, the media element, browser's media engine, and/or the GCAPI to decrypt the encrypted content. The decrypted content may be displayed within the browser to a user of a client device.
Abstract:
A method, apparatus, and manufacture for instantiating a browser plugin is provided. A client web browser of a client is employed to instantiate a browser plugin for the client web browser. Next, the client web browser is employed to obtain a reference to the browser plugin. Then, a command is given to the browser plugin via the reference to the browser plugin. The browser plugin is used by the client web browser rather than the web page.
Abstract:
A system to facilitate media content protection is provided. The system includes a partitioning component, a key derivation component and an output component. The partitioning component partitions encrypted media content associated with a master key into a plurality of media content segments. The key derivation component generates respective subkeys for the plurality of media content segments based at least in part on the master key and one or more parameters associated with one or more memory operations. The output component generates decrypted media content based at least in part on the respective subkeys.
Abstract:
Application-driven interceptor module enables offline playback of Digital Rights Management (DRM) protected content to work in a same way as online playback. Communications with the DRM module are intercepted by the application-driven interceptor that is aware of the client device's network connection status. When the interceptor application determines that the client device is offline, requests for the protected content, and license/key to the protected content may then be managed by the interceptor application. In one embodiment, the interceptor application may retrieve requests for the key/license from a locally protected data store, and provide the key/license to the DRM module. In this manner, the DRM module may be unaware that its messages are being intercepted, and may then operate the same, unaware of whether or not the client device is online or offline.