PSA PAKE: add output size macros

Signed-off-by: Janos Follath <janos.follath@arm.com>
diff --git a/include/psa/crypto_sizes.h b/include/psa/crypto_sizes.h
index 79f9673..8497b14 100644
--- a/include/psa/crypto_sizes.h
+++ b/include/psa/crypto_sizes.h
@@ -1132,4 +1132,54 @@
 #define PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE           \
     (PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE)
 
+/** A sufficient output buffer size for psa_pake_get_key_share().
+ *
+ * If the size of the ciphertext buffer is at least this large, it is
+ * guaranteed that psa_pake_get_key_share() will not fail due to an
+ * insufficient ciphertext buffer size. The actual size of the output might be
+ * smaller in any given call.
+ *
+ * See also #PSA_PAKE_OUTPUT_MAX_SIZE
+ *
+ * \param alg           A PAKE algorithm (PSA_ALG_XXX value such that
+ *                      #PSA_ALG_IS_PAKE(\p alg) is true).
+ * \param cipher_suite  A cipher suite that is compatible with algorithm \p alg.
+ * \return              A sufficient key share buffer size for the specified
+ *                      cipher suite and algorithm. If the cipher suite or PAKE
+ *                      algorithm is not recognized, or the parameters are
+ *                      incompatible, return 0.
+ */
+#define PSA_PAKE_KEY_SHARE_SIZE(alg, cipher_suite)  \
+    (PSA_PAKE_OUTPUT_SIZE(alg, cipher_suite, PSA_PAKE_DATA_KEY_SHARE)
+
+/** A sufficient output buffer size for psa_pake_output().
+ *
+ * If the size of the ciphertext buffer is at least this large, it is
+ * guaranteed that psa_pake_output() will not fail due to an
+ * insufficient ciphertext buffer size. The actual size of the output might be
+ * smaller in any given call.
+ *
+ * See also #PSA_PAKE_OUTPUT_MAX_SIZE
+ *
+ * \param alg           A PAKE algorithm (PSA_ALG_XXX value such that
+ *                      #PSA_ALG_IS_PAKE(\p alg) is true).
+ * \param cipher_suite  A cipher suite that is compatible with algorithm \p alg.
+ * \param output        An output type used with algorithm \p alg.
+ * \return              A sufficient output buffer size for the specified
+ *                      output, cipher suite and algorithm. If the cipher suite,
+ *                      the output type or PAKE algorithm is not recognized, or
+ *                      the parameters are incompatible, return 0.
+ */
+#define PSA_PAKE_OUTPUT_SIZE(alg, cipher_suite, output)
+
+/** Output buffer size for psa_pake_output() and psa_pake_get_key_share(),
+ * for any of the supported cipher suites and PAKE algorithms.
+ *
+ * This macro must expand to a compile-time constant integer.
+ *
+ * See also #PSA_PAKE_KEY_SHARE_SIZE(\p alg, \p cipher_suite) and
+ * #PSA_PAKE_OUTPUT_SIZE(\p alg, \p cipher_suite, \p output).
+ */
+#define PSA_PAKE_OUTPUT_MAX_SIZE
+
 #endif /* PSA_CRYPTO_SIZES_H */