drm_pub/oma_drm_caf_agent_api/inc/Oma2Agent.h
changeset 0 95b198f216e5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_pub/oma_drm_caf_agent_api/inc/Oma2Agent.h	Thu Dec 17 08:52:27 2009 +0200
@@ -0,0 +1,239 @@
+/*
+* Copyright (c) 2005 - 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Contains the OMA DRM CAF Agent specific data types, commands
+*                and attributes
+*
+*/
+
+
+
+#ifndef OMA2AGENT_H
+#define OMA2AGENT_H
+
+//  INCLUDES
+#include <caf/caftypes.h>
+
+// CONSTANTS
+_LIT(KOmaDrm2AgentName, "OMA DRM Agent");
+_LIT8(KOma1DrmMessageContentType, "application/vnd.oma.drm.message");
+_LIT8(KOma1XmlRoContentType, "application/vnd.oma.drm.rights+xml");
+_LIT8(KOma1WbxmlRoContentType, "application/vnd.oma.drm.rights+wbxml");
+_LIT8(KOma2RoContentType, "application/vnd.oma.drm.roap-pdu+xml");
+_LIT8(KOma2ProtectedRoType, "application/vnd.oma.drm.ro+xml");
+_LIT8(KOma2TriggerContentType, "application/vnd.oma.drm.roap-trigger+xml");
+_LIT8(KOma1DcfContentType, "application/vnd.oma.drm.content");
+_LIT8(KOma2DcfContentType, "application/vnd.oma.drm.dcf");
+_LIT8(KOmaImportContentType, "application/x-vnd.oma.drm.import");
+_LIT8(KOmaImportMimeTypeField, "Content-type");
+_LIT8(KOmaImportRightsField, "Rights");
+_LIT8(KOma2DcfRoBoxId, "cid:Oma2DcfRightsObjectBox@localhost");
+_LIT8(KOma2DcfTransactionBoxId, "cid:Oma2DcfTransactionBox@localhost");
+_LIT8(KOma2DcfBranding, "\000\000\000\024ftypodcf\000\000\000\002odcf");
+_LIT8(KCafMimeType, "application/x-caf");
+_LIT(KOma1DcfExtension, ".dcf");
+_LIT(KOma2DcfExtension, ".odf");
+_LIT(KOma2DcfExtensionAudio, ".o4a");
+_LIT(KOma2DcfExtensionVideo, ".o4v");
+
+// DATA TYPES
+
+// Transport scheme for encrypted rights objects
+
+enum TKeyTransportScheme
+    {
+    EOma,
+    ECmlaIp1,
+    ECmlaIp2,
+    ECmlaIp3,
+    ECmlaIp4,
+    ECmlaIp5,
+    ECmlaIp6,
+    ECmlaIp7,
+    };
+
+namespace ContentAccess
+{
+// Agent specific attribute identifiers
+
+enum TOma2AgentAttribute
+    {
+    EFileType = EAgentSpecificAttributeBase + 1,
+    EPreviewType,
+    ESilentRightsType,
+    EDeliveryMethod,
+    ERecordingYear
+    };
+
+enum TOma2AgentStringAttribute
+    {
+    EInstantPreviewUri = EAgentSpecificAttributeBase + 1,
+    EPreviewRightsUri,
+    ERightsIssuerUrl,
+    ESilentRightsUrl,
+    ETransactionTrackingId,
+    EEmbeddedRightsObject,
+    EGroupId,
+    EDomainRightsIssuerUrl,
+    EDomainId,
+    EDomainRightsIssuerId,
+    EContentVendor,
+    ECopyright,
+    EContentName,
+    EOmaDrmContentLocation,
+    EOmaDrmContentVersion,
+    EPerformer,
+    EOmaDrmGenre,
+    ERatingInfo,
+    EClassificationInfo,
+    EKeyword,
+    ELocInfoName,
+    ELocInfoAstronomicalBody,
+    ELocInfoAdditionalNotes,
+    EAlbumTitle,
+    EAlbumTrack,
+    ECoverUri,
+    ELyricsUrl,
+    EFileName
+    };
+
+// File types
+// EOma1DcfBased, The file type is derived from Oma1Dcf but has some extensions to it
+enum
+    {
+    ENoDcf = 0,
+    EOma1Dcf = 1,
+    EOma2Dcf = 2,
+    EOma1DcfBased = 4 
+    };
+
+// Delivery method
+
+enum TOmaDrmDeliveryMethod
+    {
+    EOmaDrm1LocalDataFile,
+    EOmaDrm1ForwardLock,
+    EOmaDrm1ForwardLockDcf,
+    EOmaDrm1CombinedDelivery,
+    EOmaDrm1CombinedDeliveryDcf,
+    EOmaDrm1SeparateDelivery,
+    EOmaDrm2
+    };
+
+// Encryption methods for OMA DRM 2 DCF files
+
+enum TEncryptionMethod
+    {
+    EMethodNULL = 0x00,
+    EMethodAES_128_CBC = 0x01,
+    EMethodAES_128_CTR = 0x02
+    };
+
+// Padding options
+
+enum TEncryptionPadding
+    {
+    EPaddingNone = 0x00,
+    EPaddingRFC_2630 = 0x01
+    };
+
+// Rights refresh and preview options
+
+enum TSilentRefresh
+    {
+    ENoSilentRefresh = 0x00,
+    EOnDemand = 0x01,
+    EInAdvance = 0x02
+    };
+
+enum TPreview
+    {
+    ENoPreview = 0x00,
+    EInstantPreview = 0x01,
+    EPreviewRights = 0x02
+    };
+
+// Rights Object version (stored in the iVersionMain field of the version)
+
+enum
+    {
+    EOma1Rights = 1,
+    EOma2Rights = 2,
+    ECmlaRights = 3
+    };
+
+// Agent specific commands
+
+enum
+    {
+    /**
+    * Embed any present domain RO into a CContent object
+    * Works as an agent specific command for CContent
+    * Input buffer: unused
+    * Output buffer: unused
+    */
+    EEmbedDomainRo,
+
+    /**
+    * Return the supported OMA DRM methods
+    * Works as an agent specific command for CManager
+    * Input buffer: unused
+    * Output buffer: String containing the following tokens
+    *                FL if OMA DRM 1.0 Forward Lock is supported
+    *                CD if OMA DRM 1.0 Combined Delivery is supported
+    *                SD if OMA DRM 1.0 Separate Delivery is supported
+    *                OMADRM2 if OMA DRM 2.0 is supported
+    */
+    EOmaDrmMethods,
+
+    /**
+    * Set the value of the x-oma header
+    * works as an agent specific command for CManager
+    * Input buffer: String containing the following data
+    *               4 bytes(TInt) | ContentURI
+    * Output buffer: unused
+    */
+    ESetPendingRightsETA,
+
+    /**
+    * Checks whether a memory buffer contains an OMA DRM 1.0 DCF
+    * Input buffer: Memory buffer to check
+    * Output buffer: unused
+    * Return value: KErrNone if the buffer contains a DCF
+    */
+    EBufferContainsOma1Dcf,
+
+    /**
+    * Decrypt an OMA DRM 1.0 DCF memory buffer
+    * Input buffer: Intent of the decryption (EPlay, ...) in the first byte,
+    *               followed by the memory buffer to decrypt
+    * Output buffer: Decrypted data
+    */
+    EDecryptOma1DcfBuffer,
+
+
+    /**
+    * Set the content name
+    * Input buffer: first memory buffer 4 bytes of length of the content name |
+    *               memory buffer of the new content name |
+    *               content id
+    * Output buffer: unused
+    */
+    ESetContentName,
+
+    };
+}
+
+#endif      // OMA2AGENT_H
+
+// End of File