aboutsummaryrefslogtreecommitdiff
path: root/lib/libutee
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libutee')
-rw-r--r--lib/libutee/arch/arm/utee_syscalls_asm.S43
-rw-r--r--lib/libutee/include/tee_internal_se_api.h56
-rw-r--r--lib/libutee/include/tee_syscall_numbers.h32
-rw-r--r--lib/libutee/sub.mk1
-rw-r--r--lib/libutee/tee_api_se.c270
5 files changed, 17 insertions, 385 deletions
diff --git a/lib/libutee/arch/arm/utee_syscalls_asm.S b/lib/libutee/arch/arm/utee_syscalls_asm.S
index b2615971..7cf08942 100644
--- a/lib/libutee/arch/arm/utee_syscalls_asm.S
+++ b/lib/libutee/arch/arm/utee_syscalls_asm.S
@@ -121,47 +121,4 @@
UTEE_SYSCALL utee_cryp_obj_generate_key, \
TEE_SCN_CRYP_OBJ_GENERATE_KEY, 4
- UTEE_SYSCALL utee_se_service_open, TEE_SCN_SE_SERVICE_OPEN, 1
-
- UTEE_SYSCALL utee_se_service_close, TEE_SCN_SE_SERVICE_CLOSE, 1
-
- UTEE_SYSCALL utee_se_service_get_readers, \
- TEE_SCN_SE_SERVICE_GET_READERS, 3
-
- UTEE_SYSCALL utee_se_reader_get_prop, \
- TEE_SCN_SE_READER_GET_PROP, 2
-
- UTEE_SYSCALL utee_se_reader_get_name, \
- TEE_SCN_SE_READER_GET_NAME, 3
-
- UTEE_SYSCALL utee_se_reader_open_session, \
- TEE_SCN_SE_READER_OPEN_SESSION, 2
-
- UTEE_SYSCALL utee_se_reader_close_sessions, \
- TEE_SCN_SE_READER_CLOSE_SESSIONS, 1
-
- UTEE_SYSCALL utee_se_session_is_closed, \
- TEE_SCN_SE_SESSION_IS_CLOSED, 1
-
- UTEE_SYSCALL utee_se_session_get_atr, \
- TEE_SCN_SE_SESSION_GET_ATR, 3
-
- UTEE_SYSCALL utee_se_session_open_channel, \
- TEE_SCN_SE_SESSION_OPEN_CHANNEL, 5
-
- UTEE_SYSCALL utee_se_session_close, \
- TEE_SCN_SE_SESSION_CLOSE, 1
-
- UTEE_SYSCALL utee_se_channel_select_next, \
- TEE_SCN_SE_CHANNEL_SELECT_NEXT, 1
-
- UTEE_SYSCALL utee_se_channel_get_select_resp, \
- TEE_SCN_SE_CHANNEL_GET_SELECT_RESP, 3
-
- UTEE_SYSCALL utee_se_channel_transmit, \
- TEE_SCN_SE_CHANNEL_TRANSMIT, 5
-
- UTEE_SYSCALL utee_se_channel_close, \
- TEE_SCN_SE_CHANNEL_CLOSE, 1
-
UTEE_SYSCALL utee_cache_operation, TEE_SCN_CACHE_OPERATION, 3
diff --git a/lib/libutee/include/tee_internal_se_api.h b/lib/libutee/include/tee_internal_se_api.h
deleted file mode 100644
index 094da70f..00000000
--- a/lib/libutee/include/tee_internal_se_api.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* SPDX-License-Identifier: BSD-2-Clause */
-/*
- * Copyright (c) 2014, Linaro Limited
- */
-
-/* Based on GP TEE Secure Element API Specification Version 1.00 */
-#ifndef TEE_INTERNAL_SE_API_H
-#define TEE_INTERNAL_SE_API_H
-
-#include <tee_api_defines.h>
-#include <tee_api_types.h>
-
-TEE_Result TEE_SEServiceOpen(TEE_SEServiceHandle *seServiceHandle);
-
-void TEE_SEServiceClose(TEE_SEServiceHandle seServiceHandle);
-
-TEE_Result TEE_SEServiceGetReaders(
- TEE_SEServiceHandle seServiceHandle,
- TEE_SEReaderHandle *seReaderHandleList,
- size_t *seReaderHandleListLen);
-
-void TEE_SEReaderGetProperties(TEE_SEReaderHandle seReaderHandle,
- TEE_SEReaderProperties *readerProperties);
-
-TEE_Result TEE_SEReaderGetName(TEE_SEReaderHandle seReaderHandle,
- char *readerName, size_t *readerNameLen);
-
-TEE_Result TEE_SEReaderOpenSession(TEE_SEReaderHandle seReaderHandle,
- TEE_SESessionHandle *seSessionHandle);
-
-void TEE_SEReaderCloseSessions(TEE_SEReaderHandle seReaderHandle);
-
-TEE_Result TEE_SESessionGetATR(TEE_SESessionHandle seSessionHandle,
- void *atr, size_t *atrLen);
-
-TEE_Result TEE_SESessionIsClosed(TEE_SESessionHandle seSessionHandle);
-
-void TEE_SESessionClose(TEE_SESessionHandle seSessionHandle);
-
-TEE_Result TEE_SESessionOpenBasicChannel(TEE_SESessionHandle seSessionHandle,
- TEE_SEAID *seAID, TEE_SEChannelHandle *seChannelHandle);
-
-TEE_Result TEE_SESessionOpenLogicalChannel(TEE_SESessionHandle seSessionHandle,
- TEE_SEAID *seAID, TEE_SEChannelHandle *seChannelHandle);
-
-TEE_Result TEE_SEChannelSelectNext(TEE_SEChannelHandle seChannelHandle);
-
-TEE_Result TEE_SEChannelGetSelectResponse(TEE_SEChannelHandle seChannelHandle,
- void *response, size_t *responseLen);
-
-TEE_Result TEE_SEChannelTransmit(TEE_SEChannelHandle seChannelHandle,
- void *command, size_t commandLen,
- void *response, size_t *responseLen);
-
-void TEE_SEChannelClose(TEE_SEChannelHandle seChannelHandle);
-#endif
diff --git a/lib/libutee/include/tee_syscall_numbers.h b/lib/libutee/include/tee_syscall_numbers.h
index 0e3afd9f..82d429b3 100644
--- a/lib/libutee/include/tee_syscall_numbers.h
+++ b/lib/libutee/include/tee_syscall_numbers.h
@@ -61,21 +61,23 @@
#define TEE_SCN_STORAGE_OBJ_TRUNC 52
#define TEE_SCN_STORAGE_OBJ_SEEK 53
#define TEE_SCN_CRYP_OBJ_GENERATE_KEY 54
-#define TEE_SCN_SE_SERVICE_OPEN 55
-#define TEE_SCN_SE_SERVICE_CLOSE 56
-#define TEE_SCN_SE_SERVICE_GET_READERS 57
-#define TEE_SCN_SE_READER_GET_PROP 58
-#define TEE_SCN_SE_READER_GET_NAME 59
-#define TEE_SCN_SE_READER_OPEN_SESSION 60
-#define TEE_SCN_SE_READER_CLOSE_SESSIONS 61
-#define TEE_SCN_SE_SESSION_IS_CLOSED 62
-#define TEE_SCN_SE_SESSION_GET_ATR 63
-#define TEE_SCN_SE_SESSION_OPEN_CHANNEL 64
-#define TEE_SCN_SE_SESSION_CLOSE 65
-#define TEE_SCN_SE_CHANNEL_SELECT_NEXT 66
-#define TEE_SCN_SE_CHANNEL_GET_SELECT_RESP 67
-#define TEE_SCN_SE_CHANNEL_TRANSMIT 68
-#define TEE_SCN_SE_CHANNEL_CLOSE 69
+/* Deprecated Secure Element API syscalls return TEE_ERROR_NOT_SUPPORTED */
+#define TEE_SCN_SE_SERVICE_OPEN__DEPRECATED 55
+#define TEE_SCN_SE_SERVICE_CLOSE__DEPRECATED 56
+#define TEE_SCN_SE_SERVICE_GET_READERS__DEPRECATED 57
+#define TEE_SCN_SE_READER_GET_PROP__DEPRECATED 58
+#define TEE_SCN_SE_READER_GET_NAME__DEPRECATED 59
+#define TEE_SCN_SE_READER_OPEN_SESSION__DEPRECATED 60
+#define TEE_SCN_SE_READER_CLOSE_SESSIONS__DEPRECATED 61
+#define TEE_SCN_SE_SESSION_IS_CLOSED__DEPRECATED 62
+#define TEE_SCN_SE_SESSION_GET_ATR__DEPRECATED 63
+#define TEE_SCN_SE_SESSION_OPEN_CHANNEL__DEPRECATED 64
+#define TEE_SCN_SE_SESSION_CLOSE__DEPRECATED 65
+#define TEE_SCN_SE_CHANNEL_SELECT_NEXT__DEPRECATED 66
+#define TEE_SCN_SE_CHANNEL_GET_SELECT_RESP__DEPRECATED 67
+#define TEE_SCN_SE_CHANNEL_TRANSMIT__DEPRECATED 68
+#define TEE_SCN_SE_CHANNEL_CLOSE__DEPRECATED 69
+/* End of deprecated Secure Element API syscalls */
#define TEE_SCN_CACHE_OPERATION 70
#define TEE_SCN_MAX 70
diff --git a/lib/libutee/sub.mk b/lib/libutee/sub.mk
index a9bb3279..c608d5d5 100644
--- a/lib/libutee/sub.mk
+++ b/lib/libutee/sub.mk
@@ -9,7 +9,6 @@ srcs-y += tee_api_arith.c
srcs-y += tee_api.c
srcs-y += tee_api_objects.c
srcs-y += tee_api_operations.c
-srcs-y += tee_api_se.c
srcs-y += tee_api_panic.c
srcs-y += tee_tcpudp_socket.c
srcs-y += tee_socket_pta.c
diff --git a/lib/libutee/tee_api_se.c b/lib/libutee/tee_api_se.c
deleted file mode 100644
index 6b3f026f..00000000
--- a/lib/libutee/tee_api_se.c
+++ /dev/null
@@ -1,270 +0,0 @@
-// SPDX-License-Identifier: BSD-2-Clause
-/*
- * Copyright (c) 2014, Linaro Limited
- */
-
-
-#include <tee_api.h>
-
-#include <tee_internal_se_api.h>
-#include <tee_internal_api_extensions.h>
-#include <utee_defines.h>
-#include <sys/queue.h>
-
-#include <utee_syscalls.h>
-
-#define VERIFY_HANDLE(handle, ops) \
-do { \
- if ((handle) == TEE_HANDLE_NULL) \
- TEE_Panic(0); \
- ret = (ops); \
- if (ret == TEE_ERROR_BAD_PARAMETERS) \
- TEE_Panic(0); \
-} while (0)
-
-TEE_Result TEE_SEServiceOpen(
- TEE_SEServiceHandle *seServiceHandle)
-{
- TEE_Result ret;
- uint32_t s;
-
- if (seServiceHandle == NULL)
- TEE_Panic(0);
-
- ret = utee_se_service_open(&s);
- if (ret == TEE_SUCCESS)
- *seServiceHandle = (TEE_SEServiceHandle)(uintptr_t)s;
- return ret;
-}
-
-void TEE_SEServiceClose(
- TEE_SEServiceHandle seServiceHandle)
-{
- TEE_Result ret;
-
- VERIFY_HANDLE(seServiceHandle,
- utee_se_service_close((unsigned long)seServiceHandle));
-
-}
-
-TEE_Result TEE_SEServiceGetReaders(
- TEE_SEServiceHandle seServiceHandle,
- TEE_SEReaderHandle *seReaderHandleList,
- size_t *seReaderHandleListLen)
-{
- TEE_Result ret = TEE_SUCCESS;
-
- if (seReaderHandleList == NULL ||
- seReaderHandleListLen == NULL)
- TEE_Panic(0);
- else {
- uint64_t rl_len = *seReaderHandleListLen;
- uint32_t rl[rl_len];
- size_t n;
-
- VERIFY_HANDLE(seServiceHandle,
- utee_se_service_get_readers(
- (unsigned long)seServiceHandle, rl, &rl_len));
- if (ret != TEE_SUCCESS)
- return ret;
- for (n = 0; n < rl_len; n++)
- seReaderHandleList[n] =
- (TEE_SEReaderHandle)(uintptr_t)rl[n];
- *seReaderHandleListLen = rl_len;
- }
- return ret;
-}
-
-void TEE_SEReaderGetProperties(TEE_SEReaderHandle seReaderHandle,
- TEE_SEReaderProperties *readerProperties)
-{
- TEE_Result ret;
- uint32_t prop;
-
- VERIFY_HANDLE(seReaderHandle,
- utee_se_reader_get_prop((unsigned long)seReaderHandle, &prop));
-
- readerProperties->sePresent = !!(prop & UTEE_SE_READER_PRESENT);
- readerProperties->teeOnly = !!(prop & UTEE_SE_READER_TEE_ONLY);
- readerProperties->selectResponseEnable =
- !!(prop & UTEE_SE_READER_SELECT_RESPONE_ENABLE);
-}
-
-TEE_Result TEE_SEReaderGetName(TEE_SEReaderHandle seReaderHandle,
- char *readerName, size_t *readerNameLen)
-{
- TEE_Result ret;
- uint64_t nl;
-
- if (readerName == NULL || readerNameLen == NULL ||
- *readerNameLen == 0)
- TEE_Panic(0);
-
- nl = *readerNameLen;
- VERIFY_HANDLE(seReaderHandle,
- utee_se_reader_get_name((unsigned long)seReaderHandle,
- readerName, &nl));
- *readerNameLen = nl;
-
- return ret;
-}
-
-TEE_Result TEE_SEReaderOpenSession(TEE_SEReaderHandle seReaderHandle,
- TEE_SESessionHandle *seSessionHandle)
-{
- TEE_Result ret;
- uint32_t s;
-
- if (seSessionHandle == NULL)
- TEE_Panic(0);
-
- VERIFY_HANDLE(seReaderHandle,
- utee_se_reader_open_session((unsigned long)seReaderHandle, &s));
- if (ret == TEE_SUCCESS)
- *seSessionHandle = (TEE_SESessionHandle)(uintptr_t)s;
- return ret;
-}
-
-
-void TEE_SEReaderCloseSessions(
- TEE_SEReaderHandle seReaderHandle)
-{
- TEE_Result ret;
-
- VERIFY_HANDLE(seReaderHandle,
- utee_se_reader_close_sessions((unsigned long)seReaderHandle));
-}
-
-TEE_Result TEE_SESessionGetATR(TEE_SESessionHandle seSessionHandle,
- void *atr, size_t *atrLen)
-{
- TEE_Result ret;
- uint64_t al;
-
- if (atr == NULL || atrLen == NULL || *atrLen == 0)
- TEE_Panic(0);
-
- al = *atrLen;
- VERIFY_HANDLE(seSessionHandle,
- utee_se_session_get_atr((unsigned long)seSessionHandle,
- atr, &al));
- *atrLen = al;
- return ret;
-}
-
-TEE_Result TEE_SESessionIsClosed(TEE_SESessionHandle seSessionHandle)
-{
- TEE_Result ret;
-
- VERIFY_HANDLE(seSessionHandle,
- utee_se_session_is_closed((unsigned long)seSessionHandle));
- return ret;
-}
-
-void TEE_SESessionClose(TEE_SESessionHandle seSessionHandle)
-{
- TEE_Result ret;
-
- VERIFY_HANDLE(seSessionHandle,
- utee_se_session_close((unsigned long)seSessionHandle));
-}
-
-TEE_Result TEE_SESessionOpenBasicChannel(TEE_SESessionHandle seSessionHandle,
- TEE_SEAID *seAID, TEE_SEChannelHandle *seChannelHandle)
-{
- TEE_Result ret;
- uint32_t s;
- const void *p = NULL;
- size_t l = 0;
-
- if (seChannelHandle == NULL)
- TEE_Panic(0);
-
- if (seAID) {
- p = seAID->buffer;
- l = seAID->bufferLen;
- }
- VERIFY_HANDLE(seSessionHandle,
- utee_se_session_open_channel((unsigned long)seSessionHandle,
- false, p, l, &s));
- if (ret == TEE_SUCCESS)
- *seChannelHandle = (TEE_SEChannelHandle)(uintptr_t)s;
- return ret;
-}
-
-TEE_Result TEE_SESessionOpenLogicalChannel(TEE_SESessionHandle seSessionHandle,
- TEE_SEAID *seAID, TEE_SEChannelHandle *seChannelHandle)
-{
- TEE_Result ret;
- uint32_t s;
- const void *p = NULL;
- size_t l = 0;
-
- if (seChannelHandle == NULL)
- TEE_Panic(0);
-
- if (seAID) {
- p = seAID->buffer;
- l = seAID->bufferLen;
- }
- VERIFY_HANDLE(seSessionHandle,
- utee_se_session_open_channel((unsigned long)seSessionHandle,
- true, p, l, &s));
- if (ret == TEE_SUCCESS)
- *seChannelHandle = (TEE_SEChannelHandle)(uintptr_t)s;
- return ret;
-}
-
-TEE_Result TEE_SEChannelSelectNext(TEE_SEChannelHandle seChannelHandle)
-{
- TEE_Result ret;
-
- VERIFY_HANDLE(seChannelHandle,
- utee_se_channel_select_next((unsigned long)seChannelHandle));
- return ret;
-}
-
-TEE_Result TEE_SEChannelGetSelectResponse(TEE_SEChannelHandle seChannelHandle,
- void *response, size_t *responseLen)
-{
- TEE_Result ret;
- uint64_t rl;
-
- if (!responseLen)
- TEE_Panic(0);
-
- rl = *responseLen;
- VERIFY_HANDLE(seChannelHandle,
- utee_se_channel_get_select_resp((unsigned long)seChannelHandle,
- response, &rl));
- if (ret == TEE_SUCCESS)
- *responseLen = rl;
- return ret;
-}
-
-TEE_Result TEE_SEChannelTransmit(TEE_SEChannelHandle seChannelHandle,
- void *command, size_t commandLen,
- void *response, size_t *responseLen)
-{
- TEE_Result ret;
- uint64_t rl;
-
- if (!responseLen)
- TEE_Panic(0);
-
- rl = *responseLen;
- VERIFY_HANDLE(seChannelHandle,
- utee_se_channel_transmit((unsigned long)seChannelHandle,
- command, commandLen, response, &rl));
- if (ret == TEE_SUCCESS)
- *responseLen = rl;
- return ret;
-}
-
-void TEE_SEChannelClose(TEE_SEChannelHandle seChannelHandle)
-{
- TEE_Result ret;
-
- VERIFY_HANDLE(seChannelHandle,
- utee_se_channel_close((unsigned long)seChannelHandle));
-}