/** @file
  Header file for NV data structure definition.

Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef __TLS_AUTH_CONFIG_NV_DATA_H__
#define __TLS_AUTH_CONFIG_NV_DATA_H__

#include <Guid/TlsAuthConfigHii.h>

#define TLS_AUTH_CONFIG_GUID_SIZE          36
#define TLS_AUTH_CONFIG_GUID_STORAGE_SIZE  37

#define TLS_AUTH_CONFIG_FORMID1_FORM  1
#define TLS_AUTH_CONFIG_FORMID2_FORM  2
#define TLS_AUTH_CONFIG_FORMID3_FORM  3
#define TLS_AUTH_CONFIG_FORMID4_FORM  4
#define TLS_AUTH_CONFIG_FORMID5_FORM  5

#define KEY_TLS_AUTH_CONFIG_SERVER_CA               0x1000
#define KEY_TLS_AUTH_CONFIG_CLIENT_CERT             0x1001
#define KEY_TLS_AUTH_CONFIG_ENROLL_CERT             0x1002
#define KEY_TLS_AUTH_CONFIG_DELETE_CERT             0x1003
#define KEY_TLS_AUTH_CONFIG_ENROLL_CERT_FROM_FILE   0x1004
#define KEY_TLS_AUTH_CONFIG_CERT_GUID               0x1005
#define KEY_TLS_AUTH_CONFIG_VALUE_SAVE_AND_EXIT     0x1006
#define KEY_TLS_AUTH_CONFIG_VALUE_NO_SAVE_AND_EXIT  0x1007

#define OPTION_DEL_CA_ESTION_ID  0x2000
#define OPTION_CONFIG_RANGE      0x1000

#define LABEL_CA_DELETE  0x1101
#define LABEL_END        0xffff

typedef struct {
  CHAR16    CertGuid[TLS_AUTH_CONFIG_GUID_STORAGE_SIZE];
} TLS_AUTH_CONFIG_IFR_NVDATA;

#endif
