accesssec_plat/eap_qt_configuration_api/inc/eapqtconfig.h
author hgs
Mon, 24 May 2010 20:32:47 +0300
changeset 26 9abfd4f00d37
child 27 9660a5eb236f
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: 
hgs
parents:
diff changeset
    15
 *   EAP method QT configuration
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/*
hgs
parents:
diff changeset
    20
 * %version: 1 %
hgs
parents:
diff changeset
    21
 */
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#ifndef EAPQTCONFIG_H
hgs
parents:
diff changeset
    24
#define EAPQTCONFIG_H
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include <QList>
hgs
parents:
diff changeset
    27
#include <QVariant>
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
#ifdef BUILD_EAP_QT_CONFIG_INTERFACE_DLL
hgs
parents:
diff changeset
    30
#define EAP_QT_CONFIG_EXPORT Q_DECL_EXPORT
hgs
parents:
diff changeset
    31
#else
hgs
parents:
diff changeset
    32
#define EAP_QT_CONFIG_EXPORT Q_DECL_IMPORT
hgs
parents:
diff changeset
    33
#endif
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
class EapQtConfigPrivate;
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
class EAP_QT_CONFIG_EXPORT EapQtConfig
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
public:
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
    // TODO: document default values
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
    enum SettingsId
hgs
parents:
diff changeset
    44
    {
hgs
parents:
diff changeset
    45
        // see also EapSettings.h
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
        /*! bool */
hgs
parents:
diff changeset
    48
        UsernameAutomatic,
hgs
parents:
diff changeset
    49
        /*! QString */
hgs
parents:
diff changeset
    50
        Username,
hgs
parents:
diff changeset
    51
        /*! bool */
hgs
parents:
diff changeset
    52
        PasswordPrompt,
hgs
parents:
diff changeset
    53
        /*! write-only: QString */
hgs
parents:
diff changeset
    54
        Password,
hgs
parents:
diff changeset
    55
        /*! bool
hgs
parents:
diff changeset
    56
         * in read: defines if password already exists in settings database
hgs
parents:
diff changeset
    57
         * in write: when true, defines that password is not included in the provided
hgs
parents:
diff changeset
    58
         *      configuration since it already exists in settings database, i.e. earlier
hgs
parents:
diff changeset
    59
         *      set password remains unchanged */
hgs
parents:
diff changeset
    60
        PasswordStored,
hgs
parents:
diff changeset
    61
        /*! write-only: bool
hgs
parents:
diff changeset
    62
         * true: clears the password from database
hgs
parents:
diff changeset
    63
         * false: does nothing
hgs
parents:
diff changeset
    64
         */
hgs
parents:
diff changeset
    65
        PasswordClear,
hgs
parents:
diff changeset
    66
        /*! bool */
hgs
parents:
diff changeset
    67
        RealmAutomatic,
hgs
parents:
diff changeset
    68
        /*! QString */
hgs
parents:
diff changeset
    69
        Realm,
hgs
parents:
diff changeset
    70
        /*! bool */
hgs
parents:
diff changeset
    71
        UsePseudonyms,
hgs
parents:
diff changeset
    72
        /*! bool */
hgs
parents:
diff changeset
    73
        VerifyServerRealm,
hgs
parents:
diff changeset
    74
        /*! bool */
hgs
parents:
diff changeset
    75
        ClientAuthenticationRequired,
hgs
parents:
diff changeset
    76
        /*! uint */
hgs
parents:
diff changeset
    77
        SessionValidityTime,
hgs
parents:
diff changeset
    78
        /*! 
hgs
parents:
diff changeset
    79
         * QList<uint> contains RFC numbers for activated ciphersuites
hgs
parents:
diff changeset
    80
         *
hgs
parents:
diff changeset
    81
         * Refer to RFC2246 chapter A.5 for the values.
hgs
parents:
diff changeset
    82
         *
hgs
parents:
diff changeset
    83
         * Supported CipherSuites by EAP Server default implementation: 
hgs
parents:
diff changeset
    84
         * TLS_NULL_WITH_NULL_NULL = (0x0000), 
hgs
parents:
diff changeset
    85
         * - No key exchange, no encryption and no authentication.
hgs
parents:
diff changeset
    86
         * TLS_RSA_WITH_RC4_128_MD5 = (0x0004),
hgs
parents:
diff changeset
    87
         * - RSA key exchange, RC4_128 encryption and MD5 authentication.
hgs
parents:
diff changeset
    88
         *   NOTE this is included only because PEAP requires this cipher 
hgs
parents:
diff changeset
    89
         *   suite as a mandatory. Think carefully whether this meets your 
hgs
parents:
diff changeset
    90
         *   security requirements.
hgs
parents:
diff changeset
    91
         * TLS_RSA_WITH_RC4_128_SHA = (0x0005), 
hgs
parents:
diff changeset
    92
         * - RSA key exchange, RC4_128 encryption and SHA1 authentication.
hgs
parents:
diff changeset
    93
         *   NOTE this is included only because PEAP requires this cipher 
hgs
parents:
diff changeset
    94
         *   suite as a mandatory. Think carefully whether this meets your 
hgs
parents:
diff changeset
    95
         *   security
hgs
parents:
diff changeset
    96
         *   requirements.
hgs
parents:
diff changeset
    97
         * TLS_RSA_WITH_3DES_EDE_CBC_SHA = (0x000a)
hgs
parents:
diff changeset
    98
         * - RSA key exchange, 3DES-EDE-CBC encryption and SHA1 
hgs
parents:
diff changeset
    99
         *   authentication.
hgs
parents:
diff changeset
   100
         * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = (0x0016)
hgs
parents:
diff changeset
   101
         * - Diffie-Helmann RSA key exchange, 3DES-EDE-CBC encryption and SHA1
hgs
parents:
diff changeset
   102
         *   authentication.
hgs
parents:
diff changeset
   103
         * TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = (0x0013)
hgs
parents:
diff changeset
   104
         * - Diffie-Helmann DSS key exchange, 3DES-EDE-CBC encryption and SHA1
hgs
parents:
diff changeset
   105
         *   authentication.
hgs
parents:
diff changeset
   106
         * TLS_RSA_WITH_AES_128_CBC_SHA      = 0x002F
hgs
parents:
diff changeset
   107
         * - RSA key exchange, AES-128 encryption and SHA1 authentication.
hgs
parents:
diff changeset
   108
         * TLS_DHE_DSS_WITH_AES_128_CBC_SHA  = 0x0032
hgs
parents:
diff changeset
   109
         * - Diffie-Helmann DSS key exchange, AES-128-CBC encryption and SHA1
hgs
parents:
diff changeset
   110
         *   authentication.
hgs
parents:
diff changeset
   111
         * TLS_DHE_RSA_WITH_AES_128_CBC_SHA  = 0x0033
hgs
parents:
diff changeset
   112
         * - Diffie-Helmann RSA key exchange, AES-128-CBC encryption and SHA1
hgs
parents:
diff changeset
   113
         *   authentication.
hgs
parents:
diff changeset
   114
         * TLS_DH_anon_WITH_AES_128_CBC_SHA  = 0x0034,
hgs
parents:
diff changeset
   115
         * - Supported when EAP-FAST is supported 
hgs
parents:
diff changeset
   116
         * - Diffie-Helmann anonymous key exchange, AES-128-CBC encryption and 
hgs
parents:
diff changeset
   117
         *   SHA1 authentication.
hgs
parents:
diff changeset
   118
         */
hgs
parents:
diff changeset
   119
        CipherSuites,
hgs
parents:
diff changeset
   120
        /*! bool */
hgs
parents:
diff changeset
   121
        PeapVersion0Allowed,
hgs
parents:
diff changeset
   122
        /*! bool */
hgs
parents:
diff changeset
   123
        PeapVersion1Allowed,
hgs
parents:
diff changeset
   124
        /*! bool */
hgs
parents:
diff changeset
   125
        PeapVersion2Allowed,
hgs
parents:
diff changeset
   126
        /*! QList< QVariant(EapQtCertificateInfo) > */
hgs
parents:
diff changeset
   127
        AuthorityCertificate,
hgs
parents:
diff changeset
   128
        /*! QList< QVariant(EapQtCertificateInfo) > */
hgs
parents:
diff changeset
   129
        UserCertificate,
hgs
parents:
diff changeset
   130
        /*! QList< QVariant(EapQtPluginHandle) > */
hgs
parents:
diff changeset
   131
        InnerType,
hgs
parents:
diff changeset
   132
        /*!  EapQtPluginHandle */
hgs
parents:
diff changeset
   133
        OuterType,
hgs
parents:
diff changeset
   134
        /*! bool */
hgs
parents:
diff changeset
   135
        ProvisioningModeAuthenticated,
hgs
parents:
diff changeset
   136
        /*! bool */
hgs
parents:
diff changeset
   137
        ProvisioningModeUnauthenticated,
hgs
parents:
diff changeset
   138
        /*! QString */
hgs
parents:
diff changeset
   139
        PACGroupReference,
hgs
parents:
diff changeset
   140
        /*! bool */
hgs
parents:
diff changeset
   141
        WarnADHPNoPAC,
hgs
parents:
diff changeset
   142
        /*! bool */
hgs
parents:
diff changeset
   143
        WarnADHPNoMatchingPAC,
hgs
parents:
diff changeset
   144
        /*! bool */
hgs
parents:
diff changeset
   145
        WarnNotDefaultServer,
hgs
parents:
diff changeset
   146
        /*! bool */
hgs
parents:
diff changeset
   147
        UseIdentityPrivacy,
hgs
parents:
diff changeset
   148
        /*! bool */
hgs
parents:
diff changeset
   149
        AuthorityCertificateAutomatic,
hgs
parents:
diff changeset
   150
        /*! marker for the last entry */
hgs
parents:
diff changeset
   151
        SettingsIdLast
hgs
parents:
diff changeset
   152
    };
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
public:
hgs
parents:
diff changeset
   155
    EapQtConfig();
hgs
parents:
diff changeset
   156
    ~EapQtConfig();
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
    QVariant value(SettingsId id);
hgs
parents:
diff changeset
   159
    void setValue(SettingsId id, QVariant newValue);
hgs
parents:
diff changeset
   160
    QList<EapQtConfig::SettingsId> validate(
hgs
parents:
diff changeset
   161
        QList<EapQtConfig::SettingsId> ids);
hgs
parents:
diff changeset
   162
    void clear();
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
private:
hgs
parents:
diff changeset
   165
    Q_DISABLE_COPY(EapQtConfig)
hgs
parents:
diff changeset
   166
    QScopedPointer<EapQtConfigPrivate> d_ptr;
hgs
parents:
diff changeset
   167
};
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
#endif