mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-05 19:35:48 +03:00
Merge remote-tracking branch 'origin/development' into psa-sha3
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
@@ -4407,9 +4407,9 @@ psa_status_t psa_sign_hash_start(
|
||||
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
||||
* The size of the \p signature buffer is too small. You can
|
||||
* determine a sufficient buffer size by calling
|
||||
* #PSA_SIGN_OUTPUT_SIZE(\c key_type, \c key_bits, \p alg)
|
||||
* #PSA_SIGN_OUTPUT_SIZE(\c key_type, \c key_bits, \c alg)
|
||||
* where \c key_type and \c key_bits are the type and bit-size
|
||||
* respectively of \p key.
|
||||
* respectively of \c key.
|
||||
*
|
||||
* \retval #PSA_ERROR_BAD_STATE
|
||||
* An operation was not previously started on this context via
|
||||
|
@@ -105,7 +105,8 @@ typedef struct {
|
||||
defined(MBEDTLS_PSA_BUILTIN_ALG_OFB) || \
|
||||
defined(MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING) || \
|
||||
defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING) || \
|
||||
defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7)
|
||||
defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7) || \
|
||||
defined(MBEDTLS_PSA_BUILTIN_ALG_CCM_STAR_NO_TAG)
|
||||
#define MBEDTLS_PSA_BUILTIN_CIPHER 1
|
||||
#endif
|
||||
|
||||
|
@@ -1036,12 +1036,12 @@ typedef uint32_t psa_pake_primitive_t;
|
||||
* (value of type ::psa_pake_primitive_type_t).
|
||||
* \param pake_family The family of the primitive
|
||||
* (the type and interpretation of this parameter depends
|
||||
* on \p type, for more information consult the
|
||||
* on \p pake_type, for more information consult the
|
||||
* documentation of individual ::psa_pake_primitive_type_t
|
||||
* constants).
|
||||
* \param pake_bits The bit-size of the primitive
|
||||
* (Value of type \c size_t. The interpretation
|
||||
* of this parameter depends on \p family, for more
|
||||
* of this parameter depends on \p pake_family, for more
|
||||
* information consult the documentation of individual
|
||||
* ::psa_pake_primitive_type_t constants).
|
||||
*
|
||||
@@ -1545,7 +1545,7 @@ psa_status_t psa_pake_set_user(psa_pake_operation_t *operation,
|
||||
* \retval #PSA_SUCCESS
|
||||
* Success.
|
||||
* \retval #PSA_ERROR_INVALID_ARGUMENT
|
||||
* \p user_id is not valid for the \p operation's algorithm and cipher
|
||||
* \p peer_id is not valid for the \p operation's algorithm and cipher
|
||||
* suite.
|
||||
* \retval #PSA_ERROR_NOT_SUPPORTED
|
||||
* The algorithm doesn't associate a second identity with the session.
|
||||
@@ -1627,8 +1627,8 @@ psa_status_t psa_pake_set_role(psa_pake_operation_t *operation,
|
||||
* \c PSA_PAKE_STEP_XXX constants for more
|
||||
* information.
|
||||
* \param output_size Size of the \p output buffer in bytes. This must
|
||||
* be at least #PSA_PAKE_OUTPUT_SIZE(\p alg, \p
|
||||
* primitive, \p step) where \p alg and
|
||||
* be at least #PSA_PAKE_OUTPUT_SIZE(\c alg, \c
|
||||
* primitive, \p output_step) where \c alg and
|
||||
* \p primitive are the PAKE algorithm and primitive
|
||||
* in the operation's cipher suite, and \p step is
|
||||
* the output step.
|
||||
@@ -1693,9 +1693,9 @@ psa_status_t psa_pake_output(psa_pake_operation_t *operation,
|
||||
* \retval #PSA_ERROR_INVALID_SIGNATURE
|
||||
* The verification fails for a #PSA_PAKE_STEP_ZK_PROOF input step.
|
||||
* \retval #PSA_ERROR_INVALID_ARGUMENT
|
||||
* \p is not compatible with the \p operation’s algorithm, or the
|
||||
* \p input is not valid for the \p operation's algorithm, cipher suite
|
||||
* or \p step.
|
||||
* \p input_length is not compatible with the \p operation’s algorithm,
|
||||
* or the \p input is not valid for the \p operation's algorithm,
|
||||
* cipher suite or \p step.
|
||||
* \retval #PSA_ERROR_NOT_SUPPORTED
|
||||
* \p step p is not supported with the \p operation's algorithm, or the
|
||||
* \p input is not supported for the \p operation's algorithm, cipher
|
||||
@@ -1744,7 +1744,7 @@ psa_status_t psa_pake_input(psa_pake_operation_t *operation,
|
||||
*
|
||||
* When this function returns successfully, \p operation becomes inactive.
|
||||
* If this function returns an error status, both \p operation
|
||||
* and \p key_derivation operations enter an error state and must be aborted by
|
||||
* and \c key_derivation operations enter an error state and must be aborted by
|
||||
* calling psa_pake_abort() and psa_key_derivation_abort() respectively.
|
||||
*
|
||||
* \param[in,out] operation Active PAKE operation.
|
||||
@@ -1877,7 +1877,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t *operation);
|
||||
* The value of this macro must be at least as large as the largest value
|
||||
* returned by PSA_PAKE_OUTPUT_SIZE()
|
||||
*
|
||||
* See also #PSA_PAKE_OUTPUT_SIZE(\p alg, \p primitive, \p step).
|
||||
* See also #PSA_PAKE_OUTPUT_SIZE(\p alg, \p primitive, \p output_step).
|
||||
*/
|
||||
#define PSA_PAKE_OUTPUT_MAX_SIZE 65
|
||||
|
||||
@@ -1889,7 +1889,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t *operation);
|
||||
* The value of this macro must be at least as large as the largest value
|
||||
* returned by PSA_PAKE_INPUT_SIZE()
|
||||
*
|
||||
* See also #PSA_PAKE_INPUT_SIZE(\p alg, \p primitive, \p step).
|
||||
* See also #PSA_PAKE_INPUT_SIZE(\p alg, \p primitive, \p output_step).
|
||||
*/
|
||||
#define PSA_PAKE_INPUT_MAX_SIZE 65
|
||||
|
||||
@@ -1984,34 +1984,6 @@ struct psa_crypto_driver_pake_inputs_s {
|
||||
psa_pake_cipher_suite_t MBEDTLS_PRIVATE(cipher_suite);
|
||||
};
|
||||
|
||||
typedef enum psa_jpake_step {
|
||||
PSA_PAKE_STEP_INVALID = 0,
|
||||
PSA_PAKE_STEP_X1_X2 = 1,
|
||||
PSA_PAKE_STEP_X2S = 2,
|
||||
PSA_PAKE_STEP_DERIVE = 3,
|
||||
} psa_jpake_step_t;
|
||||
|
||||
typedef enum psa_jpake_state {
|
||||
PSA_PAKE_STATE_INVALID = 0,
|
||||
PSA_PAKE_STATE_SETUP = 1,
|
||||
PSA_PAKE_STATE_READY = 2,
|
||||
PSA_PAKE_OUTPUT_X1_X2 = 3,
|
||||
PSA_PAKE_OUTPUT_X2S = 4,
|
||||
PSA_PAKE_INPUT_X1_X2 = 5,
|
||||
PSA_PAKE_INPUT_X4S = 6,
|
||||
} psa_jpake_state_t;
|
||||
|
||||
typedef enum psa_jpake_sequence {
|
||||
PSA_PAKE_SEQ_INVALID = 0,
|
||||
PSA_PAKE_X1_STEP_KEY_SHARE = 1, /* also X2S & X4S KEY_SHARE */
|
||||
PSA_PAKE_X1_STEP_ZK_PUBLIC = 2, /* also X2S & X4S ZK_PUBLIC */
|
||||
PSA_PAKE_X1_STEP_ZK_PROOF = 3, /* also X2S & X4S ZK_PROOF */
|
||||
PSA_PAKE_X2_STEP_KEY_SHARE = 4,
|
||||
PSA_PAKE_X2_STEP_ZK_PUBLIC = 5,
|
||||
PSA_PAKE_X2_STEP_ZK_PROOF = 6,
|
||||
PSA_PAKE_SEQ_END = 7,
|
||||
} psa_jpake_sequence_t;
|
||||
|
||||
typedef enum psa_crypto_driver_pake_step {
|
||||
PSA_JPAKE_STEP_INVALID = 0, /* Invalid step */
|
||||
PSA_JPAKE_X1_STEP_KEY_SHARE = 1, /* Round 1: input/output key share (for ephemeral private key X1).*/
|
||||
@@ -2028,14 +2000,35 @@ typedef enum psa_crypto_driver_pake_step {
|
||||
PSA_JPAKE_X4S_STEP_ZK_PROOF = 12 /* Round 2: input Schnorr NIZKP proof for the X4S key (from peer) */
|
||||
} psa_crypto_driver_pake_step_t;
|
||||
|
||||
typedef enum psa_jpake_round {
|
||||
PSA_JPAKE_FIRST = 0,
|
||||
PSA_JPAKE_SECOND = 1,
|
||||
PSA_JPAKE_FINISHED = 2
|
||||
} psa_jpake_round_t;
|
||||
|
||||
typedef enum psa_jpake_io_mode {
|
||||
PSA_JPAKE_INPUT = 0,
|
||||
PSA_JPAKE_OUTPUT = 1
|
||||
} psa_jpake_io_mode_t;
|
||||
|
||||
struct psa_jpake_computation_stage_s {
|
||||
psa_jpake_state_t MBEDTLS_PRIVATE(state);
|
||||
psa_jpake_sequence_t MBEDTLS_PRIVATE(sequence);
|
||||
psa_jpake_step_t MBEDTLS_PRIVATE(input_step);
|
||||
psa_jpake_step_t MBEDTLS_PRIVATE(output_step);
|
||||
/* The J-PAKE round we are currently on */
|
||||
psa_jpake_round_t MBEDTLS_PRIVATE(round);
|
||||
/* The 'mode' we are currently in (inputting or outputting) */
|
||||
psa_jpake_io_mode_t MBEDTLS_PRIVATE(io_mode);
|
||||
/* The number of completed inputs so far this round */
|
||||
uint8_t MBEDTLS_PRIVATE(inputs);
|
||||
/* The number of completed outputs so far this round */
|
||||
uint8_t MBEDTLS_PRIVATE(outputs);
|
||||
/* The next expected step (KEY_SHARE, ZK_PUBLIC or ZK_PROOF) */
|
||||
psa_pake_step_t MBEDTLS_PRIVATE(step);
|
||||
};
|
||||
|
||||
#define PSA_JPAKE_EXPECTED_INPUTS(round) ((round) == PSA_JPAKE_FINISHED ? 0 : \
|
||||
((round) == PSA_JPAKE_FIRST ? 2 : 1))
|
||||
#define PSA_JPAKE_EXPECTED_OUTPUTS(round) ((round) == PSA_JPAKE_FINISHED ? 0 : \
|
||||
((round) == PSA_JPAKE_FIRST ? 2 : 1))
|
||||
|
||||
struct psa_pake_operation_s {
|
||||
/** Unique ID indicating which driver got assigned to do the
|
||||
* operation. Since driver contexts are driver-specific, swapping
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* removed from the library.
|
||||
*
|
||||
* PSA_WANT_KEY_TYPE_xxx_KEY_PAIR_LEGACY and
|
||||
* MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_LEGACY symbols are deprecated.
|
||||
* MBEDTLS_PSA_ACCEL_KEY_TYPE_xxx_KEY_PAIR_LEGACY symbols are deprecated.
|
||||
* New symols add a suffix to that base name in order to clearly state what is
|
||||
* the expected use for the key (use, import, export, generate, derive).
|
||||
* Here we define some backward compatibility support for uses stil using
|
||||
|
Reference in New Issue
Block a user