/** @file
  Define IFR NVData structures used by the WiFi Connection Manager.

  Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#pragma once

#include <Guid/WifiConnectionManagerConfigHii.h>
#include "WifiConnectionMgrConfigHii.h"

#define MANAGER_VARSTORE_ID  0x0802

#define WIFI_STR_MAX_SIZE            224
#define WIFI_FILENAME_STR_MAX_SIZE   224
#define WIFI_MGR_MAX_MAC_STRING_LEN  96

#define SSID_MIN_LEN       1
#define SSID_MAX_LEN       32
#define SSID_STORAGE_SIZE  33

#define PASSWORD_MIN_LEN       8
#define PASSWORD_MAX_LEN       63
#define PASSWORD_STORAGE_SIZE  65

#define EAP_IDENTITY_LEN   63
#define EAP_IDENTITY_SIZE  64

#define FORMID_NONE_FORM            0
#define FORMID_MAC_SELECTION        1
#define FORMID_WIFI_MAINPAGE        2
#define FORMID_NETWORK_LIST         3
#define FORMID_CONNECT_NETWORK      4
#define FORMID_ENROLL_CERT          5
#define FORMID_CA_LIST              6
#define FORMID_ENROLL_PRIVATE_KEY   7
#define FORMID_PRIVATE_KEY_LIST     8
#define FORMID_WIFI_SETTINGS        9
#define FORMID_HIDDEN_NETWORK_LIST  10

//
// Mac List Form Key
//
#define KEY_MAC_LIST  0x100

//
// Main Form Key
//
#define KEY_REFRESH_TITLE_CONNECTION_STATUS  0x101

//
// Network List Form Key
//
#define KEY_NETWORK_LIST          0x102
#define KEY_REFRESH_NETWORK_LIST  0x103
#define KEY_WIFI_SETTINGS         0x104

//
// Connect Network Form Key
//
#define KEY_PASSWORD_CONNECT_NETWORK            0x201
#define KEY_CONNECT_ACTION                      0x202
#define KEY_REFRESH_CONNECT_CONFIGURATION       0x203
#define KEY_EAP_AUTH_METHOD_CONNECT_NETWORK     0x204
#define KEY_EAP_SEAUTH_METHOD_CONNECT_NETWORK   0x205
#define KEY_ENROLL_CA_CERT_CONNECT_NETWORK      0x206
#define KEY_ENROLL_CLIENT_CERT_CONNECT_NETWORK  0x207
#define KEY_ENROLL_PRIVATE_KEY_CONNECT_NETWORK  0x208
#define KEY_EAP_IDENTITY_CONNECT_NETWORK        0x209
#define KEY_EAP_PASSWORD_CONNECT_NETWORK        0x210

//
// Cert Form And Private Key Form
//
#define KEY_EAP_ENROLL_CERT_FROM_FILE         0x301
#define KEY_EAP_ENROLL_PRIVATE_KEY_FROM_FILE  0x302
#define KEY_SAVE_CERT_TO_MEM                  0x303
#define KEY_NO_SAVE_CERT_TO_MEM               0x304
#define KEY_SAVE_PRIVATE_KEY_TO_MEM           0x305
#define KEY_NO_SAVE_PRIVATE_KEY_TO_MEM        0x306
#define KEY_PRIVATE_KEY_PASSWORD              0x307
#define KEY_ENROLLED_CERT_NAME                0x308
#define KEY_ENROLLED_PRIVATE_KEY_NAME         0x309

//
// Hidden Network Configuration Form
//
#define KEY_HIDDEN_NETWORK         0x401
#define KEY_ADD_HIDDEN_NETWORK     0x402
#define KEY_REMOVE_HIDDEN_NETWORK  0x403

//
// Dynamic Lists
//
#define MAC_LIST_COUNT_MAX  255
#define LABEL_MAC_ENTRY     0x1000
#define KEY_MAC_ENTRY_BASE  0x1100

#define NETWORK_LIST_COUNT_MAX            4095
#define LABEL_NETWORK_LIST_ENTRY          0x2000
#define KEY_AVAILABLE_NETWORK_ENTRY_BASE  0x3000

#define HIDDEN_NETWORK_LIST_COUNT_MAX  255
#define LABEL_HIDDEN_NETWORK_ENTRY     0x4000
#define KEY_HIDDEN_NETWORK_ENTRY_BASE  0x4100

#define LABEL_END  0xffff

//
// Network Security Type
//
#define SECURITY_TYPE_NONE             0
#define SECURITY_TYPE_WPA_ENTERPRISE   1
#define SECURITY_TYPE_WPA2_ENTERPRISE  2
#define SECURITY_TYPE_WPA_PERSONAL     3
#define SECURITY_TYPE_WPA2_PERSONAL    4
#define SECURITY_TYPE_WEP              5
#define SECURITY_TYPE_WPA3_PERSONAL    6
#define SECURITY_TYPE_WPA3_ENTERPRISE  7
#define SECURITY_TYPE_UNKNOWN          8
#define SECURITY_TYPE_MAX              9

#define EAP_AUTH_METHOD_TTLS  0
#define EAP_AUTH_METHOD_PEAP  1
#define EAP_AUTH_METHOD_TLS   2
#define EAP_AUTH_METHOD_MAX   3

#define EAP_SEAUTH_METHOD_MSCHAPV2  0
#define EAP_SEAUTH_METHOD_MAX       1

#define HIDDEN_NETWORK_LIST_VAR_OFFSET  ((UINT16) OFFSET_OF (WIFI_MANAGER_IFR_NVDATA, HiddenNetworkList))

#pragma pack(1)
typedef struct _WIFI_MANAGER_IFR_NVDATA {
  UINT32    ProfileCount;
  CHAR16    SSId[SSID_STORAGE_SIZE];
  CHAR16    Password[PASSWORD_STORAGE_SIZE];
  CHAR16    PrivateKeyPassword[PASSWORD_STORAGE_SIZE];
  CHAR16    EapIdentity[EAP_IDENTITY_SIZE];
  CHAR16    EapPassword[PASSWORD_STORAGE_SIZE];
  UINT8     SecurityType;
  UINT8     EapAuthMethod;
  UINT8     EapSecondAuthMethod;
  UINT8     HiddenNetworkList[HIDDEN_NETWORK_LIST_COUNT_MAX];
} WIFI_MANAGER_IFR_NVDATA;
#pragma pack()
