Add attestation service provider and client

Adds the attestation service provider with a packed-c serializer.  A
client that implements the PSA Attestation C API is also added.  To
allow for service level testing in a PC environment, a standalone
service context has beed added for the attestation service.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I468e8be122472b5cfff4b9a56569a08b193a14e9
diff --git a/deployments/component-test/component-test.cmake b/deployments/component-test/component-test.cmake
index 075538d..bb52dd5 100644
--- a/deployments/component-test/component-test.cmake
+++ b/deployments/component-test/component-test.cmake
@@ -41,6 +41,8 @@
 		"components/service/locator/standalone/services/internal-trusted-storage"
 		"components/service/locator/standalone/services/protected-storage"
 		"components/service/locator/standalone/services/test-runner"
+		"components/service/locator/standalone/services/attestation"
+		"components/service/attestation/include"
 		"components/service/attestation/claims"
 		"components/service/attestation/claims/sources/preloaded"
 		"components/service/attestation/claims/sources/event_log"
@@ -48,7 +50,12 @@
 		"components/service/attestation/claims/sources/event_log/test"
 		"components/service/attestation/reporter/psa"
 		"components/service/attestation/key_mngr"
+		"components/service/attestation/provider"
+		"components/service/attestation/provider/serializer/packed-c"
+		"components/service/attestation/client/psa"
+		"components/service/attestation/test/common"
 		"components/service/attestation/test/component"
+		"components/service/attestation/test/service"
 		"components/service/crypto/client/cpp"
 		"components/service/crypto/client/cpp/protobuf"
 		"components/service/crypto/client/cpp/packed-c"
diff --git a/deployments/libts/linux-pc/CMakeLists.txt b/deployments/libts/linux-pc/CMakeLists.txt
index f6ac33d..d1a96ae 100644
--- a/deployments/libts/linux-pc/CMakeLists.txt
+++ b/deployments/libts/linux-pc/CMakeLists.txt
@@ -31,6 +31,7 @@
 	COMPONENTS
 		"components/rpc/direct"
 		"components/common/tlv"
+		"components/common/endian"
 		"components/service/common/include"
 		"components/service/common/serializer/protobuf"
 		"components/service/common/provider"
@@ -39,6 +40,16 @@
 		"components/service/locator/standalone/services/internal-trusted-storage"
 		"components/service/locator/standalone/services/protected-storage"
 		"components/service/locator/standalone/services/test-runner"
+		"components/service/locator/standalone/services/attestation"
+		"components/service/attestation/include"
+		"components/service/attestation/claims"
+		"components/service/attestation/claims/sources/preloaded"
+		"components/service/attestation/claims/sources/event_log"
+		"components/service/attestation/claims/sources/event_log/mock"
+		"components/service/attestation/reporter/psa"
+		"components/service/attestation/key_mngr"
+		"components/service/attestation/provider"
+		"components/service/attestation/provider/serializer/packed-c"
 		"components/service/crypto/provider/mbedcrypto"
 		"components/service/crypto/provider/mbedcrypto/trng_adapter/linux"
 		"components/service/crypto/provider/serializer/protobuf"
@@ -80,6 +91,14 @@
 include(${TS_ROOT}/external/MbedTLS/MbedTLS.cmake)
 target_link_libraries(ts PRIVATE mbedcrypto)
 
+# Qcbor
+include(${TS_ROOT}/external/qcbor/qcbor.cmake)
+target_link_libraries(ts PRIVATE qcbor)
+
+# t_cose
+include(${TS_ROOT}/external/t_cose/t_cose.cmake)
+target_link_libraries(ts PRIVATE t_cose)
+
 #-------------------------------------------------------------------------------
 #  Test executable (libts-test) for testing libts static library
 #
diff --git a/deployments/ts-service-test/linux-pc/CMakeLists.txt b/deployments/ts-service-test/linux-pc/CMakeLists.txt
index 4a86c87..ac4c237 100644
--- a/deployments/ts-service-test/linux-pc/CMakeLists.txt
+++ b/deployments/ts-service-test/linux-pc/CMakeLists.txt
@@ -80,6 +80,9 @@
     COMPONENTS
         "components/service/test_runner/client/cpp"
 		"components/service/test_runner/test/service"
+		"components/service/attestation/include"
+		"components/service/attestation/client/psa"
+		"components/service/attestation/test/service"
 )
 
 #-------------------------------------------------------------------------------