epoc32/include/mw/oma2agent.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2005 - 2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:  Contains the OMA DRM CAF Agent specific data types, commands
williamr@2
    15
*                and attributes
williamr@2
    16
*
williamr@2
    17
*/
williamr@2
    18
williamr@2
    19
williamr@2
    20
williamr@2
    21
#ifndef OMA2AGENT_H
williamr@2
    22
#define OMA2AGENT_H
williamr@2
    23
williamr@2
    24
//  INCLUDES
williamr@2
    25
#include <caf/caftypes.h>
williamr@2
    26
williamr@2
    27
// CONSTANTS
williamr@2
    28
_LIT(KOmaDrm2AgentName, "OMA DRM Agent");
williamr@2
    29
_LIT8(KOma1DrmMessageContentType, "application/vnd.oma.drm.message");
williamr@2
    30
_LIT8(KOma1XmlRoContentType, "application/vnd.oma.drm.rights+xml");
williamr@2
    31
_LIT8(KOma1WbxmlRoContentType, "application/vnd.oma.drm.rights+wbxml");
williamr@2
    32
_LIT8(KOma2RoContentType, "application/vnd.oma.drm.roap-pdu+xml");
williamr@2
    33
_LIT8(KOma2ProtectedRoType, "application/vnd.oma.drm.ro+xml");
williamr@2
    34
_LIT8(KOma2TriggerContentType, "application/vnd.oma.drm.roap-trigger+xml");
williamr@2
    35
_LIT8(KOma1DcfContentType, "application/vnd.oma.drm.content");
williamr@2
    36
_LIT8(KOma2DcfContentType, "application/vnd.oma.drm.dcf");
williamr@2
    37
_LIT8(KOmaImportContentType, "application/x-vnd.oma.drm.import");
williamr@2
    38
_LIT8(KOmaImportMimeTypeField, "Content-type");
williamr@2
    39
_LIT8(KOmaImportRightsField, "Rights");
williamr@2
    40
_LIT8(KOma2DcfRoBoxId, "cid:Oma2DcfRightsObjectBox@localhost");
williamr@2
    41
_LIT8(KOma2DcfTransactionBoxId, "cid:Oma2DcfTransactionBox@localhost");
williamr@2
    42
_LIT8(KOma2DcfBranding, "\000\000\000\024ftypodcf\000\000\000\002odcf");
williamr@2
    43
_LIT8(KCafMimeType, "application/x-caf");
williamr@2
    44
_LIT(KOma1DcfExtension, ".dcf");
williamr@2
    45
_LIT(KOma2DcfExtension, ".odf");
williamr@2
    46
_LIT(KOma2DcfExtensionAudio, ".o4a");
williamr@2
    47
_LIT(KOma2DcfExtensionVideo, ".o4v");
williamr@2
    48
williamr@2
    49
// DATA TYPES
williamr@2
    50
williamr@2
    51
// Transport scheme for encrypted rights objects
williamr@2
    52
williamr@2
    53
enum TKeyTransportScheme
williamr@2
    54
    {
williamr@2
    55
    EOma,
williamr@2
    56
    ECmlaIp1,
williamr@2
    57
    ECmlaIp2,
williamr@2
    58
    ECmlaIp3,
williamr@2
    59
    ECmlaIp4,
williamr@2
    60
    ECmlaIp5,
williamr@2
    61
    ECmlaIp6,
williamr@2
    62
    ECmlaIp7,
williamr@2
    63
    };
williamr@2
    64
williamr@2
    65
