--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/RoapStorageClient.h Thu Dec 17 08:52:27 2009 +0200
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2002-2008 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: Client Class of ROAP Storage Server
+*
+*/
+
+
+
+#ifndef ROAPSTORAGECLIENT_H
+#define ROAPSTORAGECLIENT_H
+
+#include <Oma2Agent.h>
+
+// INCLUDES
+
+class CRSAPrivateKey;
+class CRSAPublicKey;
+class CDRMRIContext;
+class CDRMDomainContext;
+
+namespace Roap
+ {
+
+ // CLASS DECLARATION
+
+ /**
+ * RRoapStorageClient
+ *
+ * @lib drmserverinterfaces.lib
+ * @since Series 60 3.0
+ */
+ NONSHARABLE_CLASS( RRoapStorageClient ) : public RSessionBase
+ {
+ public:
+ // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C RRoapStorageClient();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~RRoapStorageClient();
+
+ public:
+ // New functions
+
+ /**
+ * ?member_description.
+ * @since Series ?XX ?SeriesXX_version
+ * @param ?arg1 ?description
+ * @return ?description
+ */
+ //?type ?member_function( ?type ?arg1 );
+ IMPORT_C TInt Connect();
+
+ IMPORT_C TInt GetDevicePublicKeyL( CRSAPublicKey*& aPublicKey );
+
+ IMPORT_C TInt GetDevicePublicKeyDerL( HBufC8*& aPublicKey );
+
+ IMPORT_C TInt GetDevicePublicKeyHashL( TDes8& aHash );
+
+ IMPORT_C TInt GetDeviceCertificateChainL(
+ RPointerArray<HBufC8>& aCertChain );
+
+ IMPORT_C TInt SignL( const TDesC8& aHash, HBufC8*& aSignature );
+
+ IMPORT_C TInt RsaSignL( const TDesC8& aHash, HBufC8*& aSignature );
+
+ IMPORT_C TBool VerifyL(
+ const TDesC8& aSignature,
+ const TDesC8& aHash,
+ const RPointerArray<HBufC8>& aCertificateChain );
+
+ IMPORT_C CDRMRIContext* GetRIContextL( const TDesC8& aRiID );
+
+ IMPORT_C CDRMDomainContext* GetDomainContextL(
+ const TDesC8& aDomainID );
+
+ IMPORT_C void AddRIContextL( const CDRMRIContext& aRiContext );
+
+ IMPORT_C void AddDomainContextL(
+ const CDRMDomainContext& aDomainContext,
+ const RPointerArray<HBufC8>& aMacs,
+ const RPointerArray<HBufC8>& aDomainKeyElements,
+ TKeyTransportScheme& aTransportScheme );
+
+ IMPORT_C void DeleteRiContextL( const TDesC8& aRiID );
+
+ IMPORT_C void DeleteDomainContextL( const TDesC8& aDomainID );
+
+ IMPORT_C void DeleteExpiredRIsL( const TTime& aTime );
+
+ IMPORT_C void DeleteExpiredDomainsL( const TTime& aTime );
+
+ IMPORT_C void DeleteExpiredContextsL( const TTime& aTime );
+
+ IMPORT_C void DeleteAllL();
+
+ /*
+ * WhiteListURLExistsL
+ * @param aURL, url to be searched in white lists
+ * @param (inout) aInPreconfiguredWhiteList
+ * as in parameter: define whether or not to search from
+ * pre-defined whitelist
+ * ETrue: given URL is not searched from whitelistURL
+ * EFalse: given URL is not searched from whitelistURL
+ * as out parameter: define whether or not url has been
+ * searched and found from pre-defined whitelist
+ * ETrue: parameter was initially false,
+ * hostname part of aURL does not match hostname part
+ * in any RI URL of any existing RI conext,
+ * and aURL matched at least one of pre-defined
+ * whitelist URLs
+ * EFalse otherwise
+ * @note EFalse also if hostname part of aURL
+ * matches any hostname part in any RI URLs
+ * of any existing RI context
+ *
+ * @return
+ * ETrue: aURL is in white list
+ * EFalse: aURL is not in white list
+ */
+ IMPORT_C TBool WhiteListURLExistsL( const TDesC8& aURL,
+ TBool& aFromPreconfiguredWhiteList );
+
+ IMPORT_C TInt SelectTrustedRootL(
+ const RPointerArray<HBufC8>& aTrustedRoots,
+ TDes8& aSelectedRoot ) const;
+
+ IMPORT_C TInt SelectTrustedRootL( const TDesC8& aTrustedRoot ) const;
+
+ IMPORT_C void
+ GetTrustedRootsL( RPointerArray<HBufC8>& aTrustedRoots ) const;
+
+ IMPORT_C HBufC8* GetRootCertificateL( const TDesC& aSubject ) const;
+
+ IMPORT_C HBufC8* GetMeteringDataL(
+ TDesC8& aRiId,
+ TDes8& aMacKey,
+ TDes8& aEncKeyHash,
+ HBufC8*& aEncryptedMekAndMak );
+
+ IMPORT_C void DeleteMeteringDataL( const TDesC8& aRiId );
+
+ IMPORT_C void GetAllRIContextsL(
+ RPointerArray<CDRMRIContext>& aRiContexts );
+
+ IMPORT_C void UpdateRIContextL( const CDRMRIContext& aContext );
+
+ IMPORT_C TBool UpdateDrmTimeL(
+ const RPointerArray<HBufC8>& aCertChain,
+ const RPointerArray<HBufC8>& aOCSPResponses,
+ const TDesC8& aNonce );
+
+ IMPORT_C TBool VerifyOcspResponsesL(
+ const RPointerArray<HBufC8>& aOcspResponses,
+ const TDesC8& aRiCaCert,
+ const RPointerArray<HBufC8>& aCertSerialNums );
+
+ IMPORT_C HBufC8* GetOcspResponderIdL( const TDesC8& aRiID );
+
+
+ private:
+
+ // Prohibit copy constructor if not deriving from CBase.
+ RRoapStorageClient( const RRoapStorageClient& );
+ // Prohibit assignment operator if not deriving from CBase.
+ RRoapStorageClient& operator=( const RRoapStorageClient& );
+
+ };
+ }
+
+#endif // ROAPSTORAGECLIENT_H
+// End of File