Integrate discovery into crypto service provider

Integrates the discovery provider into the crypto provider to
support common discovery operations.  Will initially be used
to discover the max_payload value to allow a client to
use multi-step crypto operations where prior knowledge of
the max_payload size is needed.  This commit also includes
service level tests for discovery.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I0213aeb5a5423b3bec962a6e27d8e83bf8e7a763
diff --git a/components/service/common/client/service_info.h b/components/service/common/client/service_info.h
new file mode 100644
index 0000000..4a39b6b
--- /dev/null
+++ b/components/service/common/client/service_info.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef SERVICE_INFO_H
+#define SERVICE_INFO_H
+
+#include <stddef.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief      Information about a service
+ *
+ * Provides information to a client about accessing a service provided
+ * by a remote service provider instance.
+ */
+struct service_info
+{
+	uint32_t supported_encodings;
+	size_t max_payload;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SERVICE_INFO_H */