diff -r 4816d766a08a -r f345bda72bc4 Symbian3/PDK/Source/GUID-06370120-7738-5694-9A8C-3B5B1E3A4352.dita --- a/Symbian3/PDK/Source/GUID-06370120-7738-5694-9A8C-3B5B1E3A4352.dita Tue Mar 30 11:42:04 2010 +0100 +++ b/Symbian3/PDK/Source/GUID-06370120-7738-5694-9A8C-3B5B1E3A4352.dita Tue Mar 30 11:56:28 2010 +0100 @@ -1,113 +1,113 @@ - - - - - -Creating -an SRTP Session -

The SRTP library generates SRTP packets from the RTP or RTCP stream and -forwards the packets to the receiver. SRTP transforms incoming SRTP packets -to RTP/RTCP packets and passes them up the stack. The cryptographic state -information associated with each SRTP stream is termed the cryptographic context. -The state information is maintained by both the sender and receiver of SRTP -streams. If multiple SRTP streams exist within a given RTP session, then separate -cryptographic contexts must be maintained for each stream. Each stream is -identified by a Synchronisation Source (SSRC).

-

All actions on the RTP and RTCP streams require a valid SRTP session. Creation -and initialization of a SRTP session is a pre-requirement for all consequent -actions.

- -
Required background

Prior to initiation of a create -session request, an application or a RTP stack must ensure:

    -
  • Values to populate the -cryptographic context for the session to be created must be available

  • -
  • Destination Address -must be identified.

  • -
-
Procedure
    -
  1. Create a SRTP session -by invoking the NewL() or NewLC() API's of the class CSRTPSession.

    The -functions NewL() and NewLC() both -have two variants each. Each of the variants are explained below.

      -
    1. - IMPORT_C static CSRTPSession* NewL(const TInetAddr& - aDestination )

      This API is appropriate -when each stream will have its own cryptographic context.

      aDestination -is the input parameter that contains the destination address, including the -port.

      The API leaves with KErrNone if successfully executed, else -returns a valid system-wide error code.

    2. -
    3. IMPORT_C static CSRTPSession* NewL( const TInetAddr& - aDestination, CSRTPCryptoContext* aCon, - MSRTPReKeyingObserver& aObs );

      This -API is appropraite when all streams will use the same cryptographic context -configured in the SRTP session.

      aDestination is the input parameter -that contains the destination address, including the port.

      aCon is -the input parameter that contains the default cryptographic context for the -session.

      aObs is the input parameter that contains the callback object.

      The -API leaves with KErrNone if successfully executed, else returns a valid system-wide -error code.

    4. -
    5. IMPORT_C static CSRTPSession* NewLC(const TInetAddr& - aDestination ); -

      This function creates a new SRTP session -and pushes it to CleanupStack.

      aDestination is the input parameter -that contains the destination address, including the port.

      The API -leaves with KErrNone if successfully executed, else returns a valid system-wide -error code.

    6. -
    7. IMPORT_C static CSRTPSession* NewLC(const TInetAddr& - aDestination, CSRTPCryptoContext* aCon, - MSRTPReKeyingObserver& aObs); -

      This function creates a new SRTP session -and pushes it to CleanupStack.

      This API is invoked if all streams -will use the same cryptographic context.

      aDestination is the input -parameter that contains the destination address, including the port.

      aCon -is the input parameter that contains the default cryptographic context for -the session.

      aObs is the input parameter that contains the callback -object.

      The API leaves with KErrNone if successfully executed, else -returns a valid system-wide error code.

    8. -
  2. -
- -
Results

On successful execution of the API, a SRTP -session is created and initialized.

- -

On creation of a valid SRTP session, the application can request -for encrypting and decrypting of RTP and RTCP streams, Updating SRTP Master -Key or Notification of Key Expiry.

The stream(s) associated with the -session are always owned by the session.

The cryptographic context -of the session may be owned by the stream or the session.

The master -keys and the master salt are owned by the cryptographic context.

When -an SRTP session is deleted, the Cryptographic context, the stream, the master -key and the mastersalt key associated with the session are deleted.

The -steps below describe the stream management techniques of a SRTP session:

    -
  1. Attach a stream to session -of by invoking the API AddStreamToList()of the class CSRTPSession.

    void AddStreamToList(CSRTPStream *aStream);

    This -API attaches the given stream to the session.

    aStream is the input -parameter that contains the stream to be added to session.

  2. -
  3. Remove a stream to the -session by invoking the API RemoveStreamFromList()of the class CSRTPSession.

    void RemoveStreamFromList(CSRTPStream *aStream);

    This API removes the given stream from the session.

    aStream is the -input parameter that contains the stream to be removed from the session.

  4. -
