diff -r 000000000000 -r 2c201484c85f cryptoservices/certificateandkeymgmt/x509/x509keys.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptoservices/certificateandkeymgmt/x509/x509keys.cpp Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,62 @@ +/* +* Copyright (c) 1998-2009 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: +* +* Description: +* +*/ + + +#include +#include +#include +#include + +// TX509KeyEncoder Class Implementation + +TX509KeyEncoder::TX509KeyEncoder(TAlgorithmId aDigestAlg) + : iDigestAlg(aDigestAlg) + { + } + +EXPORT_C CASN1EncSequence* TX509KeyEncoder::EncodeDigestAlgorithmLC() const + { + CASN1EncSequence* digestAlgId = CASN1EncSequence::NewLC(); + + CASN1EncObjectIdentifier* oid = NULL; + + switch (iDigestAlg) + { + case EMD2: + oid = CASN1EncObjectIdentifier::NewLC(KMD2); + break; + + case EMD5: + oid = CASN1EncObjectIdentifier::NewLC(KMD5); + break; + + case ESHA1: + oid = CASN1EncObjectIdentifier::NewLC(KSHA1); + break; + + default: + User::Leave(KErrNotSupported); + break; + } + digestAlgId->AddAndPopChildL(oid); + + // No parameters : NULL + CASN1EncNull* nullparams = CASN1EncNull::NewLC(); + digestAlgId->AddAndPopChildL(nullparams); + + return digestAlgId; + }