--- a/eapol/eapol_framework/eapol_symbian/am/common/symbian/EapConversion.cpp Tue Aug 31 15:16:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1860 +0,0 @@
-/*
-* Copyright (c) 2001-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:
-*
-* Description: Conversion functions between common code and Symbian code.
-*
-*/
-
-/*
-* %version: 50 %
-*/
-
-// This is enumeration of EAPOL source code.
-#if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
- #undef EAP_FILE_NUMBER_ENUM
- #define EAP_FILE_NUMBER_ENUM 738
- #undef EAP_FILE_NUMBER_DATE
- #define EAP_FILE_NUMBER_DATE 1127594498
-#endif //#if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
-
-
-// INCLUDE FILES
-
-#include "EapConversion.h"
-#include "eap_am_assert.h"
-#include <EapTypeInfo.h>
-#include "abs_eap_am_tools.h"
-#include "eap_automatic_variable.h"
-#include <utf.h> // for CnvUtfConverter
-#include "abs_eap_plugin_message.h"
-#include "eap_plugin_message_base.h"
-#include "abs_eap_am_message_if.h"
-#include "eap_am_message_if.h"
-#include "eap_automatic_variable.h"
-#include "eap_plugin_client_message_if.h"
-#include "eap_am_message_if_symbian.h"
-#include "EapTraceSymbian.h"
-
-// LOCAL CONSTANTS
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertFromTDesCToInternal(
- abs_eap_am_tools_c * const tools,
- const TDesC & input16,
- eap_variable_data_c * const target8)
-{
- HBufC16* buf16 = HBufC16::New(input16.Length());
- if (buf16 == 0)
- {
- return KErrNoMemory;
- }
-
- buf16->Des().Copy(input16);
-
- TPtr16 inBufPtr16 = buf16->Des();
-
- TInt error = ConvertFromBuf16ToInternal(
- tools,
- &inBufPtr16,
- target8);
-
- delete buf16;
-
- return error;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertCipherSuitesToInternalType(
- abs_eap_am_tools_c * const tools,
- const RArray<TUint> * const aCipherSuites,
- eap_array_c<u16_t> * const internal_cipher_suites)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertCipherSuitesToInternalType()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertCipherSuitesToInternalType()");
-
- eap_status_e status(eap_status_ok);
-
- if (aCipherSuites == 0
- || internal_cipher_suites == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for (TInt ind = 0; ind < aCipherSuites->Count(); ind++)
- {
- u16_t * const tmp_object = new u16_t;
- if (tmp_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
- *tmp_object = static_cast<u16_t>((*aCipherSuites)[ind]);
- status = internal_cipher_suites->add_object(tmp_object, true);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypeToCipherSuites(
- abs_eap_am_tools_c * const tools,
- const eap_array_c<u16_t> * const internal_cipher_suites,
- RArray<TUint> * const aCipherSuites)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertInternalTypeToCipherSuites()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertInternalTypeToCipherSuites()");
-
- if (aCipherSuites == 0
- || internal_cipher_suites == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for (TInt ind = 0; ind < internal_cipher_suites->get_object_count(); ind++)
- {
- const u16_t * const tmp_object = internal_cipher_suites->get_object(ind);
- if (tmp_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- TInt error = aCipherSuites->Append(static_cast<TUint>(*tmp_object));
- if (error != KErrNone)
- {
- return (error);
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertFromInternalToBuf16(
- abs_eap_am_tools_c * const tools,
- const eap_variable_data_c * const input8,
- TDes * const target16)
-{
- EAP_TRACE_DATA_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertFromInternalToBuf16(): input8"),
- input8->get_data(),
- input8->get_data_length()));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertFromInternalToBuf16()");
-
- TPtrC8 inBufPtrC8(input8->get_data(), input8->get_data_length());
-
- // convert utf8 -> unicode,
- // aInBuf8 is UTF8 string, unicode max length is
- // then the length of UTF8 string.
- // NOTE, HBufC16 length means count of 16-bit objects.
- HBufC16 * outBuf16 = HBufC16::New(inBufPtrC8.Size());
- if (outBuf16 == 0)
- {
- EAP_UNREFERENCED_PARAMETER(tools);
- return KErrNoMemory;
- }
-
- TPtr16 outBufPtr16 = outBuf16->Des();
-
- CnvUtfConverter::ConvertToUnicodeFromUtf8(outBufPtr16, inBufPtrC8);
-
- target16->Copy(outBufPtr16);
-
- EAP_TRACE_DATA_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertFromInternalToBuf16(): outBufPtr16"),
- outBufPtr16.Ptr(),
- outBufPtr16.Size()));
-
- delete outBuf16;
- outBuf16 = NULL;
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertFromBuf16ToInternal(
- abs_eap_am_tools_c * const tools,
- const TDes * const input16,
- eap_variable_data_c * const target8)
-{
- EAP_TRACE_DATA_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertFromBuf16ToInternal(): input16"),
- input16->Ptr(),
- input16->Size()));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertFromBuf16ToInternal()");
-
- if (tools == 0)
- {
- return KErrArgument;
- }
-
- // "In UTF-8, characters are encoded using sequences of 1 to 6 octets."
- // RFC2279 - UTF-8
- const TUint KMaxNumberOfOctetsPerUtf8Char = 6;
- // Convert unicode -> utf8.
- // Note, HBufC16 length means the number of 16-bit values or
- // data items represented by the descriptor.
- // Multiply number of charachters by max number of octets for char.
- HBufC8 * aOutBuf8 = HBufC8::New(input16->Length() * KMaxNumberOfOctetsPerUtf8Char);
- if (aOutBuf8 == 0)
- {
- return KErrNoMemory;
- }
-
- TPtr8 outBufPtr8(aOutBuf8->Des());
-
- CnvUtfConverter::ConvertFromUnicodeToUtf8(outBufPtr8, *input16);
-
- eap_status_e status = target8->set_copy_of_buffer(aOutBuf8->Ptr(), aOutBuf8->Length());
-
- delete aOutBuf8;
- aOutBuf8 = NULL;
-
- EAP_TRACE_DATA_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertFromBuf16ToInternal(): target8"),
- target8->get_data(),
- target8->get_data_length()));
-
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertEAPTypesToInternalTypes(
- abs_eap_am_tools_c * const tools,
- const RArray<TUint> * const EncapsulatedEAPTypes,
- eap_array_c<eap_type_value_e> * const target)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertEAPTypesToInternalTypes()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertEAPTypesToInternalTypes()");
-
- eap_status_e status(eap_status_ok);
-
- if (tools == 0)
- {
- return KErrGeneral;
- }
- if (EncapsulatedEAPTypes == 0
- || target == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for (TInt ind = 0; ind < EncapsulatedEAPTypes->Count(); ind++)
- {
- eap_type_value_e * const tmp_object = new eap_type_value_e(
- static_cast<eap_type_ietf_values_e>((*EncapsulatedEAPTypes)[ind]));
- if (tmp_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
- status = target->add_object(tmp_object, true);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypesToEAPTypes(
- abs_eap_am_tools_c * const tools,
- const eap_array_c<eap_type_value_e> * const internal_eap_types,
- RArray<TUint> * const target)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertInternalTypesToEAPTypes()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertInternalTypesToEAPTypes()");
-
- if (internal_eap_types == 0
- || target == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for (TInt ind = 0; ind < internal_eap_types->get_object_count(); ind++)
- {
- const eap_type_value_e * const tmp_object = internal_eap_types->get_object(ind);
- if (tmp_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- TInt error = target->Append(static_cast<TUint>(tmp_object->get_vendor_type()));
- if (error != KErrNone)
- {
- return (error);
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertExpandedEAPTypeToInternalType(
- const TEapExpandedType * const EncapsulatedExpandedEAPType,
- eap_type_value_e * const target)
-{
- EAP_TRACE_DEBUG_SYMBIAN((_L("CEapConversion::ConvertExpandedEAPTypeToInternalType()\n")));
-
- EAP_TRACE_RETURN_STRING_SYMBIAN((_L("returns: CEapConversion::ConvertExpandedEAPTypeToInternalType()\n")));
-
- eap_status_e status = target->set_expanded_type_data(
- 0, // NOTE, we do not have abs_eap_am_tools_c object here.
- EncapsulatedExpandedEAPType->GetValue().Ptr(),
- EncapsulatedExpandedEAPType->GetValue().Length());
- if (status != eap_status_ok)
- {
- return KErrGeneral;
- }
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypeToExpandedEAPType(
- const eap_type_value_e * const source,
- TEapExpandedType * const EncapsulatedExpandedEAPType)
-{
- EAP_TRACE_DEBUG_SYMBIAN((_L("CEapConversion::ConvertInternalTypeToExpandedEAPType()\n")));
-
- EAP_TRACE_RETURN_STRING_SYMBIAN((_L("returns: CEapConversion::ConvertInternalTypeToExpandedEAPType()\n")));
-
- TInt error = EncapsulatedExpandedEAPType->SetValue(
- source->get_vendor_id(),
- source->get_vendor_type());
-
- return error;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertExpandedEAPTypesToInternalTypes(
- abs_eap_am_tools_c * const tools,
- const RArray<TEapExpandedType> * const EncapsulatedExpandedEAPTypes,
- eap_array_c<eap_type_value_e> * const target)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertExpandedEAPTypesToInternalTypes()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertExpandedEAPTypesToInternalTypes()");
-
- eap_status_e status(eap_status_ok);
-
- if (EncapsulatedExpandedEAPTypes == 0
- || target == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for (TInt ind = 0; ind < EncapsulatedExpandedEAPTypes->Count(); ind++)
- {
- TEapExpandedType ExpandedEAPType = (*EncapsulatedExpandedEAPTypes)[ind];
-
- eap_type_value_e * const new_object = new eap_type_value_e();
- if (new_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- TInt error = ConvertExpandedEAPTypeToInternalType(
- &ExpandedEAPType,
- new_object);
- if (error != KErrNone)
- {
- delete new_object;
- (void) EAP_STATUS_RETURN(tools, tools->convert_am_error_to_eapol_error(error));
- return error;
- }
-
- status = target->add_object(new_object, true);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypesToExpandedEAPTypes(
- abs_eap_am_tools_c * const tools,
- const eap_array_c<eap_type_value_e> * const source,
- RArray<TEapExpandedType> * const EncapsulatedExpandedEAPTypes)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertInternalTypesToExpandedEAPTypes()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertInternalTypesToExpandedEAPTypes()");
-
- if (source == 0
- || EncapsulatedExpandedEAPTypes == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- TEapExpandedType EapType;
-
- for (TInt ind = 0; ind < source->get_object_count(); ind++)
- {
- const eap_type_value_e * const tmp_object = source->get_object(ind);
- if (tmp_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- TInt error = ConvertInternalTypeToExpandedEAPType(
- tmp_object,
- &EapType);
- if (error != KErrNone)
- {
- (void) EAP_STATUS_RETURN(tools, tools->convert_am_error_to_eapol_error(error));
- return (error);
- }
-
- error = EncapsulatedExpandedEAPTypes->Append(EapType);
- if (error != KErrNone)
- {
- (void) EAP_STATUS_RETURN(tools, tools->convert_am_error_to_eapol_error(error));
- return (error);
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypesToHBufC8(
- abs_eap_am_tools_c * const tools,
- const eap_array_c<eap_type_value_e> * const source,
- HBufC8 ** const EncapsulatedExpandedEAPTypesData)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertInternalTypesToHBufC8(): EncapsulatedExpandedEAPTypesData=0x%08x, source=0x%08x\n"),
- EncapsulatedExpandedEAPTypesData,
- source));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertInternalTypesToHBufC8()");
-
- if (EncapsulatedExpandedEAPTypesData == 0
- || source == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- *EncapsulatedExpandedEAPTypesData = HBufC8::New(source->get_object_count()*KEapExpandedTypeLength);
-
- eap_automatic_variable_c<HBufC8> automatic_EncapsulatedExpandedEAPTypesData(
- tools,
- *EncapsulatedExpandedEAPTypesData);
-
- TPtr8 aDbBinaryColumnValuePtr = (*EncapsulatedExpandedEAPTypesData)->Des();
-
- TEapExpandedType EapType;
-
- for (u32_t ind = 0; ind < source->get_object_count(); ind++)
- {
- const eap_type_value_e * const tmp_object = source->get_object(ind);
- if (tmp_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- TInt error = ConvertInternalTypeToExpandedEAPType(
- tmp_object,
- &EapType);
- if (error != KErrNone)
- {
- (void) EAP_STATUS_RETURN(tools, tools->convert_am_error_to_eapol_error(error));
- return (error);
- }
-
- aDbBinaryColumnValuePtr.Append(EapType.GetValue());
- }
-
-
- automatic_EncapsulatedExpandedEAPTypesData.do_not_free_variable();
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertHBufC8ToInternalTypes(
- abs_eap_am_tools_c * const tools,
- const HBufC8 * const EncapsulatedExpandedEAPTypesData,
- eap_array_c<eap_type_value_e> * const target)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertHBufC8ToInternalTypes(): EncapsulatedExpandedEAPTypesData=0x%08x, target=0x%08x\n"),
- EncapsulatedExpandedEAPTypesData,
- target));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertHBufC8ToInternalTypes()");
-
- if (EncapsulatedExpandedEAPTypesData == 0
- || target == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- u32_t eap_type_count = EncapsulatedExpandedEAPTypesData->Length() / KEapExpandedTypeLength;
-
- target->reset();
-
- const TUint8 * const data = EncapsulatedExpandedEAPTypesData->Ptr();
- u32_t offset = 0ul;
-
- for (u32_t ind = 0; ind < eap_type_count; ind++)
- {
- eap_type_value_e * const new_object = new eap_type_value_e();
-
- eap_automatic_variable_c<eap_type_value_e> automatic_new_object(
- tools,
- new_object);
-
- if (new_object == 0)
- {
- EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- eap_status_e status = new_object->set_expanded_type_data(
- tools,
- &(data[offset]),
- KEapExpandedTypeLength);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
-
- offset += KEapExpandedTypeLength;
-
- automatic_new_object.do_not_free_variable();
-
- status = target->add_object(new_object, true);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
- }
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertCertificatesToInternalType(
- abs_eap_am_tools_c * const tools,
- const RPointerArray<EapCertificateEntry> * const aCertificates,
- eap_array_c<eap_certificate_entry_c> * const internal_certificates)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertCertificatesToInternalType()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertCertificatesToInternalType()");
-
- eap_status_e status(eap_status_ok);
-
- if (aCertificates == 0
- || internal_certificates == 0)
- {
- EAP_STATIC_ASSERT(eap_certificate_entry_c::eap_certificate_type_CA == static_cast<eap_certificate_entry_c::eap_certificate_type_e>(EapCertificateEntry::ECA));
- EAP_STATIC_ASSERT(eap_certificate_entry_c::eap_certificate_type_user == static_cast<eap_certificate_entry_c::eap_certificate_type_e>(EapCertificateEntry::EUser));
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for( TInt count=0; count < aCertificates->Count(); count++ )
- {
- const EapCertificateEntry * const cert = (*aCertificates)[count];
- if (cert == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- eap_certificate_entry_c * const int_entry = new eap_certificate_entry_c(tools);
-
- eap_automatic_variable_c<eap_certificate_entry_c> automatic_certificate_entry(
- tools,
- int_entry);
-
- if (int_entry == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetCertType() != EapCertificateEntry::EUser
- && cert->GetCertType() != EapCertificateEntry::ECA)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- int_entry->m_CertType = static_cast<eap_certificate_entry_c::eap_certificate_type_e>(cert->GetCertType());
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetSubjectNamePresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetSubjectName(), &(int_entry->m_SubjectName));
-
- int_entry->m_SubjectNamePresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetIssuerNamePresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetIssuerName(), &(int_entry->m_IssuerName));
-
- int_entry->m_IssuerNamePresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetSerialNumberPresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetSerialNumber(), &(int_entry->m_SerialNumber));
-
- int_entry->m_SerialNumberPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetSubjectKeyIdPresent())
- {
- status = int_entry->m_SubjectKeyID.set_copy_of_buffer(cert->GetSubjectKeyId().Ptr(), cert->GetSubjectKeyId().Length());
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
-
- int_entry->m_SubjectKeyIDPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetThumbprintPresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetThumbprint(), &(int_entry->m_Thumbprint));
-
- int_entry->m_ThumbprintPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetLabelPresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetLabel(), &(int_entry->m_Label));
-
- int_entry->m_LabelPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetPrimaryNamePresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetPrimaryName(), &(int_entry->m_PrimaryName));
-
- int_entry->m_PrimaryNamePresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetSecondaryNamePresent())
- {
- ConvertFromBuf16ToInternal(tools, cert->GetSecondaryName(), &(int_entry->m_SecondaryName));
-
- int_entry->m_SecondaryNamePresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (cert->GetIsEnabledPresent())
- {
- if (cert->GetIsEnabled())
- {
- int_entry->m_iIsEnabled = true;
- }
- else
- {
- int_entry->m_iIsEnabled = false;
- }
-
- int_entry->m_iIsEnabledPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- automatic_certificate_entry.do_not_free_variable();
-
- status = internal_certificates->add_object(int_entry, true);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypeToCertificates(
- abs_eap_am_tools_c * const tools,
- const eap_certificate_entry_c::eap_certificate_type_e select_certificate_type,
- const eap_array_c<eap_certificate_entry_c> * const internal_certificates,
- RPointerArray<EapCertificateEntry> * const aCertificates)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertInternalTypeToCertificates()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertInternalTypeToCertificates()");
-
- if (aCertificates == 0
- || internal_certificates == 0)
- {
- EAP_STATIC_ASSERT(eap_certificate_entry_c::eap_certificate_type_CA == static_cast<eap_certificate_entry_c::eap_certificate_type_e>(EapCertificateEntry::ECA));
- EAP_STATIC_ASSERT(eap_certificate_entry_c::eap_certificate_type_user == static_cast<eap_certificate_entry_c::eap_certificate_type_e>(EapCertificateEntry::EUser));
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- for( u32_t count=0; count < internal_certificates->get_object_count(); count++ )
- {
- const eap_certificate_entry_c * const int_entry = internal_certificates->get_object(count);
- if (int_entry == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- if (int_entry->m_CertType == select_certificate_type)
- {
- EapCertificateEntry * cert = new EapCertificateEntry;
-
- eap_automatic_variable_c<EapCertificateEntry> automatic_cert(
- tools,
- cert);
-
- if (cert == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_allocation_error)));
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- cert->SetCertType(static_cast<EapCertificateEntry::TCertType>(int_entry->m_CertType));
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_SubjectNamePresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_SubjectName), cert->GetSubjectNameWritable());
-
- cert->SetSubjectNamePresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_IssuerNamePresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_IssuerName), cert->GetIssuerNameWritable());
-
- cert->SetIssuerNamePresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_SerialNumberPresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_SerialNumber), cert->GetSerialNumberWritable());
-
- cert->SetSerialNumberPresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_SubjectKeyIDPresent == true)
- {
- cert->GetSubjectKeyIdWritable()->Copy(int_entry->m_SubjectKeyID.get_data(), int_entry->m_SubjectKeyID.get_data_length());
-
- cert->SetSubjectKeyIdPresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_ThumbprintPresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_Thumbprint), cert->GetThumbprintWritable());
-
- cert->SetThumbprintPresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_LabelPresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_Label), cert->GetLabelWritable());
-
- cert->SetLabelPresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_PrimaryNamePresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_PrimaryName), cert->GetPrimaryNameWritable());
-
- cert->SetPrimaryNamePresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_SecondaryNamePresent == true)
- {
- ConvertFromInternalToBuf16(tools, &(int_entry->m_SecondaryName), cert->GetSecondaryNameWritable());
-
- cert->SetSecondaryNamePresent();
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (int_entry->m_iIsEnabledPresent == true)
- {
- if (int_entry->m_iIsEnabled == true)
- {
- cert->SetIsEnabled(ETrue);
- }
-
- cert->SetIsEnabledPresent();
- }
-
- EAP_TRACE_SETTINGS(cert);
-
- TInt error = aCertificates->Append(cert);
- if (error != KErrNone)
- {
- aCertificates->ResetAndDestroy(); // ResetAndDestroy() function must be called because the objects represented by the array need to be deleted before the array object is destroyed.
- aCertificates->Close(); // The Close() function must be called before RPointerArray object is destroyed.
-
- (void) EAP_STATUS_RETURN(tools, tools->convert_am_error_to_eapol_error(error));
- return (error);
- }
-
- automatic_cert.do_not_free_variable();
- }
- } // for()
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertEAPSettingsToInternalType(
- abs_eap_am_tools_c * const tools,
- const EAPSettings * const aSettings,
- eap_method_settings_c * const internal_settings)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertEAPSettingsToInternalType()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertEAPSettingsToInternalType()");
-
- if (aSettings == 0
- || internal_settings == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- EAP_TRACE_SETTINGS(aSettings);
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iEAPExpandedType != (*EapExpandedTypeNone.GetType()))
- {
- eap_status_e status = internal_settings->m_EAPType.set_expanded_type_data(
- tools,
- aSettings->iEAPExpandedType.GetValue().Ptr(),
- aSettings->iEAPExpandedType.GetValue().Length());
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUseAutomaticCACertificatePresent)
- {
- internal_settings->m_UseAutomaticCACertificatePresent = true;
-
- if (aSettings->iUseAutomaticCACertificate)
- {
- internal_settings->m_UseAutomaticCACertificate = true;
- }
- else
- {
- internal_settings->m_UseAutomaticCACertificate = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUseAutomaticUsernamePresent)
- {
- internal_settings->m_UseAutomaticUsernamePresent = true;
-
- if (aSettings->iUseAutomaticUsername)
- {
- internal_settings->m_UseAutomaticUsername = true;
- }
- else
- {
- internal_settings->m_UseAutomaticUsername = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUseAutomaticRealmPresent)
- {
- internal_settings->m_UseAutomaticRealmPresent = true;
-
- if (aSettings->iUseAutomaticRealm)
- {
- internal_settings->m_UseAutomaticRealm = true;
- }
- else
- {
- internal_settings->m_UseAutomaticRealm = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUsernamePresent)
- {
- TInt error = ConvertFromBuf16ToInternal(tools, &(aSettings->iUsername), &(internal_settings->m_Username_fix));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_UsernamePresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iPasswordExistPresent)
- {
- internal_settings->m_PasswordExistPresent = true;
-
- if (aSettings->iPasswordExist)
- {
- internal_settings->m_PasswordExist = true;
- }
- else
- {
- internal_settings->m_PasswordExist = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iPasswordPresent)
- {
- TInt error = ConvertFromBuf16ToInternal(tools, &(aSettings->iPassword), &(internal_settings->m_Password));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_PasswordPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iRealmPresent)
- {
- TInt error = ConvertFromBuf16ToInternal(tools, &(aSettings->iRealm), &(internal_settings->m_Realm));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_RealmPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUsePseudonymsPresent)
- {
- internal_settings->m_UsePseudonymsPresent = true;
-
- if (aSettings->iUsePseudonyms)
- {
- internal_settings->m_UsePseudonyms = true;
- }
- else
- {
- internal_settings->m_UsePseudonyms = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iVerifyServerRealmPresent)
- {
- internal_settings->m_VerifyServerRealmPresent = true;
-
- if (aSettings->iVerifyServerRealm)
- {
- internal_settings->m_VerifyServerRealm = true;
- }
- else
- {
- internal_settings->m_VerifyServerRealm = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iRequireClientAuthenticationPresent)
- {
- internal_settings->m_RequireClientAuthenticationPresent = true;
-
- if (aSettings->iRequireClientAuthentication)
- {
- internal_settings->m_RequireClientAuthentication = true;
- }
- else
- {
- internal_settings->m_RequireClientAuthentication = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iSessionValidityTimePresent)
- {
- internal_settings->m_SessionValidityTimePresent = true;
-
- internal_settings->m_SessionValidityTime = static_cast<u32_t>(aSettings->iSessionValidityTime);
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iCipherSuitesPresent)
- {
- TInt error = ConvertCipherSuitesToInternalType(
- tools,
- &(aSettings->iCipherSuites),
- &(internal_settings->m_CipherSuites));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_CipherSuitesPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iPEAPVersionsPresent)
- {
- internal_settings->m_PEAPVersionsPresent = true;
-
- if (aSettings->iPEAPv0Allowed)
- {
- internal_settings->m_PEAPv0Allowed = true;
- }
- else
- {
- internal_settings->m_PEAPv0Allowed = false;
- }
-
- if (aSettings->iPEAPv1Allowed)
- {
- internal_settings->m_PEAPv1Allowed = true;
- }
- else
- {
- internal_settings->m_PEAPv1Allowed = false;
- }
-
- if (aSettings->iPEAPv2Allowed)
- {
- internal_settings->m_PEAPv2Allowed = true;
- }
- else
- {
- internal_settings->m_PEAPv2Allowed = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iCertificatesPresent)
- {
- TInt error = ConvertCertificatesToInternalType(
- tools,
- &(aSettings->iCertificates),
- &(internal_settings->m_Certificates));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_CertificatesPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iEnabledEncapsulatedEAPExpandedTypesPresent)
- {
- TInt error = ConvertExpandedEAPTypesToInternalTypes(
- tools,
- &(aSettings->iEnabledEncapsulatedEAPExpandedTypes),
- &(internal_settings->m_EnabledEncapsulatedEAPTypes));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_EnabledEncapsulatedEAPTypesPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iDisabledEncapsulatedEAPExpandedTypesPresent)
- {
- TInt error = ConvertExpandedEAPTypesToInternalTypes(
- tools,
- &(aSettings->iDisabledEncapsulatedEAPExpandedTypes),
- &(internal_settings->m_DisabledEncapsulatedEAPTypes));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_DisabledEncapsulatedEAPTypesPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iAuthProvModeAllowedPresent)
- {
- internal_settings->m_AuthProvModeAllowedPresent = true;
-
- if (aSettings->iAuthProvModeAllowed)
- {
- internal_settings->m_AuthProvModeAllowed = true;
- }
- else
- {
- internal_settings->m_AuthProvModeAllowed = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUnauthProvModeAllowedPresent)
- {
- internal_settings->m_UnauthProvModeAllowedPresent = true;
-
- if (aSettings->iUnauthProvModeAllowed)
- {
- internal_settings->m_UnauthProvModeAllowed = true;
- }
- else
- {
- internal_settings->m_UnauthProvModeAllowed = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iPACGroupReferencePresent)
- {
- TInt error = ConvertFromBuf16ToInternal(tools, &(aSettings->iPACGroupReference), &(internal_settings->m_PACGroupReference));
- if (error)
- {
- return error;
- }
-
- internal_settings->m_RealmPresent = true;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iWarnADHPNoPACPresent)
- {
- internal_settings->m_WarnADHPNoPACPresent = true;
-
- if (aSettings->iWarnADHPNoPAC)
- {
- internal_settings->m_WarnADHPNoPAC = true;
- }
- else
- {
- internal_settings->m_WarnADHPNoPAC = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iWarnADHPNoMatchingPACPresent)
- {
- internal_settings->m_WarnADHPNoMatchingPACPresent = true;
-
- if (aSettings->iWarnADHPNoMatchingPAC)
- {
- internal_settings->m_WarnADHPNoMatchingPAC = true;
- }
- else
- {
- internal_settings->m_WarnADHPNoMatchingPAC = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iWarnNotDefaultServerPresent)
- {
- internal_settings->m_WarnNotDefaultServerPresent = true;
-
- if (aSettings->iWarnNotDefaultServer)
- {
- internal_settings->m_WarnNotDefaultServer = true;
- }
- else
- {
- internal_settings->m_WarnNotDefaultServer = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iShowPassWordPromptPresent)
- {
- internal_settings->m_ShowPassWordPromptPresent = true;
-
- if (aSettings->iShowPassWordPrompt)
- {
- internal_settings->m_ShowPassWordPrompt = true;
- }
- else
- {
- internal_settings->m_ShowPassWordPrompt = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (aSettings->iUseIdentityPrivacyPresent)
- {
- internal_settings->m_UseIdentityPrivacyPresent = true;
-
- if (aSettings->iUseIdentityPrivacy)
- {
- internal_settings->m_UseIdentityPrivacy = true;
- }
- else
- {
- internal_settings->m_UseIdentityPrivacy = false;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- EAP_TRACE_METHOD_SETTINGS(internal_settings);
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-
-EAP_FUNC_EXPORT TInt CEapConversion::ConvertInternalTypeToEAPSettings(
- abs_eap_am_tools_c * const tools,
- const eap_method_settings_c * const internal_settings,
- EAPSettings * const aSettings)
-{
- EAP_TRACE_DEBUG(
- tools,
- TRACE_FLAGS_DEFAULT,
- (EAPL("CEapConversion::ConvertInternalTypeToEAPSettings()\n")));
-
- EAP_TRACE_RETURN_STRING(tools, "returns: CEapConversion::ConvertInternalTypeToEAPSettings()");
-
- if (aSettings == 0
- || internal_settings == 0)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, eap_status_illegal_parameter)));
- }
-
- EAP_TRACE_METHOD_SETTINGS(internal_settings);
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- {
- eap_variable_data_c eap_data(tools);
-
- eap_status_e status = internal_settings->m_EAPType.get_expanded_type_data(
- tools,
- &eap_data);
- if (status != eap_status_ok)
- {
- return (tools->convert_eapol_error_to_am_error(
- EAP_STATUS_RETURN(tools, status)));
- }
-
- TInt error = aSettings->iEAPExpandedType.SetValue(
- eap_data.get_data(),
- eap_data.get_data_length());
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UseAutomaticCACertificatePresent == true)
- {
- aSettings->iUseAutomaticCACertificatePresent = ETrue;
-
- if (internal_settings->m_UseAutomaticCACertificate == true)
- {
- aSettings->iUseAutomaticCACertificate = ETrue;
- }
- else
- {
- aSettings->iUseAutomaticCACertificate = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UseAutomaticUsernamePresent == true)
- {
- aSettings->iUseAutomaticUsernamePresent = ETrue;
-
- if (internal_settings->m_UseAutomaticUsername == true)
- {
- aSettings->iUseAutomaticUsername = ETrue;
- }
- else
- {
- aSettings->iUseAutomaticUsername = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UseAutomaticRealmPresent == true)
- {
- aSettings->iUseAutomaticRealmPresent = ETrue;
-
- if (internal_settings->m_UseAutomaticRealm == true)
- {
- aSettings->iUseAutomaticRealm = ETrue;
- }
- else
- {
- aSettings->iUseAutomaticRealm = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UsernamePresent == true)
- {
- TInt error = ConvertFromInternalToBuf16(tools, &(internal_settings->m_Username_fix), &(aSettings->iUsername));
- if (error)
- {
- return error;
- }
-
- aSettings->iUsernamePresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_PasswordExistPresent == true)
- {
- aSettings->iPasswordExistPresent = ETrue;
-
- if (internal_settings->m_PasswordExist == true)
- {
- aSettings->iPasswordExist = ETrue;
- }
- else
- {
- aSettings->iPasswordExist = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_PasswordPresent == true)
- {
- TInt error = ConvertFromInternalToBuf16(tools, &(internal_settings->m_Password), &(aSettings->iPassword));
- if (error)
- {
- return error;
- }
-
- aSettings->iPasswordPresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_RealmPresent == true)
- {
- TInt error = ConvertFromInternalToBuf16(tools, &(internal_settings->m_Realm), &(aSettings->iRealm));
- if (error)
- {
- return error;
- }
-
- aSettings->iRealmPresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UsePseudonymsPresent == true)
- {
- aSettings->iUsePseudonymsPresent = ETrue;
-
- if (internal_settings->m_UsePseudonyms == true)
- {
- aSettings->iUsePseudonyms = ETrue;
- }
- else
- {
- aSettings->iUsePseudonyms = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_VerifyServerRealmPresent == true)
- {
- aSettings->iVerifyServerRealmPresent = ETrue;
-
- if (internal_settings->m_VerifyServerRealm == true)
- {
- aSettings->iVerifyServerRealm = ETrue;
- }
- else
- {
- aSettings->iVerifyServerRealm = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_RequireClientAuthenticationPresent == true)
- {
- aSettings->iRequireClientAuthenticationPresent = ETrue;
-
- if (internal_settings->m_RequireClientAuthentication == true)
- {
- aSettings->iRequireClientAuthentication = ETrue;
- }
- else
- {
- aSettings->iRequireClientAuthentication = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_SessionValidityTimePresent == true)
- {
- aSettings->iSessionValidityTimePresent = ETrue;
-
- aSettings->iSessionValidityTime = static_cast<TUint>(internal_settings->m_SessionValidityTime);
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_CipherSuitesPresent == true)
- {
- TInt error = ConvertInternalTypeToCipherSuites(
- tools,
- &(internal_settings->m_CipherSuites),
- &(aSettings->iCipherSuites));
- if (error)
- {
- return error;
- }
-
- aSettings->iCipherSuitesPresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_PEAPVersionsPresent == true)
- {
- aSettings->iPEAPVersionsPresent = ETrue;
-
- if (internal_settings->m_PEAPv0Allowed == true)
- {
- aSettings->iPEAPv0Allowed = ETrue;
- }
- else
- {
- aSettings->iPEAPv0Allowed = EFalse;
- }
-
- if (internal_settings->m_PEAPv1Allowed == true)
- {
- aSettings->iPEAPv1Allowed = ETrue;
- }
- else
- {
- aSettings->iPEAPv1Allowed = EFalse;
- }
-
- if (internal_settings->m_PEAPv2Allowed == true)
- {
- aSettings->iPEAPv2Allowed = ETrue;
- }
- else
- {
- aSettings->iPEAPv2Allowed = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_CertificatesPresent == true)
- {
- TInt error = KErrNone;
-
- error = ConvertInternalTypeToCertificates(
- tools,
- eap_certificate_entry_c::eap_certificate_type_user,
- &(internal_settings->m_Certificates),
- &(aSettings->iCertificates));
-
- if (error)
- {
- return error;
- }
-
- error = ConvertInternalTypeToCertificates(
- tools,
- eap_certificate_entry_c::eap_certificate_type_CA,
- &(internal_settings->m_Certificates),
- &(aSettings->iCertificates));
-
- if (error)
- {
- return error;
- }
-
- aSettings->iCertificatesPresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_EnabledEncapsulatedEAPTypesPresent == true)
- {
- TInt error = ConvertInternalTypesToExpandedEAPTypes(
- tools,
- &(internal_settings->m_EnabledEncapsulatedEAPTypes),
- &(aSettings->iEnabledEncapsulatedEAPExpandedTypes));
- if (error)
- {
- return error;
- }
-
- aSettings->iEnabledEncapsulatedEAPExpandedTypesPresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_DisabledEncapsulatedEAPTypesPresent == true)
- {
- TInt error = ConvertInternalTypesToExpandedEAPTypes(
- tools,
- &(internal_settings->m_DisabledEncapsulatedEAPTypes),
- &(aSettings->iDisabledEncapsulatedEAPExpandedTypes));
- if (error)
- {
- return error;
- }
-
- aSettings->iDisabledEncapsulatedEAPExpandedTypesPresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_AuthProvModeAllowedPresent == true)
- {
- aSettings->iAuthProvModeAllowedPresent = ETrue;
-
- if (internal_settings->m_AuthProvModeAllowed == true)
- {
- aSettings->iAuthProvModeAllowed = ETrue;
- }
- else
- {
- aSettings->iAuthProvModeAllowed = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UnauthProvModeAllowedPresent == true)
- {
- aSettings->iUnauthProvModeAllowedPresent = ETrue;
-
- if (internal_settings->m_UnauthProvModeAllowed == true)
- {
- aSettings->iUnauthProvModeAllowed = ETrue;
- }
- else
- {
- aSettings->iUnauthProvModeAllowed = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_PACGroupReferencePresent == true)
- {
- TInt error = ConvertFromInternalToBuf16(tools, &(internal_settings->m_PACGroupReference), &(aSettings->iPACGroupReference));
- if (error)
- {
- return error;
- }
-
- aSettings->iPACGroupReferencePresent = ETrue;
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_WarnADHPNoPACPresent == true)
- {
- aSettings->iWarnADHPNoPACPresent = ETrue;
-
- if (internal_settings->m_WarnADHPNoPAC == true)
- {
- aSettings->iWarnADHPNoPAC = ETrue;
- }
- else
- {
- aSettings->iWarnADHPNoPAC = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_WarnADHPNoMatchingPACPresent == true)
- {
- aSettings->iWarnADHPNoMatchingPACPresent = ETrue;
-
- if (internal_settings->m_WarnADHPNoMatchingPAC == true)
- {
- aSettings->iWarnADHPNoMatchingPAC = ETrue;
- }
- else
- {
- aSettings->iWarnADHPNoMatchingPAC = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_WarnNotDefaultServerPresent == true)
- {
- aSettings->iWarnNotDefaultServerPresent = ETrue;
-
- if (internal_settings->m_WarnNotDefaultServer == true)
- {
- aSettings->iWarnNotDefaultServer = ETrue;
- }
- else
- {
- aSettings->iWarnNotDefaultServer = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_ShowPassWordPromptPresent == true)
- {
- aSettings->iShowPassWordPromptPresent = ETrue;
-
- if (internal_settings->m_ShowPassWordPrompt == true)
- {
- aSettings->iShowPassWordPrompt = ETrue;
- }
- else
- {
- aSettings->iShowPassWordPrompt = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- if (internal_settings->m_UseIdentityPrivacyPresent == true)
- {
- aSettings->iUseIdentityPrivacyPresent = ETrue;
-
- if (internal_settings->m_UseIdentityPrivacy == true)
- {
- aSettings->iUseIdentityPrivacy = ETrue;
- }
- else
- {
- aSettings->iUseIdentityPrivacy = EFalse;
- }
- }
-
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- EAP_TRACE_SETTINGS(aSettings);
-
- return KErrNone;
-}
-
-// ----------------------------------------------------------
-// End of file