diff --git a/include/psa/crypto.h b/include/psa/crypto.h index bbdd06d5ae..e84c757d10 100644 --- a/include/psa/crypto.h +++ b/include/psa/crypto.h @@ -4626,6 +4626,8 @@ psa_status_t psa_pake_output(psa_pake_operation_t *operation, * \retval #PSA_ERROR_HARDWARE_FAILURE * \retval #PSA_ERROR_CORRUPTION_DETECTED * \retval #PSA_ERROR_STORAGE_FAILURE + * \retval #PSA_ERROR_INVALID_ARGUMENT + * The input is not valid for the algorithm, ciphersuite or \p step. * \retval #PSA_ERROR_BAD_STATE * The library has not been previously initialized by psa_crypto_init(). * It is implementation-dependent whether a failure to initialize diff --git a/include/psa/crypto_sizes.h b/include/psa/crypto_sizes.h index a1b89446e7..62254fab52 100644 --- a/include/psa/crypto_sizes.h +++ b/include/psa/crypto_sizes.h @@ -1134,10 +1134,9 @@ /** 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. + * If the size of the output buffer is at least this large, it is guaranteed + * that psa_pake_output() will not fail due to an insufficient output buffer + * size. The actual size of the output might be smaller in any given call. * * See also #PSA_PAKE_OUTPUT_MAX_SIZE * @@ -1154,6 +1153,26 @@ */ #define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step) 0 +/** A sufficient input buffer size for psa_pake_input(). + * + * If the size of the input is larger than this, it is guaranteed + * that psa_pake_input() will fail with #PSA_ERROR_INVALID_ARGUMENT. + * + * See also #PSA_PAKE_INPUT_MAX_SIZE + * + * \param alg A PAKE algorithm (PSA_ALG_XXX value such that + * #PSA_ALG_IS_PAKE(\p alg) is true). + * \param primitive A primitive of type ::psa_pake_primitive_t that is + * compatible with algorithm \p alg. + * \param output_step A value of type ::psa_pake_step_t that is valid for the + * 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_INPUT_SIZE(alg, primitive, input_step) 0 + /** Output buffer size for psa_pake_output() for any of the supported cipher * suites and PAKE algorithms. * @@ -1163,4 +1182,13 @@ */ #define PSA_PAKE_OUTPUT_MAX_SIZE 0 +/** Input buffer size for psa_pake_input() for any of the supported cipher + * suites and PAKE algorithms. + * + * This macro must expand to a compile-time constant integer. + * + * See also #PSA_PAKE_INPUT_SIZE(\p alg, \p cipher_suite, \p output). + */ +#define PSA_PAKE_INPUT_MAX_SIZE 0 + #endif /* PSA_CRYPTO_SIZES_H */