Symbian3/SDK/Source/GUID-48B61662-0A11-4356-9882-7523B04FFD96.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 12:39:03 +0100
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 13 48780e181b38
permissions -rw-r--r--
Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.

<?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-48B61662-0A11-4356-9882-7523B04FFD96" xml:lang="en"><title>Changing
Passphrase</title><shortdesc>This section explains how to change the passphrase.  </shortdesc><prolog><metadata><keywords/></metadata></prolog><taskbody>
<context><p>The following steps explain the process of changing the passphrase:</p></context>
<steps id="GUID-16DDA72F-9BC5-52FB-A3C6-874815ABF9FC-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2">
<step id="GUID-89755D62-9A44-5F07-9035-6AA97F701C0C-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-1"><cmd>Create a file system
session using an <codeph>RFs</codeph> object. </cmd>
</step>
<step id="GUID-6A14EBD6-AF2D-5CE8-A232-F04B717CA0B3-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-2"><cmd/>
<info>Create an object of type CUnifiedKeyStore using <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-C7A96153-4179-3B3F-878D-1EAA64A98D39"><apiname>CUnifiedKeyStore::NewL()</apiname></xref> or <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-217FBB3B-CEF5-36F2-A612-EDDA0982053C"><apiname>CUnifiedKeyStore::NewLC()</apiname></xref>. </info>
</step>
<step id="GUID-C8F104CE-E857-5615-B847-E3A33EAF7481-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-3"><cmd/>
<info>Initialize the member functions and keystore using the asynchronous
function <xref href="GUID-818689D6-EB99-382E-A435-D9C6C5D464DE.dita#GUID-818689D6-EB99-382E-A435-D9C6C5D464DE/GUID-6C5D732C-1FD1-3EF0-AC90-87690F891B8D"><apiname>CUnifiedKeyStore::Initialize()</apiname></xref>. </info>
</step>
<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-4"><cmd/>
<info>Obtain the authentication object of a key using the <xref href="GUID-7AE17C42-BAD8-3BE9-88A9-D0B066D171F2.dita#GUID-7AE17C42-BAD8-3BE9-88A9-D0B066D171F2/GUID-431CEFD1-5469-33B0-B21B-A535536CE40C"><apiname>CCTKeyInfo::Protector()</apiname></xref> function.</info>
</step>
<step id="GUID-6CF7703F-8CAC-5DC6-9F43-7E2EE3F39895-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-2-5"><cmd/>
<info>Invoke the <xref href="GUID-171BE947-E0D2-3049-85BB-FE2664D3777D.dita"><apiname>ChangeReferenceData()</apiname></xref> function for the
authentication object obtained. The keystore prompts the user to enter the
old and new passphrases.</info>
</step>
</steps>
<result><p>The passphrase is changed for the selected key, if the old passphrase
is entered correctly.</p> </result>
<example id="GUID-C2150584-293D-50CE-8DDC-19B4D55D8B0B-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-4"><title>Example</title> <p>The
following code snippet shows how to set use policy for a key. </p> <codeblock id="GUID-FAD1C292-8E42-5348-B975-3CBA7E8D2820-GENID-1-10-1-24-1-1-8-1-5-1-5-1-5-1-4-1-9-1-3-4-3" xml:space="preserve">// Create a file system session object
RFs iFs;
CleanupClosePushL(&amp;iFs);


...


// Initialise the keystore and member functions
CUnifiedKeyStore* keyStore = CUnifiedKeyStore::NewL(fs);
keyStore-&gt;Initialize(iStatus); //iStatus is a TRequestStatus object


...



// Change the passphrase
void ChangePassphraseL(CCTKeyInfo&amp; aKey)
{
    MCTAuthenticationObject* authObject = aKey.Protector();
    if (authObject == NULL)
        User::Leave(KErrNotSupported);

    authObject-&gt;ChangeReferenceData(iStatus);
    iState = EChangePassphrase;
    SetActive();
}


// Clean up
CleanupStack::PopAndDestroy(); // iFs</codeblock> </example>
</taskbody></task>