rtp/rtpstack/tsrc/ut_rtpstack/inc/UT_CRtpSessionSRTP.h
changeset 0 307788aac0a8
child 15 8248b03a2669
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rtp/rtpstack/tsrc/ut_rtpstack/inc/UT_CRtpSessionSRTP.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) 2004 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:  
+*
+*/
+
+
+
+
+#ifndef __UT_CRtpSessionSrtp_H__
+#define __UT_CRtpSessionSrtp_H__
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/ceunittestsuiteclass.h>
+
+//  INTERNAL INCLUDES
+
+#include "srtpmastersalt.h"
+#include "srtpmasterkey.h"
+#include "srtpcryptocontext.h"
+#include <in_sock.h>
+#include "msrtprekeyingobserver.h"
+#include "rtpsessionsrtp.h"
+#include "srtpsession.h"
+#include "srtpstreamin.h"
+#include "srtpstreamout.h"
+
+#include "rtpsdes.h"
+#include "rtppacket.h"
+#include "rtppacketparam.h"
+#include "rtpstream.h"
+#include "rtpasignuniqueid.h"
+#include <rtpdef.h>
+#include <commdbconnpref.h>
+#include <e32std.h>
+#include "rtptimer.h"
+
+
+//  FORWARD DECLARATIONS
+class CRtpSessionSrtp;
+
+//Constant
+const TInt KTestRtpNumPayloadTypes = 128;
+
+
+#include <e32def.h>
+#ifndef NONSHARABLE_CLASS
+    #define NONSHARABLE_CLASS(x) class x
+#endif
+
+//  CLASS DEFINITION
+/**
+ *
+ * EUnitWizard generated test class. 
+ *
+ */
+NONSHARABLE_CLASS( UT_CRtpSessionSrtp )
+     : public CEUnitTestSuiteClass,
+     public MSRTPReKeyingObserver,
+      public MRtpErrNotify,
+      public MRtpAsignUniqueID,
+      public MRtcpObserver, MRtpObserver,
+      public MNonRTPDataObserver,MTimeOutNotify     
+    {
+    class TPayloadDetails
+        {
+        public:    
+            TPayloadDetails();
+    
+        public:
+            TUint16 seqNr;
+	        const TUint8* ssrc;
+            TUint8  padding;
+            TUint8  numCSRC;
+            TBool   fHeaderExtension;
+            TUint8  payloadLen;
+            const TUint8* payloadData;
+            TUint8  MKILen;
+            const TUint8* MKIData;
+            TUint8  authTagLen;
+            const TUint8* authTagData;    
+        };
+    public:     // Constructors and destructors
+
+        /**
+         * Two phase construction
+         */
+        static UT_CRtpSessionSrtp* NewL();
+        static UT_CRtpSessionSrtp* NewLC();
+        /**
+         * Destructor
+         */
+        ~UT_CRtpSessionSrtp();
+
+    private:    // Constructors and destructors
+
+        UT_CRtpSessionSrtp();
+        void ConstructL();
+
+    public:     // From observer interface
+
+        void SRTPMasterKeyStaleEvent(const CSRTPSession&  aSession); 
+        void SRTPMasterKeyStaleEvent(const CSRTPStream&  aStream); 
+        
+        void ErrorNotify( TInt aErrCode );
+		 //from MRtpAsignUniqueID     
+        TRtpId AssignUniqueID();
+        TInt AddStreamToSession(TRtpId aSessionId, TRtpId aStreamId);
+
+    	// from MRtpObserver
+        void RtpPacketReceived( TRtpId aStreamId,
+                                const TRtpRecvHeader& aHeaderInfo, 
+                                const TDesC8& aPayloadData );
+    	// from MRtcpObserver
+
+        void SdesReceived( TRtpSSRC aSSRC,
+                           const TRtpSdesParams& aParams );
+    
+        void ByeReceived( TRtpId aStreamId, TRtpSSRC aSSRC,
+                          const TDesC8& aReason );
+
+        void AppReceived( TRtpId aStreamId, TRtpSSRC aSSRC,
+                          const TRtcpApp& aApp );
+    
+        void SrReceived( TRtpId aStreamId, TRtpSSRC aSSRC,
+                         const TTimeStamps& aTimeStamps );
+    
+        void RrReceived( TRtpId aStreamId, TRtpSSRC aSSRC );
+
+		// from MNonRTPDataObserver
+        void NonRTPDataReceived( TUint aPort, TBool aRTPport, const TDesC8& aNonRTPData );
+        
+          // from MTimeOutNotify
+        void OnExpiredL( TInt aStatus );
+
+
+    private:    // New methods
+
+         void SetupL();
+        
+         void Teardown();
+        
+         void UT_CRtpSessionSrtp_NewLL();
+        
+        
+         void UT_CRtpSessionSrtp_SendRtpPacketL();
+        
+         void UT_CRtpSessionSrtp_SendRtpPacket1L(  );
+        
+         void UT_CRtpSessionSrtp_SendRtpPacket_1L();
+         void UT_CRtpSessionSrtp_SendRtpPacket_1AL(  );
+        
+         void UT_CRtpSessionSrtp_SendRtpPacket_2L();
+         void UT_CRtpSessionSrtp_SendRtpPacket_2AL();
+        
+        
+         void UT_CRtpSessionSrtp_OnRtpReceivedL();
+         
+         void UT_CRtpSessionSrtp_OnRtpReceived_1L(  );
+         void UT_CRtpSessionSrtp::UT_CRtpSessionSrtp_SendSRTCPReport();
+	
+		void UT_CRtpSessionSrtp_OnRtcpReceived();
+	
+        
+
+		 HBufC8* BuildPacketL(TBool aSrtp, TPayloadDetails& details);    
+		 
+		 void Write32( TUint8* const aPointer, TUint32 aValue );
+
+         void Hex(HBufC8& aString);       
+         void Write16( TUint8* const aPointer, TUint16 aValue );      
+    private:    // Data
+      	//Data for SRTP part
+      	TBuf8<32>       iSalt;
+        TBuf8<32>       iKey;
+        TBuf8<32>       iMKI;
+        CSRTPMasterSalt* iMasterSalt; 
+        CSRTPMasterKey*  iMasterKey;         
+        
+        CSRTPCryptoContext* iContext;
+        
+        HBufC8* iTestPayload160Bits;
+        HBufC8* iTestMKI128Bits;
+        HBufC8* iTestAuthTag80Bits;
+        
+        CSRTPSession* iSRTPSession;
+        CSRTPStreamIn* iStreamIn;
+        CSRTPStreamOut* iStreamOut;
+        CSRTPCryptoHandlerSRTP *iCryptoHandlerSRTP;
+        TInetAddr iDestination;
+	    TBuf8<32> iRFC3711_TestMasterKey128bits;	     
+	    TBuf8<32> iRFC3711_TestMasterSalt112bits;
+	    HBufC8* iRFC3711_SessionEncrKey128bits;
+	    HBufC8* iRFC3711_SessionSaltKey128bits;
+	    HBufC8* iRFC3711_SessionAuthKey128bits;
+        HBufC8* iDecryptedPayload; 
+		TBool iMasterKeyStaleRefresh;
+		//Data form RTPSession
+		TRtpId iNumOfObjects;   // count of session and participants IDs 
+		CRtpSessionSrtp* iSession;
+        RSocketServ iSocketServ;
+        RConnection iConn;
+        CRtpSDES* iSdes;
+        TUint32 iProfileRTPTimeRates[KTestRtpNumPayloadTypes];
+        RLibrary iLibrary;
+		TRtpId iTranstreamId;
+		TRtpId iRecvstreamId;
+        EUNIT_DECLARE_TEST_TABLE; 
+
+    };
+
+#endif      //  __UT_CRtpSessionSrtp_H__
+
+// End of file