diff -r 000000000000 -r 33413c0669b9 vpnengine/dmadpki/src/dmadstorepkcs12.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vpnengine/dmadpki/src/dmadstorepkcs12.cpp Thu Dec 17 09:14:51 2009 +0200 @@ -0,0 +1,96 @@ +/* +* Copyright (c) 2002-2008 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: implementation of CDmAdPKCS12 +* +*/ + + + +#include "dmadutil.h" +#include "dmadstorepkcs12.h" +#include "vpnlogger.h" +#include "dmadcertxmldefs.h" +#include "XppImpl.h" +#include "XwImpl.h" +#include "pkcs12vpn.h" + +#include + +CDmAdPKCS12* CDmAdPKCS12::NewL(RPKIServiceAPI& aPkiServiceApi) + { + TRACE("CDmAdPKCS12::NewL"); + + CDmAdPKCS12* self = NewLC(aPkiServiceApi); + CleanupStack::Pop(self); + return self; + } + +CDmAdPKCS12* CDmAdPKCS12::NewLC(RPKIServiceAPI& aPkiServiceApi) + { + CDmAdPKCS12* self = new (ELeave) CDmAdPKCS12(aPkiServiceApi); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +void CDmAdPKCS12::ConstructL() + { + TRACE("CDmAdPKCS12::ConstructL"); + } + +CDmAdPKCS12::CDmAdPKCS12(RPKIServiceAPI& aPkiServiceApi) : iPkiServiceApi(&aPkiServiceApi) + { + } + +CDmAdPKCS12::~CDmAdPKCS12() + { + TRACE("CDmAdPKCS12::~CDmAdPKCS12"); + } + +HBufC8* CDmAdPKCS12::AddL(const CDmAdPKCS12Parms& aParms) + { + TRACE("CDmAdPKCS12::AddL"); + + DEBUG_LOG(_L("Instantiating pkcs12handler")); + CPKCS12Handler* pkcs12handler = CPKCS12Handler::NewLC(*iPkiServiceApi); + + DEBUG_LOG(_L("Setting deletable")); + pkcs12handler->SetDeletable(aParms.Deletable()); + + DEBUG_LOG(_L("Setting applicability")); + pkcs12handler->SetApplicability(aParms.Applicability()); + + HBufC* pwd(NULL); + if (aParms.Password().Length() == 0) + { + DEBUG_LOG(_L("Password length is zero, no password given")); + pwd = HBufC::NewLC(0); + } + else + { + DEBUG_LOG(_L("Converting password to 16bit base")); + pwd = HBufC::NewLC(aParms.Password().Length()); + pwd->Des().Copy(aParms.Password()); + } + + DEBUG_LOG(_L("Storing pkcs12 object")); + pkcs12handler->StorePKCS12ObjectL(aParms.Content(), *pwd); + + DEBUG_LOG(_L("Freeing handler resources")); + + CleanupStack::PopAndDestroy(2, pkcs12handler); + + return NULL; + } +