Symbian3/PDK/Source/GUID-29677CD7-DC09-590E-85AC-FF563233A205.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 13 Aug 2010 16:47:46 +0100
changeset 14 578be2adaf3e
parent 5 f345bda72bc4
permissions -rw-r--r--
Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     6
<!-- Initial Contributors:
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     7
    Nokia Corporation - initial contribution.
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     8
Contributors: 
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     9
-->
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    10
<!DOCTYPE concept
578be2adaf3e Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
1
25a17d01db0c Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    12
<concept xml:lang="en" id="GUID-29677CD7-DC09-590E-85AC-FF563233A205"><title>Digital Rights Management</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Content Access Framework provides an abstact way to access DRM protected content. An agent can be designed to implement a DRM scheme. </p> <section><title>Description</title> <p>Applications use DRM protected files in the same way they use any other file. The agent enforces the rights applied to the content. Also, it prevents access when rights have expired or if the file is accessed by applications without DRM capability. </p> <p>To enforce the protection of the content the agent must know what the client intends to do with the content once it has read the plain-text version of that content. Therefore, applications must specify their intent before using DRM protected content, see DRM Intent. </p> <p>Applications must <b>always</b> specify their intent, whether they use DRM protected content. Non-DRM agents ignore the call, but it means the application does not need to treat DRM content as a special case. </p> <p>One scenario where applications do need to treat DRM as a special case is where User Interface menu items may need to be disabled. For example, save or send through Bluetooth may not be permitted. Applications can use the <xref href="GUID-DE4B1BBC-09DF-3301-AE54-BD8296783B90.dita"><apiname>GetAttribute()</apiname></xref> functions to determine whether the operation is allowed on any given content object. </p> <p>Finally any application or plug-in that reads DRM content must handle the unencrypted version of the content responsibly. Only applications proven to work this way is given the DRM capability. </p> </section> <section><title>DRM capability</title> <p>The APIs provided by CAF require a client process to have DRM capability in order to use the functionality. The client process needs DRM capability, if it attempts to read DRM content using an CAF agent that implements a DRM protection scheme. The capability can only be enforced by the CAF agent running in a separate server process, so it is the responsibility of the agent to ensure the client process has the required capabilities. </p> <p> <b>Note:</b> There are no capabilities required to use unprotected content. </p> </section> <section id="GUID-763D231A-3F95-5B69-8F51-B5D499FC22EB"><title>DRM Intent</title> <p>The evaluation of DRM rights hinges on the correct supply of DRM Intent from the trusted rendering application to CAF. The framework provides a number of options so that the application can query and evaluate rights appropriately. </p> <p>CAF allows a renderer to do the following: </p> <ul><li id="GUID-6AEFB21C-0149-509C-8E5B-25F512E8AD52"><p> <b>Evalute intent:</b> In this evaluation, the ability is queried, but no stateful rights modifications are made. For example, a question on the screen "Could I play this now if I wanted to?". </p> </li> <li id="GUID-6C3AEA8F-15CB-5181-8514-DFD8B925EFFD"><p> <b>Execute intent:</b> In this evaluation, CAF instructs the agent to evaluate and process the rights, thus modifying any stateful rights (rights that have state). For example, content that has an expiry date or content that can only be played three times. </p> </li> </ul> <p>Essentially, renders begin by evaluating intent when the <xref href="GUID-136D0282-4C73-33E9-B9D4-9CE92A33BF75.dita"><apiname>CData</apiname></xref> object is created. When the content has been rendered successfully, they execute the intent to ensure that stateful rights are then processed. </p> <p>The recommended intent values for renders and agents to support are given by <xref href="GUID-0F5CE9B5-E674-3962-8376-CFB1ECB2F601.dita#GUID-0F5CE9B5-E674-3962-8376-CFB1ECB2F601/GUID-EC31A59B-B7BB-3064-B327-4FAE7E702E6C"><apiname>ContentAccess::TIntent</apiname></xref>: </p> <ul><li id="GUID-C77AF0EE-A3FB-5599-80AC-5318CD6CB166"><p> <codeph>EPeek</codeph>: Do not process or evaluate rights in any way </p> </li> <li id="GUID-03723995-FD9D-5B78-9AA9-F9AC66E0D2B8"><p> <codeph>EPlay</codeph>: Play the target content (OMA) </p> </li> <li id="GUID-335A6062-6257-56CA-A6A9-B5EE09FFAE00"><p> <codeph>EView</codeph>: View the target content (OMA) </p> </li> <li id="GUID-F29E5464-C1AC-51D3-B8FD-A22AA9367AA3"><p> <codeph>EExecute</codeph>: Execute the target content (OMA). Note: only supported in a Java context </p> </li> <li id="GUID-DE6D39CD-1DB6-5F34-8FC6-5A49E1358956"><p> <codeph>EPrint</codeph>: Print the target content (OMA) </p> </li> <li id="GUID-7CA7D874-6C15-546E-9F08-EC893945DD4F"><p> <codeph>EPause</codeph>: Pause content playback </p> </li> <li id="GUID-4B44D3A2-9A49-55FD-B6C7-4DFBAC0A7C50"><p> <codeph>EContinue</codeph>: Continue content playback </p> </li> <li id="GUID-F4A98B0D-C6A2-5C39-84F5-1E61363958B8"><p> <codeph>EUnknown</codeph>: Client has no idea what the content will be used for. DRM Agents can deny this intent, allowing only unprotected content to be accessed this way. </p> </li> </ul> </section> <section><title>See also</title> <p> <xref href="GUID-A137553F-3B5D-5116-A793-66BF257F42B4.dita">Right Manager API Tutorial</xref>  </p> </section> </conbody></concept>