/*
 * =====================================================================================
 *
 *       Filename:  commandList.h
 *
 *    Description:  Common definitions.
 *
 *        Version:  1.0
 *        Created:  21/08/2019 03:42:11 AM
 *       Compiler:  arm
 *
 *        Company:  Samsung Electronics
 *        Copyright (c) 2017 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */

#ifndef __COMMAND_LIST_H__
#define __COMMAND_LIST_H__

/*******************************************
 *
 * NWD-SWD Command list.
 *
 *******************************************/
// TA Command.
#define CMD_PROV                           0x1000
#define CMD_SKM                            0x2000
#define CMD_KEYMASTER                      0x4000
#define CMD_MASK                           0xF000

// Operation Command
#define CMD_DEVICE_UNBOUND_KEY             0x0010
#define CMD_DEVICE_BOUND_KEY               0x0020
#define CMD_GENERATE_KEY                   0x0030
#define CMD_VERIFY_KEY                     0x0040
#define CMD_GET_INFO                       0x0050

// Prov command.
#define CMD_UNWRAP_DRK_BLOB                CMD_PROV | CMD_DEVICE_UNBOUND_KEY | 0x0001
#define CMD_UNWRAP_GAK_BLOB                CMD_PROV | CMD_DEVICE_UNBOUND_KEY | 0x0002
#define CMD_ENCRYPT_DRK_CSR                CMD_PROV | CMD_DEVICE_BOUND_KEY   | 0x0003
#define CMD_ENCRYPT_SAK_CSR                CMD_PROV | CMD_DEVICE_BOUND_KEY   | 0x0004
#if (defined USE_QSEE) && (defined USE_QSEE_SFS)
#define CMD_SHARE_DRK_KEY                  CMD_PROV | CMD_GET_INFO           | 0x0001
#endif	// End of USE_QSEE && USE_QSEE_SFS
#define CMD_IS_SUPPORTED_DRK_V2            CMD_PROV | CMD_GET_INFO           | 0x0002
#define CMD_VERIFY_SERVICE_KEY             CMD_PROV | CMD_VERIFY_KEY         | 0x0001

// Skm command.
#define CMD_INSTALL_DRK_KEY                CMD_SKM | CMD_DEVICE_UNBOUND_KEY  | 0x0001
#define CMD_MAKE_DRK_CSR                   CMD_SKM | CMD_DEVICE_BOUND_KEY    | 0x0001
#define CMD_INSTALL_DRK_CERT               CMD_SKM | CMD_DEVICE_BOUND_KEY    | 0x0002

// Keymaster.
#define CMD_INSTALL_GA_KEY                 CMD_KEYMASTER | CMD_DEVICE_UNBOUND_KEY | 0x0001
#define CMD_MAKE_SAK_CSR                   CMD_KEYMASTER | CMD_DEVICE_BOUND_KEY   | 0x0002

#if (defined USE_QSEE) && (defined USE_QSEE_SFS)
#define CMD_SHARE_DRK_KEY_V1               0x200
#define CMD_SHARE_DRK_KEY_V0               0xBD
#endif	// End of USE_QSEE && USE_QSEE_SFS

#endif  // End of __COMMAND_LIST_H__
