ADAC: Add stub close session functionality
Add stub implementation of the psa_adac_close_session command for the
platforms to implement custom terminate session functionality.
Signed-off-by: Maulik Patel <maulik.patel@arm.com>
Change-Id: Id584ee3b6c5f7d177fe38584f266b1f057b690dc
diff --git a/psa-adac/core/include/psa_adac.h b/psa-adac/core/include/psa_adac.h
index 1ed4d5a..2330c5c 100644
--- a/psa-adac/core/include/psa_adac.h
+++ b/psa-adac/core/include/psa_adac.h
@@ -121,6 +121,7 @@
ADAC_DISCOVERY_CMD = 0x01, /**< `Discovery` command */
ADAC_AUTH_START_CMD = 0x02, /**< `Start Authentication` command */
ADAC_AUTH_RESPONSE_CMD = 0x03, /**< `Authentication Response` command */
+ ADAC_CLOSE_SESSION_CMD = 0x04, /**< `Close Session` command */
ADAC_RESUME_CMD = 0x05, /**< `Resume` command */
ADAC_LOCK_DEBUG_CMD = 0x06, /**< `Lock Debug` command */
ADAC_LCS_CHANGE = 0x100, /**< `Change Life-cycle State` command */
diff --git a/psa-adac/sda/src/psa_adac_sda.c b/psa-adac/sda/src/psa_adac_sda.c
index cfeaba2..d8de906 100644
--- a/psa-adac/sda/src/psa_adac_sda.c
+++ b/psa-adac/sda/src/psa_adac_sda.c
@@ -382,13 +382,14 @@
ret = authenticator_send_response(auth_ctx, response);
break;
- /* Send success status but otherwise do nothing. */
- case ADAC_LOCK_DEBUG_CMD:
- PSA_ADAC_LOG_DEBUG("auth", "Lock debug\r\n");
+ /* Send success status and terminate command loop. */
+ case ADAC_CLOSE_SESSION_CMD:
+ PSA_ADAC_LOG_DEBUG("auth", "Terminate session \r\n");
(void) authenticator_request_packet_release(auth_ctx, request);
- psa_adac_platform_lock();
+ psa_adac_close_session();
response = authenticator_response_packet_build(auth_ctx, ADAC_SUCCESS, NULL, 0);
ret = authenticator_send_response(auth_ctx, response);
+ done = 1;
break;
/* Send success status and terminate command loop. */
@@ -401,6 +402,15 @@
done = 1;
break;
+ /* Send success status but otherwise do nothing. */
+ case ADAC_LOCK_DEBUG_CMD:
+ PSA_ADAC_LOG_DEBUG("auth", "Lock debug\r\n");
+ (void) authenticator_request_packet_release(auth_ctx, request);
+ psa_adac_platform_lock();
+ response = authenticator_response_packet_build(auth_ctx, ADAC_SUCCESS, NULL, 0);
+ ret = authenticator_send_response(auth_ctx, response);
+ break;
+
case ADAC_LCS_CHANGE:
PSA_ADAC_LOG_DEBUG("auth", "Change LCS \n");
response = authentication_change_lcs(auth_ctx, request);
diff --git a/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c b/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c
index 9891713..80cccdd 100644
--- a/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c
+++ b/target/trusted-firmware-m/platform/arm/corstone1000/corstone1000.c
@@ -30,7 +30,7 @@
return 0;
}
-void psa_adac_platform_lock(void)
+void psa_adac_close_session(void)
{
/* TODO: Code me */
}
@@ -40,6 +40,11 @@
/* TODO: Code me */
}
+void psa_adac_platform_lock(void)
+{
+ /* TODO: Code me */
+}
+
adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size)
{
/* TODO: Code me */
diff --git a/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h b/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h
index 9172b8f..e99d0d5 100644
--- a/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h
+++ b/target/trusted-firmware-m/platform/arm/corstone1000/include/platform/platform.h
@@ -28,8 +28,9 @@
void platform_init(void);
adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size);
-void psa_adac_platform_lock(void);
+void psa_adac_close_session(void);
void psa_adac_resume(void);
+void psa_adac_platform_lock(void);
void psa_adac_platform_init(void);
int psa_adac_detect_debug_request(void);
void psa_adac_acknowledge_debug_request(void);
diff --git a/target/trusted-firmware-m/platform/arm/musca_b1/include/platform/platform.h b/target/trusted-firmware-m/platform/arm/musca_b1/include/platform/platform.h
index 9c13106..100e774 100644
--- a/target/trusted-firmware-m/platform/arm/musca_b1/include/platform/platform.h
+++ b/target/trusted-firmware-m/platform/arm/musca_b1/include/platform/platform.h
@@ -28,8 +28,9 @@
void platform_init(void);
adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size);
-void psa_adac_platform_lock(void);
+void psa_adac_close_session(void);
void psa_adac_resume(void);
+void psa_adac_platform_lock(void);
int psa_adac_platform_check_token(uint8_t *token, size_t token_size);
int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size);
void psa_adac_platform_init(void);
diff --git a/target/trusted-firmware-m/platform/arm/musca_b1/psa_adac_platform.c b/target/trusted-firmware-m/platform/arm/musca_b1/psa_adac_platform.c
index 156feb2..0556bb9 100644
--- a/target/trusted-firmware-m/platform/arm/musca_b1/psa_adac_platform.c
+++ b/target/trusted-firmware-m/platform/arm/musca_b1/psa_adac_platform.c
@@ -46,7 +46,7 @@
return 0;
}
-void psa_adac_platform_lock(void)
+void psa_adac_close_session(void)
{
/* TODO: Code me */
}
@@ -56,6 +56,11 @@
/* TODO: Code me */
}
+void psa_adac_platform_lock(void)
+{
+ /* TODO: Code me */
+}
+
adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size)
{
/* TODO: Code me */
diff --git a/target/trusted-firmware-m/platform/arm/rse/common/include/platform/platform.h b/target/trusted-firmware-m/platform/arm/rse/common/include/platform/platform.h
index 44ab710..57044f0 100644
--- a/target/trusted-firmware-m/platform/arm/rse/common/include/platform/platform.h
+++ b/target/trusted-firmware-m/platform/arm/rse/common/include/platform/platform.h
@@ -27,8 +27,9 @@
void platform_init(void);
adac_status_t psa_adac_change_life_cycle_state(uint8_t *input, size_t input_size);
-void psa_adac_platform_lock(void);
+void psa_adac_close_session(void);
void psa_adac_resume(void);
+void psa_adac_platform_lock(void);
int psa_adac_platform_check_token(uint8_t *token, size_t token_size);
int psa_adac_platform_check_certificate(uint8_t *crt, size_t crt_size);
void psa_adac_platform_init(void);
diff --git a/target/trusted-firmware-m/platform/arm/rse/common/psa_adac_platform.c b/target/trusted-firmware-m/platform/arm/rse/common/psa_adac_platform.c
index bc75846..2712cf9 100644
--- a/target/trusted-firmware-m/platform/arm/rse/common/psa_adac_platform.c
+++ b/target/trusted-firmware-m/platform/arm/rse/common/psa_adac_platform.c
@@ -58,7 +58,7 @@
return ADAC_UNSUPPORTED;
}
-void psa_adac_platform_lock(void)
+void psa_adac_close_session(void)
{
/* TODO: Code me */
}
@@ -68,6 +68,11 @@
/* TODO: Code me */
}
+void psa_adac_platform_lock(void)
+{
+ /* TODO: Code me */
+}
+
int psa_adac_platform_check_token(uint8_t *token, size_t token_size)
{
/* TODO: Code me */
diff --git a/template_hal_files/target_name.c b/template_hal_files/target_name.c
index eb70cab..8704bd3 100644
--- a/template_hal_files/target_name.c
+++ b/template_hal_files/target_name.c
@@ -28,7 +28,7 @@
return ADAC_UNSUPPORTED;
}
-void psa_adac_platform_lock(void)
+void psa_adac_close_session(void)
{
/* TODO: Code me */
}
@@ -38,6 +38,11 @@
/* TODO: Code me */
}
+void psa_adac_platform_lock(void)
+{
+ /* TODO: Code me */
+}
+
int psa_adac_platform_check_token(uint8_t *token, size_t token_size)
{
/* TODO: Code me */