Establish pattern for extending crypto service tests

To match the modular extensions to the crypto service provider,
this change establishes a pattern for extending service level
tests in a similarly modular way.  By componentizing groups
of test cases, a subset of tests may be used to match the
service provider under test.  The hash crypto extension is
used to establish the pattern.  Note that because the Cpp
crypto clients now use the same crypto caller as the PSA
Crypto client, the explicit PSA Crypto API client is no
longer needed and has been removed.

Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: Ic8f975c9061f8aa0377dd59614862a4745a8c38c
diff --git a/components/service/crypto/client/cpp/crypto_client.h b/components/service/crypto/client/cpp/crypto_client.h
index 42085be..68d80ee 100644
--- a/components/service/crypto/client/cpp/crypto_client.h
+++ b/components/service/crypto/client/cpp/crypto_client.h
@@ -21,6 +21,7 @@
 	virtual ~crypto_client();
 
 	int err_rpc_status() const;
+	struct service_info get_service_info() const;
 
 	/* Key lifecycle methods */
 	virtual psa_status_t generate_key(
@@ -89,6 +90,8 @@
 		uint8_t *output, size_t output_size) = 0;
 
 	/* Hash methods */
+	virtual size_t hash_max_update_size() const = 0;
+
 	virtual psa_status_t hash_setup(
 		uint32_t *op_handle,
 		psa_algorithm_t alg) = 0;
@@ -101,6 +104,17 @@
 		uint32_t op_handle,
 		uint8_t *hash, size_t hash_size, size_t *hash_length) = 0;
 
+	virtual psa_status_t hash_abort(
+		uint32_t op_handle) = 0;
+
+	virtual psa_status_t hash_verify(
+		uint32_t op_handle,
+		const uint8_t *hash, size_t hash_length) = 0;
+
+	virtual psa_status_t hash_clone(
+		uint32_t source_op_handle,
+		uint32_t *target_op_handle) = 0;
+
 protected:
 	crypto_client();
 	crypto_client(struct rpc_caller *caller);