diff -r 000000000000 -r 95b198f216e5 omadrm/drmengine/server/inc/DRMEngineClientServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadrm/drmengine/server/inc/DRMEngineClientServer.h Thu Dec 17 08:52:27 2009 +0200 @@ -0,0 +1,441 @@ +/* +* Copyright (c) 2003 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: This file defines RightsServer.exe's client/server interface +* +*/ + + +#ifndef DRMENGINECLIENTSERVER_H +#define DRMENGINECLIENTSERVER_H + +// INCLUDES +#include +// #include + +// Added namespace to prevent namespace pollution (TDRMCommand). +namespace DRMEngine + { + // CONSTANTS + const TUint8 KServerMajorVersion = 3; + const TUint8 KServerMinorVersion = 0; + const TUint16 KServerBuildVersion = 0; + + const TInt KServerUID = 0x101F51F2; + const TInt KNullUID = 0x0; + const TInt KMaxOmaV1CIDLength = 256; + + _LIT( KDRMSemaphore, "RightsServerSem" ); + + _LIT( KServerName, "!RightsServer" ); + + // MACROS + // DATA TYPES + + enum TCommand + { + /* + Command: failsafe + */ + ENone, /* 0 */ + + /* + Command: Add a new rights object into database. + Params: + TDesC8( CID ), + TPtr8( TRightsObject ), + TDesC8( CEK ), + TDes8( Unique ID ) + */ + EAddRecord, + + /* + Command: Get single rights object. + Params: + TPckg8, + NULL, + TPtrC8( TDRMUniqueID ), + TDesC8( CID ) + */ + EGetDbEntry, + + /* + Command: Get list of rights objects and store the list + into a temporary file. + Params: + TFileName( temp file ), + TDesC8( CID ), + */ + EGetEntryList, + + /* + Command: Delete all ROs with certain CID. + Params: + NULL, + NULL, + TDesC8( CID ) + */ + EDeleteWithCID, + + /* + Command: Delete one RO, identified with UID & CID. + Params: + TPtr8( TDRMUniqueID ) + NULL, + NULL, + TDesC8( Content-ID ) + */ + EDeleteRO, /* 5 */ + + /* + Command: Export Content-ID list into a file. + Params: + TDes( File name ) + */ + EExportCIDs, + + /* + Command: Get decryption key, update rights if said to do so. + Params: + TInt( usage intention ), + TDesC8( content ID ), + TDRMKey( key ), + */ + EGetKey, + + /* + Command: Check whether there is available rights. + Params: + TInt( usage intention ), + TDesC8( content ID ) + */ + ECheckRights, + /* + Command: Return how many rights object there is in the DB. + Params: + TPtr8( integer ) + */ + ECount, + + /* + Command: Delete every RO from the database. + Params: + - + */ + EDeleteAll, /* 10 */ + + /* + Command: Consume the right with database + Params: + TDesC8( content ID ) + */ + EConsume, + + /* + Command: Calculate the padding from file ending + Params: + TDesC8( content ID ) + TDesC8( last two data blocks ) + */ + ECalculatePadding, + + /* + Command: Get the secure time and trust level. + Params: + TPckg< TInt64 > time + TPckg< TBool > trust level + */ + ESecureTime, + + /* + Command: Add a protected rights object into database. + Params: + TDesC8( CID ), + TPtr8( TRightsObject ), + TDesC8( REK + CEK + MAC), + TDes8( Unique ID ) + */ + EAddProtectedRecord, + + /* + Command: Add a domain rights object into database. + Params: + TDesC8( CID ), + TPtr8( TRightsObject ), + TDesC8( wrapped CEK ), + TDes8( Unique ID ) + */ + EAddDomainRecord, /* 15 */ + + + /* + Command: Gets the prepared data from the server size + TPtr8( data ) + */ + EGetPreparedData, + + /* + Command: Adds the domain ro xml representation to the server + TDesC8( RoId ) + TDesC8( XmlData ) + */ + EAddDomainRO, + + /* + Command: Gets the domain ro xml representation from the server + TDesC8( RoId ) + */ + EGetDomainRO, + + /* + Command: Deletes the domain ro xml representation from the server + TDesC8( RoId ) + */ + EDeleteDomainRO, + + /* + Command: Checks whether the item is in Replay Cache. + TDesC8( ID ) + TPckgC< TTime > + TPckg< TBool return value > + */ + EIsInCache, /* 20 */ + + /* + Command: Add an entry to Replay Cache. + TDesC8( ID ) + TPckgC< TTime > + */ + EAddToCache, + + /* + Command: Initialize the session key + TDesC8( content ID ) + */ + EInitializeKey, + + /* + Command: Initialize the session key from a group key + TDesC8( group ID ) + TDesC8( group Key ) + TInt( encryption method ) + */ + EInitializeGroupKey, + + /* + Command: Decrypt data using the session key + TDesC8( initialization vector ) + TBool( remove padding? ) + TPtr8( data ) + */ + EDecrypt, + + /* + Command: Encrypt data using the session key + TDesC8( initialization vector ) + TBool( add padding? ) + TPtr8( data ) + */ + EEncrypt, /* 25 */ + + /* + Command: Get the domain RO as XML for the given content ID + TDesC8( content ID ) + TPtr8( RO as XML ) + */ + EGetDomainRoForCid, + + /* + Command: Check if consume is possible + Params: + TInt( intent ) + TDesC8( content ID ) + */ + ECheckConsume, + + /* + Command: Delete expired permissions. + */ + EDeleteExpired, + + /* + Command: Set the estimated arrival time + Params: + TDesC8( content ID ) + TTimeIntervalSeconds( time until arrival ) + */ + ESetEstimatedArrival, + + /* + Command: Get the estimated arrival time + Params: + TDesC8( content ID ) + TTimeIntervalSeconds( time until arrival ) + */ + EGetEstimatedArrival, /* 30 */ + + /* + Command: Set name + Params: + TDesC8( content-ID) + TDesC( name ) + */ + ESetName, + + /* + Command: Get name + Params: + TDesC8( content-ID) + TPckgBuf< TInt >( data lengt to be returned ) + */ + EGetName, + + /* + Command: Gets the prepared data from the server size + TPtr( data ) + */ + EGetWideData, + + /* + Command: Cancel + */ + ECancel, + + /* + Command: Get Udt Data + TDesC8( UDT Data ); + */ + EGetUdtData, /* 35 */ + + /* + Command: Initiate Udt + TDesC8( key ) + */ + EInitiateUdt, + + /* + Command: Export Orphaned Content-ID list into a file. + Params: + TBool( perform file scan ) + */ + EInitOrphanedList, + + /* + Command: Export Orphaned Content-ID list into a file. + Params: + TDes( File name ) + */ + EGetOrphanedList, + + /* + Command: Get FL URI. + Params: + TBuf8< 256 >( URI ) + */ + EGetFLUri, + + /* + Command: Encode rights issuer url. + Params: + TPtr8( original ), room for result also. + */ + EEncodeRightsIssuerField, /* 40 */ + + /* + Command: Decode rights issuer url. + Params: + TDesC8( original ). + TPtr8( decoded ) + */ + EDecodeRightsIssuerField, + + /* + Command: Set the authentication seed for a content ID + Params: + TDesC8( content ID) + TDesC8( authentication seed ) + */ + ESetAuthenticationSeed, + + /* + Command: Get the authentication seed for a content ID + Params: + TDesC8( content ID) + TPtr8( authentication seed ) + */ + EGetAuthenticationSeed, + + /* + Command: Verify the MAC + Params: + TDesC8( RO element) + TDesC8( MAC value ) + */ + EVerifyMac, + + /* + Command: Get the supported individuals list + Params: + RPointerArray + */ + EGetSupportedIndividuals, /* 45 */ + + /* + Command: Stop watching the DCF repository server + */ + EStopWatching, + + /* + Command: Unwraps public key encrypted MAC and REK keys. + Params: + TDesC8 aMacAndRek, + TKeyTransportScheme& aTransScheme, + TDesC8 aRiID + */ + EUnwrapDeviceMacAndRek, + + /* + Command: Unwraps domain key encrypted MAC and REK keys. + Params: + TDesC8 aMacAndRek, + TKeyTransportScheme& aTransScheme, + TDesC8 aRiID + */ + EUnwrapDomainMacAndRek, + + /* + Command: Fills the given buffer with random data + Params: + TDesC8 aRandomData, + */ + EGetRandomData, + + /* + Command: Wrap metering data per RiId + Params: + TDesC8 aRiId, + */ + EGetMeteringData, /* 50 */ + + /* + Command: Delete metering data per RiId + Params: + TDesC8 aRiId, + */ + EDeleteMeteringData + }; + } + +#endif // DRMENGINECLIENTSERVER_H + +// End of File