Lines Matching refs:operation
27 mbedtls_psa_aead_operation_t *operation, in psa_aead_setup() argument
48 operation->alg = PSA_ALG_CCM; in psa_aead_setup()
56 mbedtls_ccm_init(&operation->ctx.ccm); in psa_aead_setup()
58 mbedtls_ccm_setkey(&operation->ctx.ccm, cipher_id, in psa_aead_setup()
68 operation->alg = PSA_ALG_GCM; in psa_aead_setup()
76 mbedtls_gcm_init(&operation->ctx.gcm); in psa_aead_setup()
78 mbedtls_gcm_setkey(&operation->ctx.gcm, cipher_id, in psa_aead_setup()
88 operation->alg = PSA_ALG_CHACHA20_POLY1305; in psa_aead_setup()
94 mbedtls_chachapoly_init(&operation->ctx.chachapoly); in psa_aead_setup()
96 mbedtls_chachapoly_setkey(&operation->ctx.chachapoly, in psa_aead_setup()
110 operation->key_type = psa_get_key_type(attributes); in psa_aead_setup()
112 operation->tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); in psa_aead_setup()
127 mbedtls_psa_aead_operation_t operation = MBEDTLS_PSA_AEAD_OPERATION_INIT; in mbedtls_psa_aead_encrypt() local
130 status = psa_aead_setup(&operation, attributes, key_buffer, in mbedtls_psa_aead_encrypt()
139 if (ciphertext_size < (plaintext_length + operation.tag_length)) { in mbedtls_psa_aead_encrypt()
146 if (operation.alg == PSA_ALG_CCM) { in mbedtls_psa_aead_encrypt()
148 mbedtls_ccm_encrypt_and_tag(&operation.ctx.ccm, in mbedtls_psa_aead_encrypt()
154 tag, operation.tag_length)); in mbedtls_psa_aead_encrypt()
158 if (operation.alg == PSA_ALG_GCM) { in mbedtls_psa_aead_encrypt()
160 mbedtls_gcm_crypt_and_tag(&operation.ctx.gcm, in mbedtls_psa_aead_encrypt()
166 operation.tag_length, tag)); in mbedtls_psa_aead_encrypt()
170 if (operation.alg == PSA_ALG_CHACHA20_POLY1305) { in mbedtls_psa_aead_encrypt()
171 if (operation.tag_length != 16) { in mbedtls_psa_aead_encrypt()
176 mbedtls_chachapoly_encrypt_and_tag(&operation.ctx.chachapoly, in mbedtls_psa_aead_encrypt()
197 *ciphertext_length = plaintext_length + operation.tag_length; in mbedtls_psa_aead_encrypt()
201 mbedtls_psa_aead_abort(&operation); in mbedtls_psa_aead_encrypt()
239 mbedtls_psa_aead_operation_t operation = MBEDTLS_PSA_AEAD_OPERATION_INIT; in mbedtls_psa_aead_decrypt() local
242 status = psa_aead_setup(&operation, attributes, key_buffer, in mbedtls_psa_aead_decrypt()
249 status = psa_aead_unpadded_locate_tag(operation.tag_length, in mbedtls_psa_aead_decrypt()
257 if (operation.alg == PSA_ALG_CCM) { in mbedtls_psa_aead_decrypt()
259 mbedtls_ccm_auth_decrypt(&operation.ctx.ccm, in mbedtls_psa_aead_decrypt()
260 ciphertext_length - operation.tag_length, in mbedtls_psa_aead_decrypt()
265 tag, operation.tag_length)); in mbedtls_psa_aead_decrypt()
269 if (operation.alg == PSA_ALG_GCM) { in mbedtls_psa_aead_decrypt()
271 mbedtls_gcm_auth_decrypt(&operation.ctx.gcm, in mbedtls_psa_aead_decrypt()
272 ciphertext_length - operation.tag_length, in mbedtls_psa_aead_decrypt()
276 tag, operation.tag_length, in mbedtls_psa_aead_decrypt()
281 if (operation.alg == PSA_ALG_CHACHA20_POLY1305) { in mbedtls_psa_aead_decrypt()
282 if (operation.tag_length != 16) { in mbedtls_psa_aead_decrypt()
287 mbedtls_chachapoly_auth_decrypt(&operation.ctx.chachapoly, in mbedtls_psa_aead_decrypt()
288 ciphertext_length - operation.tag_length, in mbedtls_psa_aead_decrypt()
307 *plaintext_length = ciphertext_length - operation.tag_length; in mbedtls_psa_aead_decrypt()
311 mbedtls_psa_aead_abort(&operation); in mbedtls_psa_aead_decrypt()
314 *plaintext_length = ciphertext_length - operation.tag_length; in mbedtls_psa_aead_decrypt()
322 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_encrypt_setup() argument
330 status = psa_aead_setup(operation, attributes, key_buffer, in mbedtls_psa_aead_encrypt_setup()
334 operation->is_encrypt = 1; in mbedtls_psa_aead_encrypt_setup()
343 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_decrypt_setup() argument
351 status = psa_aead_setup(operation, attributes, key_buffer, in mbedtls_psa_aead_decrypt_setup()
355 operation->is_encrypt = 0; in mbedtls_psa_aead_decrypt_setup()
363 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_set_nonce() argument
370 if (operation->alg == PSA_ALG_GCM) { in mbedtls_psa_aead_set_nonce()
372 mbedtls_gcm_starts(&operation->ctx.gcm, in mbedtls_psa_aead_set_nonce()
373 operation->is_encrypt ? in mbedtls_psa_aead_set_nonce()
380 if (operation->alg == PSA_ALG_CCM) { in mbedtls_psa_aead_set_nonce()
382 mbedtls_ccm_starts(&operation->ctx.ccm, in mbedtls_psa_aead_set_nonce()
383 operation->is_encrypt ? in mbedtls_psa_aead_set_nonce()
390 if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { in mbedtls_psa_aead_set_nonce()
401 mbedtls_chachapoly_starts(&operation->ctx.chachapoly, in mbedtls_psa_aead_set_nonce()
403 operation->is_encrypt ? in mbedtls_psa_aead_set_nonce()
409 (void) operation; in mbedtls_psa_aead_set_nonce()
421 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_set_lengths() argument
426 if (operation->alg == PSA_ALG_CCM) { in mbedtls_psa_aead_set_lengths()
428 mbedtls_ccm_set_lengths(&operation->ctx.ccm, in mbedtls_psa_aead_set_lengths()
431 operation->tag_length)); in mbedtls_psa_aead_set_lengths()
435 (void) operation; in mbedtls_psa_aead_set_lengths()
445 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_update_ad() argument
452 if (operation->alg == PSA_ALG_GCM) { in mbedtls_psa_aead_update_ad()
454 mbedtls_gcm_update_ad(&operation->ctx.gcm, input, input_length)); in mbedtls_psa_aead_update_ad()
458 if (operation->alg == PSA_ALG_CCM) { in mbedtls_psa_aead_update_ad()
460 mbedtls_ccm_update_ad(&operation->ctx.ccm, input, input_length)); in mbedtls_psa_aead_update_ad()
464 if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { in mbedtls_psa_aead_update_ad()
466 mbedtls_chachapoly_update_aad(&operation->ctx.chachapoly, in mbedtls_psa_aead_update_ad()
472 (void) operation; in mbedtls_psa_aead_update_ad()
485 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_update() argument
498 if (operation->alg == PSA_ALG_GCM) { in mbedtls_psa_aead_update()
500 mbedtls_gcm_update(&operation->ctx.gcm, in mbedtls_psa_aead_update()
507 if (operation->alg == PSA_ALG_CCM) { in mbedtls_psa_aead_update()
513 mbedtls_ccm_update(&operation->ctx.ccm, in mbedtls_psa_aead_update()
520 if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { in mbedtls_psa_aead_update()
526 mbedtls_chachapoly_update(&operation->ctx.chachapoly, in mbedtls_psa_aead_update()
533 (void) operation; in mbedtls_psa_aead_update()
550 mbedtls_psa_aead_operation_t *operation, in mbedtls_psa_aead_finish() argument
561 if (tag_size < operation->tag_length) { in mbedtls_psa_aead_finish()
566 if (operation->alg == PSA_ALG_GCM) { in mbedtls_psa_aead_finish()
568 mbedtls_gcm_finish(&operation->ctx.gcm, in mbedtls_psa_aead_finish()
570 tag, operation->tag_length)); in mbedtls_psa_aead_finish()
574 if (operation->alg == PSA_ALG_CCM) { in mbedtls_psa_aead_finish()
577 if (tag_size < operation->tag_length) { in mbedtls_psa_aead_finish()
582 mbedtls_ccm_finish(&operation->ctx.ccm, in mbedtls_psa_aead_finish()
583 tag, operation->tag_length)); in mbedtls_psa_aead_finish()
587 if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { in mbedtls_psa_aead_finish()
597 mbedtls_chachapoly_finish(&operation->ctx.chachapoly, in mbedtls_psa_aead_finish()
616 *tag_length = operation->tag_length; in mbedtls_psa_aead_finish()
624 mbedtls_psa_aead_operation_t *operation) in mbedtls_psa_aead_abort() argument
626 switch (operation->alg) { in mbedtls_psa_aead_abort()
629 mbedtls_ccm_free(&operation->ctx.ccm); in mbedtls_psa_aead_abort()
634 mbedtls_gcm_free(&operation->ctx.gcm); in mbedtls_psa_aead_abort()
639 mbedtls_chachapoly_free(&operation->ctx.chachapoly); in mbedtls_psa_aead_abort()
644 operation->is_encrypt = 0; in mbedtls_psa_aead_abort()