1.1.1.7 WDRV_WINC_AUTH_CONTEXT

Struct Type

Summary

Context structure containing information about authentication types.

Description

The context contains the type of authentication as well as any state information.

Remarks

None.

typedef struct
{
    /* Authentication type of context. */
    WDRV_WINC_AUTH_TYPE authType;

    /* Authentication modifiers. */
    WDRV_WINC_AUTH_MOD_MASK authMod;

    /* Union of data structures for each authentication type. */
    union
    {
        /* WEP authentication state. */
        struct
        {
            /* The WEP key index in the range 1-4. */
            uint8_t idx;
            /* The WEP key size is 10 for WEP_40 and 26 for WEP_104. */
            uint8_t size;
            /* The WEP key. */
            uint8_t key[WDRV_WINC_WEP_104_KEY_STRING_SIZE+1];
        } WEP;

        /* WPA-Personal authentication state. */
        struct
        {
            /* The size of the password or PSK, in characters/bytes          */
            /* Size must be in the range 8 to 63 for a WPA(2) password.      */
            /* Size must be 64 for a WPA(2) PSK.                             */
            uint8_t size;
            /* The password or PSK. */
            uint8_t password[WDRV_WINC_PSK_LEN];
        } personal;
#ifdef WDRV_WINC_ENTERPRISE_SUPPORT
         /* 802.1x authentication state. */
        struct
        {
            /* EAP method configured for 802.1X authentication */
            WDRV_WINC_AUTH_1X_METHOD   auth1xMethod;
            struct
            {
                /* Specifies the EAP identity name - [Domain][UserName] or [Username][Domain] */
                char identity[WDRV_WINC_ENT_AUTH_IDENTITY_LEN_MAX+1];
                /* WOLFSSL_CTX handle */
                WDRV_WINC_TLS_CONTEXT_HANDLE tlsCtxHandle;
                /* Server domain name against which either server certificate's subject alternative
                 * name(SAN) or common name(CN) shall be matched for successful enterprise connection */
                char serverDomainName[WDRV_WINC_ENT_AUTH_SERVER_DOMAIN_LEN_MAX + 1];
            } phase1;
            struct
            {
                union
                {
                    struct
                    {
                        /* username for mschapv2 authentication */
                        char username[WDRV_WINC_ENT_AUTH_USERNAME_LEN_MAX + 1];
                        /* password for mschapv2 authentication */
                        char password[WDRV_WINC_ENT_AUTH_PASSWORD_LEN_MAX + 1];
                    } mschapv2;
                } credentials;
            } phase2;
        } enterprise;
#endif
    } authInfo;
} WDRV_WINC_AUTH_CONTEXT;