namespace ContentAccess
williamr@2
    66
{
williamr@2
    67
// Agent specific attribute identifiers
williamr@2
    68
williamr@2
    69
enum TOma2AgentAttribute
williamr@2
    70
    {
williamr@2
    71
    EFileType = EAgentSpecificAttributeBase + 1,
williamr@2
    72
    EPreviewType,
williamr@2
    73
    ESilentRightsType,
williamr@2
    74
    EDeliveryMethod,
williamr@2
    75
    ERecordingYear
williamr@2
    76
    };
williamr@2
    77
williamr@2
    78
enum TOma2AgentStringAttribute
williamr@2
    79
    {
williamr@2
    80
    EInstantPreviewUri = EAgentSpecificAttributeBase + 1,
williamr@2
    81
    EPreviewRightsUri,
williamr@2
    82
    ERightsIssuerUrl,
williamr@2
    83
    ESilentRightsUrl,
williamr@2
    84
    ETransactionTrackingId,
williamr@2
    85
    EEmbeddedRightsObject,
williamr@2
    86
    EGroupId,
williamr@2
    87
    EDomainRightsIssuerUrl,
williamr@2
    88
    EDomainId,
williamr@2
    89
    EDomainRightsIssuerId,
williamr@2
    90
    EContentVendor,
williamr@2
    91
    ECopyright,
williamr@2
    92
    EContentName,
williamr@2
    93
    EOmaDrmContentLocation,
williamr@2
    94
    EOmaDrmContentVersion,
williamr@2
    95
    EPerformer,
williamr@2
    96
    EOmaDrmGenre,
williamr@2
    97
    ERatingInfo,
williamr@2
    98
    EClassificationInfo,
williamr@2
    99
    EKeyword,
williamr@2
   100
    ELocInfoName,
williamr@2
   101
    ELocInfoAstronomicalBody,
williamr@2
   102
    ELocInfoAdditionalNotes,
williamr@2
   103
    EAlbumTitle,
williamr@2
   104
    EAlbumTrack,
williamr@2
   105
    ECoverUri,
williamr@2
   106
    ELyricsUrl,
williamr@2
   107
    EFileName
williamr@2
   108
    };
williamr@2
   109
williamr@2
   110
// File types
williamr@2
   111
// EOma1DcfBased, The file type is derived from Oma1Dcf but has some extensions to it
williamr@2
   112
enum
williamr@2
   113
    {
williamr@2
   114
    ENoDcf = 0,
williamr@2
   115
    EOma1Dcf = 1,
williamr@2
   116
    EOma2Dcf = 2,
williamr@2
   117
    EOma1DcfBased = 4 
williamr@2
   118
    };
williamr@2
   119
williamr@2
   120
// Delivery method
williamr@2
   121
williamr@2
   122
enum TOmaDrmDeliveryMethod
williamr@2
   123
    {
williamr@2
   124
    EOmaDrm1LocalDataFile,
williamr@2
   125
    EOmaDrm1ForwardLock,
williamr@2
   126
    EOmaDrm1ForwardLockDcf,
williamr@2
   127
    EOmaDrm1CombinedDelivery,
williamr@2
   128
    EOmaDrm1CombinedDeliveryDcf,
williamr@2
   129
    EOmaDrm1SeparateDelivery,
williamr@2
   130
    EOmaDrm2
williamr@2
   131
    };
williamr@2
   132
williamr@2
   133
// Encryption methods for OMA DRM 2 DCF files
williamr@2
   134
williamr@2
   135
enum TEncryptionMethod
williamr@2
   136
    {
williamr@2
   137
    EMethodNULL = 0x00,
williamr@2
   138
    EMethodAES_128_CBC = 0x01,
williamr@2
   139
    EMethodAES_128_CTR = 0x02
williamr@2
   140
    };
williamr@2
   141
williamr@2
   142
// Padding options
williamr@2
   143
williamr@2
   144
enum TEncryptionPadding
williamr@2
   145
    {
williamr@2
   146
    EPaddingNone = 0x00,
williamr@2
   147
    EPaddingRFC_2630 = 0x01
williamr@2
   148
    };
williamr@2
   149
williamr@2
   150
// Rights refresh and preview options
williamr@2
   151
williamr@2
   152
enum TSilentRefresh
williamr@2
   153
    {
williamr@2
   154
    ENoSilentRefresh = 0x00,
williamr@2
   155
    EOnDemand = 0x01,
williamr@2
   156
    EInAdvance = 0x02
williamr@2
   157
    };
williamr@2
   158
williamr@2
   159
enum TPreview
williamr@2
   160
    {
williamr@2
   161
    ENoPreview = 0x00,
williamr@2
   162
    EInstantPreview = 0x01,
williamr@2
   163
    EPreviewRights = 0x02
williamr@2
   164
    };
williamr@2
   165
williamr@2
   166
// Rights Object version (stored in the iVersionMain field of the version)
williamr@2
   167
williamr@2
   168
enum
williamr@2
   169
    {
williamr@2
   170
    EOma1Rights = 1,
williamr@2
   171
    EOma2Rights = 2,
williamr@2
   172
    ECmlaRights = 3
williamr@2
   173
    };
williamr@2
   174
williamr@2
   175
// Agent specific commands
williamr@2
   176
williamr@2
   177
enum
williamr@2
   178
    {
williamr@2
   179
    /**
williamr@2
   180
    * Embed any present domain RO into a CContent object
williamr@2
   181
    * Works as an agent specific command for CContent
williamr@2
   182
    * Input buffer: unused
williamr@2
   183
    * Output buffer: unused
williamr@2
   184
    */
williamr@2
   185
    EEmbedDomainRo,
williamr@2
   186
williamr@2
   187
    /**
williamr@2
   188
    * Return the supported OMA DRM methods
williamr@2
   189
    * Works as an agent specific command for CManager
williamr@2
   190
    * Input buffer: unused
williamr@2
   191
    * Output buffer: String containing the following tokens
williamr@2
   192
    *                FL if OMA DRM 1.0 Forward Lock is supported
williamr@2
   193
    *                CD if OMA DRM 1.0 Combined Delivery is supported
williamr@2
   194
    *                SD if OMA DRM 1.0 Separate Delivery is supported
williamr@2
   195
    *                OMADRM2 if OMA DRM 2.0 is supported
williamr@2
   196
    */
williamr@2
   197
    EOmaDrmMethods,
williamr@2
   198
williamr@2
   199
    /**
williamr@2
   200
    * Set the value of the x-oma header
williamr@2
   201
    * works as an agent specific command for CManager
williamr@2
   202
    * Input buffer: String containing the following data
williamr@2
   203
    *               4 bytes(TInt) | ContentURI
williamr@2
   204
    * Output buffer: unused
williamr@2
   205
    */
williamr@2
   206
    ESetPendingRightsETA,
williamr@2
   207
williamr@2
   208
    /**
williamr@2
   209
    * Checks whether a memory buffer contains an OMA DRM 1.0 DCF
williamr@2
   210
    * Input buffer: Memory buffer to check
williamr@2
   211
    * Output buffer: unused
williamr@2
   212
    * Return value: KErrNone if the buffer contains a DCF
williamr@2
   213
    */
williamr@2
   214
    EBufferContainsOma1Dcf,
williamr@2
   215
williamr@2
   216
    /**
williamr@2
   217
    * Decrypt an OMA DRM 1.0 DCF memory buffer
williamr@2
   218
    * Input buffer: Intent of the decryption (EPlay, ...) in the first byte,
williamr@2
   219
    *               followed by the memory buffer to decrypt
williamr@2
   220
    * Output buffer: Decrypted data
williamr@2
   221
    */
williamr@2
   222
    EDecryptOma1DcfBuffer,
williamr@2
   223
williamr@2
   224
williamr@2
   225
    /**
williamr@2
   226
    * Set the content name
williamr@2
   227
    * Input buffer: first memory buffer 4 bytes of length of the content name |
williamr@2
   228
    *               memory buffer of the new content name |
williamr@2
   229
    *               content id
williamr@2
   230
    * Output buffer: unused
williamr@2
   231
    */
williamr@2
   232
    ESetContentName,
williamr@2
   233
williamr@2
   234
    };
williamr@2
   235
}
williamr@2
   236
williamr@2
   237
#endif      // OMA2AGENT_H
williamr@2
   238
williamr@2
   239
// End of File