This section explains the steps to export a private key from the keystore. Private keys can be exported in plain text and encrypted formats.
The following steps explain the process of exporting a private key:
A private key is exported in plain text or encrypted format.
The following code snippet shows how to set a file system session object, list the keys in the keystore and then export the selected private key in plain text format.
//Create a file system session object
RFs iFs;
CleanupClosePushL(&iFs);
//Initialise the keystore and member functions
CUnifiedKeyStore* keyStore = CUnifiedKeyStore::NewL(iFs);
keyStore->Initialize(iStatus); //iStatus is a TRequestStatus object
//List the keys of the keystore
RPointerArray<CCTKeyInfo> iKeys; //This variable will contain the result after the completion of the export operation
TCTKeyAttributeFilter filter.iUsage = EPKCS15UsageAll;
keyStore->List(iKeys, filter, iStatus);
...
//Retrieve the handle of the private key to be exported
_LIT(KLabel,”keylabel”);
TInt keyIndex;
//Select the key
for (TInt j = 0; j < iKeys.Count(); j++)
{
if (iKeys[j]->Label() == KLabel)
{
keyIndex = j;
break;
}
}
...
//Export the key
HBufC8* iKeyData = NULL;
TCTTokenObjectHandle aHandle = iKeys[keyIndex]->Handle();
keyStore->ExportKey(aHandle, iKeyData, iStatus);
//Clean up
CleanupStack::PopAndDestroy(); // iFs
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.