-
-Creating -a Cryptographic Context -Creating -an SRTP Stream -Encrypting - RTCP Packet Data -Encrypting -RTP Packet Data -Decrypting -RTP Packet Data -Decrypting - RTCP Packet Data -Updating -Master Key -Managing - Master Key + + + + + +Creating +an SRTP Session +

The SRTP library generates SRTP packets from the RTP or RTCP stream and +forwards the packets to the receiver. SRTP transforms incoming SRTP packets +to RTP/RTCP packets and passes them up the stack. The cryptographic state +information associated with each SRTP stream is termed the cryptographic context. +The state information is maintained by both the sender and receiver of SRTP +streams. If multiple SRTP streams exist within a given RTP session, then separate +cryptographic contexts must be maintained for each stream. Each stream is +identified by a Synchronisation Source (SSRC).

+

All actions on the RTP and RTCP streams require a valid SRTP session. Creation +and initialization of a SRTP session is a pre-requirement for all consequent +actions.

+ +
Required background

Prior to initiation of a create +session request, an application or a RTP stack must ensure:

    +
  • Values to populate the +cryptographic context for the session to be created must be available

  • +
  • Destination Address +must be identified.

  • +
+
Procedure
    +
  1. Create a SRTP session +by invoking the NewL() or NewLC() API's of the class CSRTPSession.

    The +functions NewL() and NewLC() both +have two variants each. Each of the variants are explained below.

      +
    1. + IMPORT_C static CSRTPSession* NewL(const TInetAddr& + aDestination )

      This API is appropriate +when each stream will have its own cryptographic context.

      aDestination +is the input parameter that contains the destination address, including the +port.

      The API leaves with KErrNone if successfully executed, else +returns a valid system-wide error code.

    2. +
    3. IMPORT_C static CSRTPSession* NewL( const TInetAddr& + aDestination, CSRTPCryptoContext* aCon, + MSRTPReKeyingObserver& aObs );

      This +API is appropraite when all streams will use the same cryptographic context +configured in the SRTP session.

      aDestination is the input parameter +that contains the destination address, including the port.

      aCon is +the input parameter that contains the default cryptographic context for the +session.

      aObs is the input parameter that contains the callback object.

      The +API leaves with KErrNone if successfully executed, else returns a valid system-wide +error code.

    4. +
    5. IMPORT_C static CSRTPSession* NewLC(const TInetAddr& + aDestination ); +

      This function creates a new SRTP session +and pushes it to CleanupStack.

      aDestination is the input parameter +that contains the destination address, including the port.

      The API +leaves with KErrNone if successfully executed, else returns a valid system-wide +error code.

    6. +
    7. IMPORT_C static CSRTPSession* NewLC(const TInetAddr& + aDestination, CSRTPCryptoContext* aCon, + MSRTPReKeyingObserver& aObs); +

      This function creates a new SRTP session +and pushes it to CleanupStack.

      This API is invoked if all streams +will use the same cryptographic context.

      aDestination is the input +parameter that contains the destination address, including the port.

      aCon +is the input parameter that contains the default cryptographic context for +the session.

      aObs is the input parameter that contains the callback +object.

      The API leaves with KErrNone if successfully executed, else +returns a valid system-wide error code.

    8. +
  2. +
+ +
Results

On successful execution of the API, a SRTP +session is created and initialized.

+ +

On creation of a valid SRTP session, the application can request +for encrypting and decrypting of RTP and RTCP streams, Updating SRTP Master +Key or Notification of Key Expiry.

The stream(s) associated with the +session are always owned by the session.

The cryptographic context +of the session may be owned by the stream or the session.

The master +keys and the master salt are owned by the cryptographic context.

When +an SRTP session is deleted, the Cryptographic context, the stream, the master +key and the mastersalt key associated with the session are deleted.

The +steps below describe the stream management techniques of a SRTP session:

    +
  1. Attach a stream to session +of by invoking the API AddStreamToList()of the class CSRTPSession.

    void AddStreamToList(CSRTPStream *aStream);

    This +API attaches the given stream to the session.

    aStream is the input +parameter that contains the stream to be added to session.

  2. +
  3. Remove a stream to the +session by invoking the API RemoveStreamFromList()of the class CSRTPSession.

    void RemoveStreamFromList(CSRTPStream *aStream);

    This API removes the given stream from the session.

    aStream is the +input parameter that contains the stream to be removed from the session.

  4. +
+
+Creating +a Cryptographic Context +Creating +an SRTP Stream +Encrypting + RTCP Packet Data +Encrypting +RTP Packet Data +Decrypting +RTP Packet Data +Decrypting + RTCP Packet Data +Updating +Master Key +Managing + Master Key
\ No newline at end of file