Add prototypes for psa_crypto_input_copy API
This includes:
* The psa_crypto_input_copy_t struct
* psa_crypto_input_copy_alloc()
* psa_crypto_input_copy_free()
Signed-off-by: David Horstmann <david.horstmann@arm.com>
diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h
index c9e277c..a53824e 100644
--- a/library/psa_crypto_core.h
+++ b/library/psa_crypto_core.h
@@ -884,4 +884,31 @@
psa_status_t psa_crypto_copy_output(const uint8_t *output_copy, size_t output_copy_len,
uint8_t *output, size_t output_len);
+typedef struct psa_crypto_input_copy_s {
+ uint8_t *buffer;
+ size_t len;
+} psa_crypto_input_copy_t;
+
+/** Allocate a local copy of an input buffer.
+ *
+ * \param[in] input Pointer to input buffer.
+ * \param[in] input_len Length of the input buffer.
+ * \param[out] input_copy Pointer to a psa_crypto_input_copy_t struct to
+ * populate with the input copy.
+ * \return #PSA_SUCCESS, if the buffer was successfully
+ * copied.
+ * \return #PSA_ERROR_INSUFFICIENT_MEMORY, if a copy of
+ * the buffer cannot be allocated.
+ */
+psa_status_t psa_crypto_input_copy_alloc(const uint8_t *input, size_t input_len,
+ psa_crypto_input_copy_t *input_copy);
+
+/** Free a local copy of an input buffer.
+ *
+ * \param[in] input_copy Pointer to a psa_crypto_input_copy_t struct
+ * populated by a previous call to
+ * psa_crypto_input_copy_alloc().
+ */
+void psa_crypto_input_copy_free(psa_crypto_input_copy_t *input_copy);
+
#endif /* PSA_CRYPTO_CORE_H */