Lines Matching refs:operation

2374 psa_status_t psa_hash_abort(psa_hash_operation_t *operation)  in psa_hash_abort()  argument
2377 if (operation->id == 0) { in psa_hash_abort()
2381 psa_status_t status = psa_driver_wrapper_hash_abort(operation); in psa_hash_abort()
2382 operation->id = 0; in psa_hash_abort()
2387 psa_status_t psa_hash_setup(psa_hash_operation_t *operation, in psa_hash_setup() argument
2393 if (operation->id != 0) { in psa_hash_setup()
2408 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_hash_setup()
2410 status = psa_driver_wrapper_hash_setup(operation, alg); in psa_hash_setup()
2414 psa_hash_abort(operation); in psa_hash_setup()
2420 psa_status_t psa_hash_update(psa_hash_operation_t *operation, in psa_hash_update() argument
2427 if (operation->id == 0) { in psa_hash_update()
2439 status = psa_driver_wrapper_hash_update(operation, input, input_length); in psa_hash_update()
2443 psa_hash_abort(operation); in psa_hash_update()
2450 static psa_status_t psa_hash_finish_internal(psa_hash_operation_t *operation, in psa_hash_finish_internal() argument
2458 if (operation->id == 0) { in psa_hash_finish_internal()
2463 operation, hash, hash_size, hash_length); in psa_hash_finish_internal()
2464 psa_hash_abort(operation); in psa_hash_finish_internal()
2469 psa_status_t psa_hash_finish(psa_hash_operation_t *operation, in psa_hash_finish() argument
2478 status = psa_hash_finish_internal(operation, hash, hash_size, hash_length); in psa_hash_finish()
2487 psa_status_t psa_hash_verify(psa_hash_operation_t *operation, in psa_hash_verify() argument
2497 operation, in psa_hash_verify()
2518 psa_hash_abort(operation); in psa_hash_verify()
2623 psa_status_t psa_mac_abort(psa_mac_operation_t *operation) in psa_mac_abort() argument
2626 if (operation->id == 0) { in psa_mac_abort()
2630 psa_status_t status = psa_driver_wrapper_mac_abort(operation); in psa_mac_abort()
2631 operation->mac_size = 0; in psa_mac_abort()
2632 operation->is_sign = 0; in psa_mac_abort()
2633 operation->id = 0; in psa_mac_abort()
2691 static psa_status_t psa_mac_setup(psa_mac_operation_t *operation, in psa_mac_setup() argument
2701 if (operation->id != 0) { in psa_mac_setup()
2711 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_mac_setup()
2723 &operation->mac_size); in psa_mac_setup()
2728 operation->is_sign = is_sign; in psa_mac_setup()
2731 status = psa_driver_wrapper_mac_sign_setup(operation, in psa_mac_setup()
2737 status = psa_driver_wrapper_mac_verify_setup(operation, in psa_mac_setup()
2746 psa_mac_abort(operation); in psa_mac_setup()
2754 psa_status_t psa_mac_sign_setup(psa_mac_operation_t *operation, in psa_mac_sign_setup() argument
2758 return psa_mac_setup(operation, key, alg, 1); in psa_mac_sign_setup()
2761 psa_status_t psa_mac_verify_setup(psa_mac_operation_t *operation, in psa_mac_verify_setup() argument
2765 return psa_mac_setup(operation, key, alg, 0); in psa_mac_verify_setup()
2768 psa_status_t psa_mac_update(psa_mac_operation_t *operation, in psa_mac_update() argument
2775 if (operation->id == 0) { in psa_mac_update()
2788 status = psa_driver_wrapper_mac_update(operation, input, input_length); in psa_mac_update()
2791 psa_mac_abort(operation); in psa_mac_update()
2802 psa_status_t psa_mac_sign_finish(psa_mac_operation_t *operation, in psa_mac_sign_finish() argument
2812 if (operation->id == 0) { in psa_mac_sign_finish()
2817 if (!operation->is_sign) { in psa_mac_sign_finish()
2824 if (operation->mac_size == 0) { in psa_mac_sign_finish()
2829 if (mac_size < operation->mac_size) { in psa_mac_sign_finish()
2835 status = psa_driver_wrapper_mac_sign_finish(operation, in psa_mac_sign_finish()
2836 mac, operation->mac_size, in psa_mac_sign_finish()
2848 operation->mac_size = 0; in psa_mac_sign_finish()
2855 abort_status = psa_mac_abort(operation); in psa_mac_sign_finish()
2861 psa_status_t psa_mac_verify_finish(psa_mac_operation_t *operation, in psa_mac_verify_finish() argument
2869 if (operation->id == 0) { in psa_mac_verify_finish()
2874 if (operation->is_sign) { in psa_mac_verify_finish()
2879 if (operation->mac_size != mac_length) { in psa_mac_verify_finish()
2885 status = psa_driver_wrapper_mac_verify_finish(operation, in psa_mac_verify_finish()
2889 abort_status = psa_mac_abort(operation); in psa_mac_verify_finish()
3588 const psa_sign_hash_interruptible_operation_t *operation) in psa_sign_hash_get_num_ops() argument
3590 return operation->num_ops; in psa_sign_hash_get_num_ops()
3594 const psa_verify_hash_interruptible_operation_t *operation) in psa_verify_hash_get_num_ops() argument
3596 return operation->num_ops; in psa_verify_hash_get_num_ops()
3600 psa_sign_hash_interruptible_operation_t *operation) in psa_sign_hash_abort_internal() argument
3602 if (operation->id == 0) { in psa_sign_hash_abort_internal()
3611 status = psa_driver_wrapper_sign_hash_abort(operation); in psa_sign_hash_abort_internal()
3613 operation->id = 0; in psa_sign_hash_abort_internal()
3623 psa_sign_hash_interruptible_operation_t *operation, in psa_sign_hash_start() argument
3635 if (operation->id != 0 || operation->error_occurred) { in psa_sign_hash_start()
3644 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_sign_hash_start()
3648 operation->error_occurred = 1; in psa_sign_hash_start()
3668 operation->num_ops = 0; in psa_sign_hash_start()
3670 status = psa_driver_wrapper_sign_hash_start(operation, &slot->attr, in psa_sign_hash_start()
3677 operation->error_occurred = 1; in psa_sign_hash_start()
3678 psa_sign_hash_abort_internal(operation); in psa_sign_hash_start()
3684 operation->error_occurred = 1; in psa_sign_hash_start()
3694 psa_sign_hash_interruptible_operation_t *operation, in psa_sign_hash_complete() argument
3706 if (operation->id == 0 || operation->error_occurred) { in psa_sign_hash_complete()
3720 status = psa_driver_wrapper_sign_hash_complete(operation, signature, in psa_sign_hash_complete()
3725 operation->num_ops = psa_driver_wrapper_sign_hash_get_num_ops(operation); in psa_sign_hash_complete()
3736 operation->error_occurred = 1; in psa_sign_hash_complete()
3739 psa_sign_hash_abort_internal(operation); in psa_sign_hash_complete()
3748 psa_sign_hash_interruptible_operation_t *operation) in psa_sign_hash_abort() argument
3752 status = psa_sign_hash_abort_internal(operation); in psa_sign_hash_abort()
3756 operation->num_ops = 0; in psa_sign_hash_abort()
3759 operation->error_occurred = 0; in psa_sign_hash_abort()
3765 psa_verify_hash_interruptible_operation_t *operation) in psa_verify_hash_abort_internal() argument
3767 if (operation->id == 0) { in psa_verify_hash_abort_internal()
3776 status = psa_driver_wrapper_verify_hash_abort(operation); in psa_verify_hash_abort_internal()
3778 operation->id = 0; in psa_verify_hash_abort_internal()
3788 psa_verify_hash_interruptible_operation_t *operation, in psa_verify_hash_start() argument
3802 if (operation->id != 0 || operation->error_occurred) { in psa_verify_hash_start()
3811 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_verify_hash_start()
3815 operation->error_occurred = 1; in psa_verify_hash_start()
3824 operation->error_occurred = 1; in psa_verify_hash_start()
3832 operation->num_ops = 0; in psa_verify_hash_start()
3834 status = psa_driver_wrapper_verify_hash_start(operation, &slot->attr, in psa_verify_hash_start()
3844 operation->error_occurred = 1; in psa_verify_hash_start()
3845 psa_verify_hash_abort_internal(operation); in psa_verify_hash_start()
3851 operation->error_occurred = 1; in psa_verify_hash_start()
3861 psa_verify_hash_interruptible_operation_t *operation) in psa_verify_hash_complete() argument
3867 if (operation->id == 0 || operation->error_occurred) { in psa_verify_hash_complete()
3872 status = psa_driver_wrapper_verify_hash_complete(operation); in psa_verify_hash_complete()
3875 operation->num_ops = psa_driver_wrapper_verify_hash_get_num_ops( in psa_verify_hash_complete()
3876 operation); in psa_verify_hash_complete()
3882 operation->error_occurred = 1; in psa_verify_hash_complete()
3885 psa_verify_hash_abort_internal(operation); in psa_verify_hash_complete()
3892 psa_verify_hash_interruptible_operation_t *operation) in psa_verify_hash_abort() argument
3896 status = psa_verify_hash_abort_internal(operation); in psa_verify_hash_abort()
3900 operation->num_ops = 0; in psa_verify_hash_abort()
3903 operation->error_occurred = 0; in psa_verify_hash_abort()
3935 const mbedtls_psa_sign_hash_interruptible_operation_t *operation) in mbedtls_psa_sign_hash_get_num_ops() argument
3941 return operation->num_ops; in mbedtls_psa_sign_hash_get_num_ops()
3943 (void) operation; in mbedtls_psa_sign_hash_get_num_ops()
3951 const mbedtls_psa_verify_hash_interruptible_operation_t *operation) in mbedtls_psa_verify_hash_get_num_ops() argument
3957 return operation->num_ops; in mbedtls_psa_verify_hash_get_num_ops()
3959 (void) operation; in mbedtls_psa_verify_hash_get_num_ops()
3995 mbedtls_psa_sign_hash_interruptible_operation_t *operation, in mbedtls_psa_sign_hash_start() argument
4019 mbedtls_ecdsa_restart_init(&operation->restart_ctx); in mbedtls_psa_sign_hash_start()
4022 operation->num_ops = 0; in mbedtls_psa_sign_hash_start()
4028 &operation->ctx); in mbedtls_psa_sign_hash_start()
4034 operation->coordinate_bytes = PSA_BITS_TO_BYTES( in mbedtls_psa_sign_hash_start()
4035 operation->ctx->grp.nbits); in mbedtls_psa_sign_hash_start()
4038 operation->md_alg = mbedtls_md_type_from_psa_alg(hash_alg); in mbedtls_psa_sign_hash_start()
4039 operation->alg = alg; in mbedtls_psa_sign_hash_start()
4043 required_hash_length = (hash_length < operation->coordinate_bytes ? in mbedtls_psa_sign_hash_start()
4044 hash_length : operation->coordinate_bytes); in mbedtls_psa_sign_hash_start()
4046 if (required_hash_length > sizeof(operation->hash)) { in mbedtls_psa_sign_hash_start()
4051 memcpy(operation->hash, hash, required_hash_length); in mbedtls_psa_sign_hash_start()
4052 operation->hash_length = required_hash_length; in mbedtls_psa_sign_hash_start()
4057 (void) operation; in mbedtls_psa_sign_hash_start()
4073 mbedtls_psa_sign_hash_interruptible_operation_t *operation, in mbedtls_psa_sign_hash_complete() argument
4091 if (signature_size < 2 * operation->coordinate_bytes) { in mbedtls_psa_sign_hash_complete()
4096 if (PSA_ALG_ECDSA_IS_DETERMINISTIC(operation->alg)) { in mbedtls_psa_sign_hash_complete()
4100 mbedtls_ecdsa_sign_det_restartable(&operation->ctx->grp, in mbedtls_psa_sign_hash_complete()
4103 &operation->ctx->d, in mbedtls_psa_sign_hash_complete()
4104 operation->hash, in mbedtls_psa_sign_hash_complete()
4105 operation->hash_length, in mbedtls_psa_sign_hash_complete()
4106 operation->md_alg, in mbedtls_psa_sign_hash_complete()
4109 &operation->restart_ctx)); in mbedtls_psa_sign_hash_complete()
4116 mbedtls_ecdsa_sign_restartable(&operation->ctx->grp, in mbedtls_psa_sign_hash_complete()
4119 &operation->ctx->d, in mbedtls_psa_sign_hash_complete()
4120 operation->hash, in mbedtls_psa_sign_hash_complete()
4121 operation->hash_length, in mbedtls_psa_sign_hash_complete()
4126 &operation->restart_ctx)); in mbedtls_psa_sign_hash_complete()
4131 operation->num_ops += operation->restart_ctx.ecp.ops_done; in mbedtls_psa_sign_hash_complete()
4137 operation->coordinate_bytes) in mbedtls_psa_sign_hash_complete()
4147 operation->coordinate_bytes, in mbedtls_psa_sign_hash_complete()
4148 operation->coordinate_bytes) in mbedtls_psa_sign_hash_complete()
4155 *signature_length = operation->coordinate_bytes * 2; in mbedtls_psa_sign_hash_complete()
4168 (void) operation; in mbedtls_psa_sign_hash_complete()
4181 mbedtls_psa_sign_hash_interruptible_operation_t *operation) in mbedtls_psa_sign_hash_abort() argument
4188 if (operation->ctx) { in mbedtls_psa_sign_hash_abort()
4189 mbedtls_ecdsa_free(operation->ctx); in mbedtls_psa_sign_hash_abort()
4190 mbedtls_free(operation->ctx); in mbedtls_psa_sign_hash_abort()
4191 operation->ctx = NULL; in mbedtls_psa_sign_hash_abort()
4194 mbedtls_ecdsa_restart_free(&operation->restart_ctx); in mbedtls_psa_sign_hash_abort()
4196 operation->num_ops = 0; in mbedtls_psa_sign_hash_abort()
4202 (void) operation; in mbedtls_psa_sign_hash_abort()
4212 mbedtls_psa_verify_hash_interruptible_operation_t *operation, in mbedtls_psa_verify_hash_start() argument
4239 mbedtls_ecdsa_restart_init(&operation->restart_ctx); in mbedtls_psa_verify_hash_start()
4240 mbedtls_mpi_init(&operation->r); in mbedtls_psa_verify_hash_start()
4241 mbedtls_mpi_init(&operation->s); in mbedtls_psa_verify_hash_start()
4244 operation->num_ops = 0; in mbedtls_psa_verify_hash_start()
4250 &operation->ctx); in mbedtls_psa_verify_hash_start()
4256 coordinate_bytes = PSA_BITS_TO_BYTES(operation->ctx->grp.nbits); in mbedtls_psa_verify_hash_start()
4263 mbedtls_mpi_read_binary(&operation->r, in mbedtls_psa_verify_hash_start()
4272 mbedtls_mpi_read_binary(&operation->s, in mbedtls_psa_verify_hash_start()
4281 status = mbedtls_psa_ecp_load_public_part(operation->ctx); in mbedtls_psa_verify_hash_start()
4292 if (required_hash_length > sizeof(operation->hash)) { in mbedtls_psa_verify_hash_start()
4297 memcpy(operation->hash, hash, required_hash_length); in mbedtls_psa_verify_hash_start()
4298 operation->hash_length = required_hash_length; in mbedtls_psa_verify_hash_start()
4302 (void) operation; in mbedtls_psa_verify_hash_start()
4321 mbedtls_psa_verify_hash_interruptible_operation_t *operation) in mbedtls_psa_verify_hash_complete() argument
4334 mbedtls_ecdsa_verify_restartable(&operation->ctx->grp, in mbedtls_psa_verify_hash_complete()
4335 operation->hash, in mbedtls_psa_verify_hash_complete()
4336 operation->hash_length, in mbedtls_psa_verify_hash_complete()
4337 &operation->ctx->Q, in mbedtls_psa_verify_hash_complete()
4338 &operation->r, in mbedtls_psa_verify_hash_complete()
4339 &operation->s, in mbedtls_psa_verify_hash_complete()
4340 &operation->restart_ctx)); in mbedtls_psa_verify_hash_complete()
4344 operation->num_ops += operation->restart_ctx.ecp.ops_done; in mbedtls_psa_verify_hash_complete()
4348 (void) operation; in mbedtls_psa_verify_hash_complete()
4358 mbedtls_psa_verify_hash_interruptible_operation_t *operation) in mbedtls_psa_verify_hash_abort() argument
4365 if (operation->ctx) { in mbedtls_psa_verify_hash_abort()
4366 mbedtls_ecdsa_free(operation->ctx); in mbedtls_psa_verify_hash_abort()
4367 mbedtls_free(operation->ctx); in mbedtls_psa_verify_hash_abort()
4368 operation->ctx = NULL; in mbedtls_psa_verify_hash_abort()
4371 mbedtls_ecdsa_restart_free(&operation->restart_ctx); in mbedtls_psa_verify_hash_abort()
4373 operation->num_ops = 0; in mbedtls_psa_verify_hash_abort()
4375 mbedtls_mpi_free(&operation->r); in mbedtls_psa_verify_hash_abort()
4376 mbedtls_mpi_free(&operation->s); in mbedtls_psa_verify_hash_abort()
4381 (void) operation; in mbedtls_psa_verify_hash_abort()
4440 static psa_status_t psa_cipher_setup(psa_cipher_operation_t *operation, in psa_cipher_setup() argument
4453 if (operation->id != 0) { in psa_cipher_setup()
4472 operation->iv_set = 0; in psa_cipher_setup()
4474 operation->iv_required = 0; in psa_cipher_setup()
4476 operation->iv_required = 1; in psa_cipher_setup()
4478 operation->default_iv_length = PSA_CIPHER_IV_LENGTH(slot->attr.type, alg); in psa_cipher_setup()
4486 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_cipher_setup()
4490 status = psa_driver_wrapper_cipher_encrypt_setup(operation, in psa_cipher_setup()
4496 status = psa_driver_wrapper_cipher_decrypt_setup(operation, in psa_cipher_setup()
4505 psa_cipher_abort(operation); in psa_cipher_setup()
4513 psa_status_t psa_cipher_encrypt_setup(psa_cipher_operation_t *operation, in psa_cipher_encrypt_setup() argument
4517 return psa_cipher_setup(operation, key, alg, MBEDTLS_ENCRYPT); in psa_cipher_encrypt_setup()
4520 psa_status_t psa_cipher_decrypt_setup(psa_cipher_operation_t *operation, in psa_cipher_decrypt_setup() argument
4524 return psa_cipher_setup(operation, key, alg, MBEDTLS_DECRYPT); in psa_cipher_decrypt_setup()
4527 psa_status_t psa_cipher_generate_iv(psa_cipher_operation_t *operation, in psa_cipher_generate_iv() argument
4537 if (operation->id == 0) { in psa_cipher_generate_iv()
4542 if (operation->iv_set || !operation->iv_required) { in psa_cipher_generate_iv()
4547 default_iv_length = operation->default_iv_length; in psa_cipher_generate_iv()
4565 status = psa_driver_wrapper_cipher_set_iv(operation, in psa_cipher_generate_iv()
4571 operation->iv_set = 1; in psa_cipher_generate_iv()
4574 psa_cipher_abort(operation); in psa_cipher_generate_iv()
4584 psa_status_t psa_cipher_set_iv(psa_cipher_operation_t *operation, in psa_cipher_set_iv() argument
4592 if (operation->id == 0) { in psa_cipher_set_iv()
4597 if (operation->iv_set || !operation->iv_required) { in psa_cipher_set_iv()
4609 status = psa_driver_wrapper_cipher_set_iv(operation, in psa_cipher_set_iv()
4615 operation->iv_set = 1; in psa_cipher_set_iv()
4617 psa_cipher_abort(operation); in psa_cipher_set_iv()
4625 psa_status_t psa_cipher_update(psa_cipher_operation_t *operation, in psa_cipher_update() argument
4637 if (operation->id == 0) { in psa_cipher_update()
4642 if (operation->iv_required && !operation->iv_set) { in psa_cipher_update()
4650 status = psa_driver_wrapper_cipher_update(operation, in psa_cipher_update()
4659 psa_cipher_abort(operation); in psa_cipher_update()
4668 psa_status_t psa_cipher_finish(psa_cipher_operation_t *operation, in psa_cipher_finish() argument
4677 if (operation->id == 0) { in psa_cipher_finish()
4682 if (operation->iv_required && !operation->iv_set) { in psa_cipher_finish()
4689 status = psa_driver_wrapper_cipher_finish(operation, in psa_cipher_finish()
4696 status = psa_cipher_abort(operation); in psa_cipher_finish()
4699 (void) psa_cipher_abort(operation); in psa_cipher_finish()
4707 psa_status_t psa_cipher_abort(psa_cipher_operation_t *operation) in psa_cipher_abort() argument
4709 if (operation->id == 0) { in psa_cipher_abort()
4716 psa_driver_wrapper_cipher_abort(operation); in psa_cipher_abort()
4718 operation->id = 0; in psa_cipher_abort()
4719 operation->iv_set = 0; in psa_cipher_abort()
4720 operation->iv_required = 0; in psa_cipher_abort()
5095 static psa_status_t psa_aead_setup(psa_aead_operation_t *operation, in psa_aead_setup() argument
5110 if (operation->id != 0) { in psa_aead_setup()
5115 if (operation->nonce_set || operation->lengths_set || in psa_aead_setup()
5116 operation->ad_started || operation->body_started) { in psa_aead_setup()
5126 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_aead_setup()
5145 status = psa_driver_wrapper_aead_encrypt_setup(operation, in psa_aead_setup()
5151 status = psa_driver_wrapper_aead_decrypt_setup(operation, in psa_aead_setup()
5161 operation->key_type = psa_get_key_type(&slot->attr); in psa_aead_setup()
5168 operation->alg = psa_aead_get_base_algorithm(alg); in psa_aead_setup()
5169 operation->is_encrypt = is_encrypt; in psa_aead_setup()
5171 psa_aead_abort(operation); in psa_aead_setup()
5178 psa_status_t psa_aead_encrypt_setup(psa_aead_operation_t *operation, in psa_aead_encrypt_setup() argument
5182 return psa_aead_setup(operation, 1, key, alg); in psa_aead_encrypt_setup()
5186 psa_status_t psa_aead_decrypt_setup(psa_aead_operation_t *operation, in psa_aead_decrypt_setup() argument
5190 return psa_aead_setup(operation, 0, key, alg); in psa_aead_decrypt_setup()
5193 static psa_status_t psa_aead_set_nonce_internal(psa_aead_operation_t *operation, in psa_aead_set_nonce_internal() argument
5199 if (operation->id == 0) { in psa_aead_set_nonce_internal()
5204 if (operation->nonce_set) { in psa_aead_set_nonce_internal()
5209 status = psa_aead_check_nonce_length(operation->alg, nonce_length); in psa_aead_set_nonce_internal()
5215 status = psa_driver_wrapper_aead_set_nonce(operation, nonce, in psa_aead_set_nonce_internal()
5220 operation->nonce_set = 1; in psa_aead_set_nonce_internal()
5222 psa_aead_abort(operation); in psa_aead_set_nonce_internal()
5229 psa_status_t psa_aead_generate_nonce(psa_aead_operation_t *operation, in psa_aead_generate_nonce() argument
5243 if (operation->id == 0) { in psa_aead_generate_nonce()
5248 if (operation->nonce_set || !operation->is_encrypt) { in psa_aead_generate_nonce()
5262 required_nonce_size = PSA_AEAD_NONCE_LENGTH(operation->key_type, in psa_aead_generate_nonce()
5263 operation->alg); in psa_aead_generate_nonce()
5274 status = psa_aead_set_nonce_internal(operation, local_nonce, in psa_aead_generate_nonce()
5282 psa_aead_abort(operation); in psa_aead_generate_nonce()
5292 psa_status_t psa_aead_set_nonce(psa_aead_operation_t *operation, in psa_aead_set_nonce() argument
5301 status = psa_aead_set_nonce_internal(operation, nonce, nonce_length); in psa_aead_set_nonce()
5314 psa_status_t psa_aead_set_lengths(psa_aead_operation_t *operation, in psa_aead_set_lengths() argument
5320 if (operation->id == 0) { in psa_aead_set_lengths()
5325 if (operation->lengths_set || operation->ad_started || in psa_aead_set_lengths()
5326 operation->body_started) { in psa_aead_set_lengths()
5331 switch (operation->alg) { in psa_aead_set_lengths()
5363 status = psa_driver_wrapper_aead_set_lengths(operation, ad_length, in psa_aead_set_lengths()
5368 operation->ad_remaining = ad_length; in psa_aead_set_lengths()
5369 operation->body_remaining = plaintext_length; in psa_aead_set_lengths()
5370 operation->lengths_set = 1; in psa_aead_set_lengths()
5372 psa_aead_abort(operation); in psa_aead_set_lengths()
5379 psa_status_t psa_aead_update_ad(psa_aead_operation_t *operation, in psa_aead_update_ad() argument
5388 if (operation->id == 0) { in psa_aead_update_ad()
5393 if (!operation->nonce_set || operation->body_started) { in psa_aead_update_ad()
5404 if (operation->lengths_set) { in psa_aead_update_ad()
5405 if (operation->ad_remaining < input_length) { in psa_aead_update_ad()
5410 operation->ad_remaining -= input_length; in psa_aead_update_ad()
5413 else if (operation->alg == PSA_ALG_CCM) { in psa_aead_update_ad()
5419 status = psa_driver_wrapper_aead_update_ad(operation, input, in psa_aead_update_ad()
5424 operation->ad_started = 1; in psa_aead_update_ad()
5426 psa_aead_abort(operation); in psa_aead_update_ad()
5436 psa_status_t psa_aead_update(psa_aead_operation_t *operation, in psa_aead_update() argument
5454 if (operation->id == 0) { in psa_aead_update()
5459 if (!operation->nonce_set) { in psa_aead_update()
5464 if (operation->lengths_set) { in psa_aead_update()
5467 if (operation->ad_remaining != 0) { in psa_aead_update()
5473 if (operation->body_remaining < input_length) { in psa_aead_update()
5478 operation->body_remaining -= input_length; in psa_aead_update()
5481 else if (operation->alg == PSA_ALG_CCM) { in psa_aead_update()
5487 status = psa_driver_wrapper_aead_update(operation, input, input_length, in psa_aead_update()
5493 operation->body_started = 1; in psa_aead_update()
5495 psa_aead_abort(operation); in psa_aead_update()
5504 static psa_status_t psa_aead_final_checks(const psa_aead_operation_t *operation) in psa_aead_final_checks() argument
5506 if (operation->id == 0 || !operation->nonce_set) { in psa_aead_final_checks()
5510 if (operation->lengths_set && (operation->ad_remaining != 0 || in psa_aead_final_checks()
5511 operation->body_remaining != 0)) { in psa_aead_final_checks()
5519 psa_status_t psa_aead_finish(psa_aead_operation_t *operation, in psa_aead_finish() argument
5538 status = psa_aead_final_checks(operation); in psa_aead_finish()
5543 if (!operation->is_encrypt) { in psa_aead_finish()
5548 status = psa_driver_wrapper_aead_finish(operation, ciphertext, in psa_aead_finish()
5563 psa_aead_abort(operation); in psa_aead_finish()
5573 psa_status_t psa_aead_verify(psa_aead_operation_t *operation, in psa_aead_verify() argument
5590 status = psa_aead_final_checks(operation); in psa_aead_verify()
5595 if (operation->is_encrypt) { in psa_aead_verify()
5600 status = psa_driver_wrapper_aead_verify(operation, plaintext, in psa_aead_verify()
5606 psa_aead_abort(operation); in psa_aead_verify()
5615 psa_status_t psa_aead_abort(psa_aead_operation_t *operation) in psa_aead_abort() argument
5619 if (operation->id == 0) { in psa_aead_abort()
5626 status = psa_driver_wrapper_aead_abort(operation); in psa_aead_abort()
5628 memset(operation, 0, sizeof(*operation)); in psa_aead_abort()
5660 psa_mac_operation_t *operation, in psa_key_derivation_start_hmac() argument
5677 memset(operation, 0, sizeof(*operation)); in psa_key_derivation_start_hmac()
5679 operation->is_sign = 1; in psa_key_derivation_start_hmac()
5680 operation->mac_size = PSA_HASH_LENGTH(hash_alg); in psa_key_derivation_start_hmac()
5682 status = psa_driver_wrapper_mac_sign_setup(operation, in psa_key_derivation_start_hmac()
5698 const psa_key_derivation_operation_t *operation) in psa_key_derivation_get_kdf_alg() argument
5700 if (PSA_ALG_IS_KEY_AGREEMENT(operation->alg)) { in psa_key_derivation_get_kdf_alg()
5701 return PSA_ALG_KEY_AGREEMENT_GET_KDF(operation->alg); in psa_key_derivation_get_kdf_alg()
5703 return operation->alg; in psa_key_derivation_get_kdf_alg()
5707 psa_status_t psa_key_derivation_abort(psa_key_derivation_operation_t *operation) in psa_key_derivation_abort() argument
5710 psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); in psa_key_derivation_abort()
5718 mbedtls_free(operation->ctx.hkdf.info); in psa_key_derivation_abort()
5719 status = psa_mac_abort(&operation->ctx.hkdf.hmac); in psa_key_derivation_abort()
5727 if (operation->ctx.tls12_prf.secret != NULL) { in psa_key_derivation_abort()
5728 mbedtls_zeroize_and_free(operation->ctx.tls12_prf.secret, in psa_key_derivation_abort()
5729 operation->ctx.tls12_prf.secret_length); in psa_key_derivation_abort()
5732 if (operation->ctx.tls12_prf.seed != NULL) { in psa_key_derivation_abort()
5733 mbedtls_zeroize_and_free(operation->ctx.tls12_prf.seed, in psa_key_derivation_abort()
5734 operation->ctx.tls12_prf.seed_length); in psa_key_derivation_abort()
5737 if (operation->ctx.tls12_prf.label != NULL) { in psa_key_derivation_abort()
5738 mbedtls_zeroize_and_free(operation->ctx.tls12_prf.label, in psa_key_derivation_abort()
5739 operation->ctx.tls12_prf.label_length); in psa_key_derivation_abort()
5742 if (operation->ctx.tls12_prf.other_secret != NULL) { in psa_key_derivation_abort()
5743 mbedtls_zeroize_and_free(operation->ctx.tls12_prf.other_secret, in psa_key_derivation_abort()
5744 operation->ctx.tls12_prf.other_secret_length); in psa_key_derivation_abort()
5756 mbedtls_platform_zeroize(operation->ctx.tls12_ecjpake_to_pms.data, in psa_key_derivation_abort()
5757 sizeof(operation->ctx.tls12_ecjpake_to_pms.data)); in psa_key_derivation_abort()
5762 if (operation->ctx.pbkdf2.salt != NULL) { in psa_key_derivation_abort()
5763 mbedtls_zeroize_and_free(operation->ctx.pbkdf2.salt, in psa_key_derivation_abort()
5764 operation->ctx.pbkdf2.salt_length); in psa_key_derivation_abort()
5773 mbedtls_platform_zeroize(operation, sizeof(*operation)); in psa_key_derivation_abort()
5777 psa_status_t psa_key_derivation_get_capacity(const psa_key_derivation_operation_t *operation, in psa_key_derivation_get_capacity() argument
5780 if (operation->alg == 0) { in psa_key_derivation_get_capacity()
5785 *capacity = operation->capacity; in psa_key_derivation_get_capacity()
5789 psa_status_t psa_key_derivation_set_capacity(psa_key_derivation_operation_t *operation, in psa_key_derivation_set_capacity() argument
5792 if (operation->alg == 0) { in psa_key_derivation_set_capacity()
5795 if (capacity > operation->capacity) { in psa_key_derivation_set_capacity()
5798 operation->capacity = capacity; in psa_key_derivation_set_capacity()
6242 psa_key_derivation_operation_t *operation, in psa_key_derivation_output_bytes() argument
6249 psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); in psa_key_derivation_output_bytes()
6251 if (operation->alg == 0) { in psa_key_derivation_output_bytes()
6256 if (output_length == 0 && operation->capacity == 0) { in psa_key_derivation_output_bytes()
6267 if (output_length > operation->capacity) { in psa_key_derivation_output_bytes()
6268 operation->capacity = 0; in psa_key_derivation_output_bytes()
6275 operation->capacity -= output_length; in psa_key_derivation_output_bytes()
6279 status = psa_key_derivation_hkdf_read(&operation->ctx.hkdf, kdf_alg, in psa_key_derivation_output_bytes()
6287 status = psa_key_derivation_tls12_prf_read(&operation->ctx.tls12_prf, in psa_key_derivation_output_bytes()
6296 &operation->ctx.tls12_ecjpake_to_pms, output, output_length); in psa_key_derivation_output_bytes()
6301 status = psa_key_derivation_pbkdf2_read(&operation->ctx.pbkdf2, kdf_alg, in psa_key_derivation_output_bytes()
6320 psa_algorithm_t alg = operation->alg; in psa_key_derivation_output_bytes()
6321 psa_key_derivation_abort(operation); in psa_key_derivation_output_bytes()
6322 operation->alg = alg; in psa_key_derivation_output_bytes()
6381 psa_key_derivation_operation_t *operation, in psa_generate_derived_ecc_key_weierstrass_helper() argument
6430 if ((status = psa_key_derivation_output_bytes(operation, *data, m_bytes)) != 0) { in psa_generate_derived_ecc_key_weierstrass_helper()
6488 psa_key_derivation_operation_t *operation, in psa_generate_derived_ecc_key_montgomery_helper() argument
6513 status = psa_key_derivation_output_bytes(operation, *data, output_length); in psa_generate_derived_ecc_key_montgomery_helper()
6539 psa_key_derivation_operation_t *operation, uint8_t **data) in psa_generate_derived_ecc_key_weierstrass_helper() argument
6543 (void) operation; in psa_generate_derived_ecc_key_weierstrass_helper()
6549 size_t bits, psa_key_derivation_operation_t *operation, uint8_t **data) in psa_generate_derived_ecc_key_montgomery_helper() argument
6552 (void) operation; in psa_generate_derived_ecc_key_montgomery_helper()
6562 psa_key_derivation_operation_t *operation) in psa_generate_derived_key_internal() argument
6579 status = psa_generate_derived_ecc_key_weierstrass_helper(slot, bits, operation, &data); in psa_generate_derived_key_internal()
6585 status = psa_generate_derived_ecc_key_montgomery_helper(bits, operation, &data); in psa_generate_derived_key_internal()
6602 status = psa_key_derivation_output_bytes(operation, data, bytes); in psa_generate_derived_key_internal()
6661 psa_key_derivation_operation_t *operation, in psa_key_derivation_output_key_custom() argument
6684 if (operation->alg == PSA_ALG_NONE) { in psa_key_derivation_output_key_custom()
6688 if (!operation->can_output_key) { in psa_key_derivation_output_key_custom()
6703 operation); in psa_key_derivation_output_key_custom()
6717 psa_key_derivation_operation_t *operation, in psa_key_derivation_output_key_ext() argument
6723 attributes, operation, in psa_key_derivation_output_key_ext()
6731 psa_key_derivation_operation_t *operation, in psa_key_derivation_output_key() argument
6734 return psa_key_derivation_output_key_custom(attributes, operation, in psa_key_derivation_output_key()
6793 psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; in psa_hash_try_support() local
6794 psa_status_t status = psa_hash_setup(&operation, alg); in psa_hash_try_support()
6795 psa_hash_abort(&operation); in psa_hash_try_support()
6800 psa_key_derivation_operation_t *operation, in psa_key_derivation_set_maximum_capacity() argument
6805 operation->capacity = PSA_HASH_LENGTH(PSA_ALG_SHA_256); in psa_key_derivation_set_maximum_capacity()
6812 operation->capacity = UINT32_MAX * (size_t) PSA_MAC_LENGTH( in psa_key_derivation_set_maximum_capacity()
6817 operation->capacity = SIZE_MAX; in psa_key_derivation_set_maximum_capacity()
6841 operation->capacity = 255 * hash_size; in psa_key_derivation_set_maximum_capacity()
6846 operation->capacity = hash_size; in psa_key_derivation_set_maximum_capacity()
6851 operation->capacity = 255 * hash_size; in psa_key_derivation_set_maximum_capacity()
6857 operation->capacity = SIZE_MAX; in psa_key_derivation_set_maximum_capacity()
6865 operation->capacity = 48U; in psa_key_derivation_set_maximum_capacity()
6871 operation->capacity = UINT32_MAX * hash_size; in psa_key_derivation_set_maximum_capacity()
6873 operation->capacity = SIZE_MAX; in psa_key_derivation_set_maximum_capacity()
6885 psa_key_derivation_operation_t *operation, in psa_key_derivation_setup_kdf() argument
6890 memset(&operation->ctx, 0, sizeof(operation->ctx)); in psa_key_derivation_setup_kdf()
6897 psa_status_t status = psa_key_derivation_set_maximum_capacity(operation, in psa_key_derivation_setup_kdf()
6931 psa_status_t psa_key_derivation_setup(psa_key_derivation_operation_t *operation, in psa_key_derivation_setup() argument
6936 if (operation->alg != 0) { in psa_key_derivation_setup()
6953 status = psa_key_derivation_setup_kdf(operation, kdf_alg); in psa_key_derivation_setup()
6959 status = psa_key_derivation_setup_kdf(operation, alg); in psa_key_derivation_setup()
6968 operation->alg = alg; in psa_key_derivation_setup()
7554 psa_key_derivation_operation_t *operation, in psa_key_derivation_input_internal() argument
7561 psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); in psa_key_derivation_input_internal()
7576 status = psa_hkdf_input(&operation->ctx.hkdf, kdf_alg, in psa_key_derivation_input_internal()
7582 status = psa_tls12_prf_input(&operation->ctx.tls12_prf, in psa_key_derivation_input_internal()
7588 status = psa_tls12_prf_psk_to_ms_input(&operation->ctx.tls12_prf, in psa_key_derivation_input_internal()
7595 &operation->ctx.tls12_ecjpake_to_pms, step, data, data_length); in psa_key_derivation_input_internal()
7600 status = psa_pbkdf2_input(&operation->ctx.pbkdf2, kdf_alg, in psa_key_derivation_input_internal()
7614 psa_key_derivation_abort(operation); in psa_key_derivation_input_internal()
7620 psa_key_derivation_operation_t *operation, in psa_key_derivation_input_integer_internal() argument
7625 psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); in psa_key_derivation_input_integer_internal()
7636 &operation->ctx.pbkdf2, step, value); in psa_key_derivation_input_integer_internal()
7648 psa_key_derivation_abort(operation); in psa_key_derivation_input_integer_internal()
7654 psa_key_derivation_operation_t *operation, in psa_key_derivation_input_bytes() argument
7664 status = psa_key_derivation_input_internal(operation, step, in psa_key_derivation_input_bytes()
7675 psa_key_derivation_operation_t *operation, in psa_key_derivation_input_integer() argument
7679 return psa_key_derivation_input_integer_internal(operation, step, value); in psa_key_derivation_input_integer()
7683 psa_key_derivation_operation_t *operation, in psa_key_derivation_input_key() argument
7692 key, &slot, PSA_KEY_USAGE_DERIVE, operation->alg); in psa_key_derivation_input_key()
7694 psa_key_derivation_abort(operation); in psa_key_derivation_input_key()
7702 operation->can_output_key = 1; in psa_key_derivation_input_key()
7705 status = psa_key_derivation_input_internal(operation, in psa_key_derivation_input_key()
7797 static psa_status_t psa_key_agreement_internal(psa_key_derivation_operation_t *operation, in psa_key_agreement_internal() argument
7806 psa_algorithm_t ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE(operation->alg); in psa_key_agreement_internal()
7823 status = psa_key_derivation_input_internal(operation, step, in psa_key_agreement_internal()
7832 psa_status_t psa_key_derivation_key_agreement(psa_key_derivation_operation_t *operation, in psa_key_derivation_key_agreement() argument
7843 if (!PSA_ALG_IS_KEY_AGREEMENT(operation->alg)) { in psa_key_derivation_key_agreement()
7847 private_key, &slot, PSA_KEY_USAGE_DERIVE, operation->alg); in psa_key_derivation_key_agreement()
7853 status = psa_key_agreement_internal(operation, step, in psa_key_derivation_key_agreement()
7861 psa_key_derivation_abort(operation); in psa_key_derivation_key_agreement()
7866 operation->can_output_key = 1; in psa_key_derivation_key_agreement()
8688 psa_pake_operation_t *operation, in psa_pake_setup() argument
8693 if (operation->stage != PSA_PAKE_OPERATION_STAGE_SETUP) { in psa_pake_setup()
8708 memset(&operation->data, 0, sizeof(operation->data)); in psa_pake_setup()
8710 operation->alg = cipher_suite->algorithm; in psa_pake_setup()
8711 operation->primitive = PSA_PAKE_PRIMITIVE(cipher_suite->type, in psa_pake_setup()
8713 operation->data.inputs.cipher_suite = *cipher_suite; in psa_pake_setup()
8716 if (operation->alg == PSA_ALG_JPAKE) { in psa_pake_setup()
8718 &operation->computation_stage.jpake; in psa_pake_setup()
8729 operation->stage = PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS; in psa_pake_setup()
8733 psa_pake_abort(operation); in psa_pake_setup()
8738 psa_pake_operation_t *operation, in psa_pake_set_password_key() argument
8746 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_set_password_key()
8753 operation->alg); in psa_pake_set_password_key()
8766 operation->data.inputs.password = mbedtls_calloc(1, slot->key.bytes); in psa_pake_set_password_key()
8767 if (operation->data.inputs.password == NULL) { in psa_pake_set_password_key()
8772 memcpy(operation->data.inputs.password, slot->key.data, slot->key.bytes); in psa_pake_set_password_key()
8773 operation->data.inputs.password_len = slot->key.bytes; in psa_pake_set_password_key()
8774 operation->data.inputs.attributes = slot->attr; in psa_pake_set_password_key()
8778 psa_pake_abort(operation); in psa_pake_set_password_key()
8785 psa_pake_operation_t *operation, in psa_pake_set_user() argument
8792 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_set_user()
8802 if (operation->data.inputs.user_len != 0) { in psa_pake_set_user()
8807 operation->data.inputs.user = mbedtls_calloc(1, user_id_len); in psa_pake_set_user()
8808 if (operation->data.inputs.user == NULL) { in psa_pake_set_user()
8815 memcpy(operation->data.inputs.user, user_id, user_id_len); in psa_pake_set_user()
8816 operation->data.inputs.user_len = user_id_len; in psa_pake_set_user()
8823 psa_pake_abort(operation); in psa_pake_set_user()
8829 psa_pake_operation_t *operation, in psa_pake_set_peer() argument
8836 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_set_peer()
8846 if (operation->data.inputs.peer_len != 0) { in psa_pake_set_peer()
8851 operation->data.inputs.peer = mbedtls_calloc(1, peer_id_len); in psa_pake_set_peer()
8852 if (operation->data.inputs.peer == NULL) { in psa_pake_set_peer()
8859 memcpy(operation->data.inputs.peer, peer_id, peer_id_len); in psa_pake_set_peer()
8860 operation->data.inputs.peer_len = peer_id_len; in psa_pake_set_peer()
8867 psa_pake_abort(operation); in psa_pake_set_peer()
8873 psa_pake_operation_t *operation, in psa_pake_set_role() argument
8878 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_set_role()
8883 switch (operation->alg) { in psa_pake_set_role()
8898 psa_pake_abort(operation); in psa_pake_set_role()
8932 psa_pake_operation_t *operation) in psa_pake_complete_inputs() argument
8937 psa_crypto_driver_pake_inputs_t inputs = operation->data.inputs; in psa_pake_complete_inputs()
8943 if (operation->alg == PSA_ALG_JPAKE) { in psa_pake_complete_inputs()
8950 mbedtls_platform_zeroize(&operation->data, sizeof(operation->data)); in psa_pake_complete_inputs()
8952 status = psa_driver_wrapper_pake_setup(operation, &inputs); in psa_pake_complete_inputs()
8963 if (operation->alg == PSA_ALG_JPAKE) { in psa_pake_complete_inputs()
8964 operation->stage = PSA_PAKE_OPERATION_STAGE_COMPUTATION; in psa_pake_complete_inputs()
8976 psa_pake_operation_t *operation, in psa_jpake_prologue() argument
8987 &operation->computation_stage.jpake; in psa_jpake_prologue()
9015 psa_pake_operation_t *operation, in psa_jpake_epilogue() argument
9019 &operation->computation_stage.jpake; in psa_jpake_epilogue()
9052 psa_pake_operation_t *operation, in psa_pake_output() argument
9063 if (operation->stage == PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_output()
9064 status = psa_pake_complete_inputs(operation); in psa_pake_output()
9070 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COMPUTATION) { in psa_pake_output()
9080 switch (operation->alg) { in psa_pake_output()
9083 status = psa_jpake_prologue(operation, step, PSA_JPAKE_OUTPUT); in psa_pake_output()
9088 &operation->computation_stage.jpake); in psa_pake_output()
9099 status = psa_driver_wrapper_pake_output(operation, driver_step, in psa_pake_output()
9106 switch (operation->alg) { in psa_pake_output()
9109 status = psa_jpake_epilogue(operation, PSA_JPAKE_OUTPUT); in psa_pake_output()
9123 psa_pake_abort(operation); in psa_pake_output()
9129 psa_pake_operation_t *operation, in psa_pake_input() argument
9136 const size_t max_input_length = (size_t) PSA_PAKE_INPUT_SIZE(operation->alg, in psa_pake_input()
9137 operation->primitive, in psa_pake_input()
9141 if (operation->stage == PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_input()
9142 status = psa_pake_complete_inputs(operation); in psa_pake_input()
9148 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COMPUTATION) { in psa_pake_input()
9158 switch (operation->alg) { in psa_pake_input()
9161 status = psa_jpake_prologue(operation, step, PSA_JPAKE_INPUT); in psa_pake_input()
9166 &operation->computation_stage.jpake); in psa_pake_input()
9176 status = psa_driver_wrapper_pake_input(operation, driver_step, in psa_pake_input()
9183 switch (operation->alg) { in psa_pake_input()
9186 status = psa_jpake_epilogue(operation, PSA_JPAKE_INPUT); in psa_pake_input()
9200 psa_pake_abort(operation); in psa_pake_input()
9206 psa_pake_operation_t *operation, in psa_pake_get_implicit_key() argument
9214 if (operation->stage != PSA_PAKE_OPERATION_STAGE_COMPUTATION) { in psa_pake_get_implicit_key()
9220 if (operation->alg == PSA_ALG_JPAKE) { in psa_pake_get_implicit_key()
9222 &operation->computation_stage.jpake; in psa_pake_get_implicit_key()
9234 status = psa_driver_wrapper_pake_get_implicit_key(operation, in psa_pake_get_implicit_key()
9250 abort_status = psa_pake_abort(operation); in psa_pake_get_implicit_key()
9255 psa_pake_operation_t *operation) in psa_pake_abort() argument
9259 if (operation->stage == PSA_PAKE_OPERATION_STAGE_COMPUTATION) { in psa_pake_abort()
9260 status = psa_driver_wrapper_pake_abort(operation); in psa_pake_abort()
9263 if (operation->stage == PSA_PAKE_OPERATION_STAGE_COLLECT_INPUTS) { in psa_pake_abort()
9264 if (operation->data.inputs.password != NULL) { in psa_pake_abort()
9265 mbedtls_zeroize_and_free(operation->data.inputs.password, in psa_pake_abort()
9266 operation->data.inputs.password_len); in psa_pake_abort()
9268 if (operation->data.inputs.user != NULL) { in psa_pake_abort()
9269 mbedtls_free(operation->data.inputs.user); in psa_pake_abort()
9271 if (operation->data.inputs.peer != NULL) { in psa_pake_abort()
9272 mbedtls_free(operation->data.inputs.peer); in psa_pake_abort()
9275 memset(operation, 0, sizeof(psa_pake_operation_t)); in psa_pake_abort()