Symbian3/PDK/Source/GUID-B9BD2E0A-F214-5344-91A6-E4E99F0D74C8.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 13 Aug 2010 16:47:46 +0100
changeset 14 578be2adaf3e
parent 5 f345bda72bc4
permissions -rw-r--r--
Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"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: 
-->
<!DOCTYPE task
  PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd">
<task id="GUID-B9BD2E0A-F214-5344-91A6-E4E99F0D74C8" xml:lang="en"><title>Updating
SRTP Master Key</title><abstract><p>A single master key provides keying material for confidentiality
and integrity protection of the SRTP and the corresponding SRTCP stream. </p>The
SRTP master key is updated in the two circumstances: <ul>
<li><p>For each master key, a record of number of packets processed sent is
maintained. There is a limit on the number of packets processed that can be
processed by a single master key. During encryption or decryption of the RTP/RTCP
packets, the SRTP stack checks for the number of packets processed. If the
number of packets processed, ha s reached the maximum permisible value , the
master key status is identified as stale. The SRTP notifies the SRTP client
of the master key status. The SRTP client may decide to update the master
key in response to the notification.</p></li>
<li><p>The SRTP client may update the master key for robust security, prior
to master key stale status identification. </p></li>
</ul></abstract><prolog><metadata><keywords/></metadata></prolog><taskbody>
<prereq><p>An SRTP session must be created and initialized. </p> </prereq>
<steps id="GUID-2D939DEF-AA2A-598B-89FD-F6AD290344A0">
<step id="GUID-39FD589D-DFD0-5F7A-BABE-547CD59F295F"><cmd/>
<info>The SRTP client receives notification of master key stale state or SRTP
client decides to update the master key for security. </info>
</step>
<step id="GUID-E9C74070-5634-5659-83D5-ECB3595502C0"><cmd>The SRTP client
updates the master key using the <xref href="GUID-A2B842EC-936F-3805-8365-C1F9BE20832E.dita"><apiname>SetMasterKey()</apiname></xref> API of
the class <xref href="GUID-E9F66C90-C0BF-3713-8BA0-810A362A1774.dita"><apiname>CSRTPCryptoContext</apiname></xref>. </cmd>
<substeps id="GUID-081E7F1B-DDDB-52B1-BE60-FE80F0FCBCF0">
<substep id="GUID-6C510541-566D-528A-AC11-DE99D0B51F49"><cmd/>
<info>The prototype of the API is as described below: </info>
<info><ul>
<li id="GUID-D95A74D0-6189-5C1A-B3DF-53994DB83EB2"><codeblock id="GUID-F4B29F0D-1299-53CE-821C-B1C387C50B77" xml:space="preserve">IMPORT_C void SetMasterKey( const CSRTPMasterKey* aKey);
                     
                  </codeblock> <p>This API updates
the master key. </p> <p>aKey is the input parameter that contains the new
master key. </p> </li>
</ul> </info>
</substep>
</substeps>
</step>
</steps>
<result><p>A new master key is returned to the stream or session. </p> <p>SRTP
implementation derives new session keys from the new master key. </p> <p>SRTP
client updates the stream/session cryptographic context with a the new master
key. </p> </result>
</taskbody><related-links>
<link href="GUID-06370120-7738-5694-9A8C-3B5B1E3A4352.dita"><linktext>Creating
an SRTP                 Session</linktext></link>
<link href="GUID-425A208C-5D2D-55FD-8623-9E00006E2781.dita"><linktext>Creating
a                 Cryptographic Context</linktext></link>
<link href="GUID-372B7A9F-261E-5F3F-B114-4BE2FE2EF7C7.dita"><linktext>Creating
an SRTP                 Stream</linktext></link>
<link href="GUID-79846EA2-33CD-5D01-8E96-6092C15BD839.dita"><linktext>Encrypting
                RTCP Packet Data</linktext></link>
<link href="GUID-922F292E-9420-593B-B226-2764C5F29DF9.dita"><linktext>Encrypting
RTP                 Packet Data</linktext></link>
<link href="GUID-6E1AC4C9-7CA3-503A-AFC0-BAF29CCA8290.dita"><linktext>Decrypting
RTP                 Packet Data</linktext></link>
<link href="GUID-F9A24A47-7A0B-5F6E-8B0A-B7A7BCC4EAFC.dita"><linktext>Decrypting
                RTCP Packet Data</linktext></link>
<link href="GUID-F9A24A47-7A0B-5F6E-8B0A-B7A7BCC4EAFC.dita"><linktext>Managing
                Master Key</linktext></link>
</related-links></task>