Lines Matching refs:aes_ctx
381 aes_ctx_t *aes_ctx; in aes_common_init() local
393 if ((rv = aes_check_mech_param(mechanism, &aes_ctx, kmflag)) in aes_common_init()
397 rv = aes_common_init_ctx(aes_ctx, template, mechanism, key, kmflag, in aes_common_init()
400 crypto_free_mode_ctx(aes_ctx); in aes_common_init()
404 ctx->cc_provider_private = aes_ctx; in aes_common_init()
415 aes_ctx_t *aes_ctx; in aes_encrypt() local
419 aes_ctx = ctx->cc_provider_private; in aes_encrypt()
425 if (((aes_ctx->ac_flags & (CMAC_MODE|CTR_MODE|CCM_MODE| in aes_encrypt()
436 switch (aes_ctx->ac_flags & (CMAC_MODE|CCM_MODE|GCM_MODE|GMAC_MODE)) { in aes_encrypt()
438 length_needed = plaintext->cd_length + aes_ctx->ac_mac_len; in aes_encrypt()
441 length_needed = plaintext->cd_length + aes_ctx->ac_tag_len; in aes_encrypt()
450 length_needed = aes_ctx->ac_tag_len; in aes_encrypt()
476 if (aes_ctx->ac_flags & CCM_MODE) { in aes_encrypt()
486 ret = ccm_encrypt_final((ccm_ctx_t *)aes_ctx, ciphertext, in aes_encrypt()
497 } else if (aes_ctx->ac_flags & (GCM_MODE|GMAC_MODE)) { in aes_encrypt()
507 ret = gcm_encrypt_final((gcm_ctx_t *)aes_ctx, ciphertext, in aes_encrypt()
519 } else if (aes_ctx->ac_flags & CMAC_MODE) { in aes_encrypt()
522 ret = cmac_mode_final((cbc_ctx_t *)aes_ctx, ciphertext, in aes_encrypt()
524 aes_ctx->ac_remainder_len = 0; in aes_encrypt()
527 ASSERT(aes_ctx->ac_remainder_len == 0); in aes_encrypt()
540 aes_ctx_t *aes_ctx; in aes_decrypt() local
545 aes_ctx = ctx->cc_provider_private; in aes_decrypt()
551 if (((aes_ctx->ac_flags & (CTR_MODE|CCM_MODE|GCM_MODE|GMAC_MODE)) in aes_decrypt()
566 switch (aes_ctx->ac_flags & (CCM_MODE|GCM_MODE|GMAC_MODE)) { in aes_decrypt()
568 length_needed = aes_ctx->ac_processed_data_len; in aes_decrypt()
571 length_needed = ciphertext->cd_length - aes_ctx->ac_tag_len; in aes_decrypt()
599 if (aes_ctx->ac_flags & CCM_MODE) { in aes_decrypt()
600 ASSERT(aes_ctx->ac_processed_data_len == aes_ctx->ac_data_len); in aes_decrypt()
601 ASSERT(aes_ctx->ac_processed_mac_len == aes_ctx->ac_mac_len); in aes_decrypt()
607 ret = ccm_decrypt_final((ccm_ctx_t *)aes_ctx, plaintext, in aes_decrypt()
620 } else if (aes_ctx->ac_flags & (GCM_MODE|GMAC_MODE)) { in aes_decrypt()
625 ret = gcm_decrypt_final((gcm_ctx_t *)aes_ctx, plaintext, in aes_decrypt()
639 ASSERT(aes_ctx->ac_remainder_len == 0); in aes_decrypt()
656 aes_ctx_t *aes_ctx; in aes_encrypt_update() local
659 aes_ctx = ctx->cc_provider_private; in aes_encrypt_update()
670 out_len = plaintext->cd_length + aes_ctx->ac_remainder_len; in aes_encrypt_update()
671 if ((aes_ctx->ac_flags & CTR_MODE) == 0) in aes_encrypt_update()
678 if ((aes_ctx->ac_flags & CMAC_MODE) == 0 && in aes_encrypt_update()
731 aes_ctx_t *aes_ctx; in aes_decrypt_update() local
734 aes_ctx = ctx->cc_provider_private; in aes_decrypt_update()
750 out_len = aes_ctx->ac_remainder_len + ciphertext->cd_length; in aes_decrypt_update()
751 if ((aes_ctx->ac_flags & (CCM_MODE|GCM_MODE|GMAC_MODE)) != 0) { in aes_decrypt_update()
753 } else if ((aes_ctx->ac_flags & CTR_MODE) == 0) { in aes_decrypt_update()
766 if (aes_ctx->ac_flags & (GCM_MODE|GMAC_MODE)) in aes_decrypt_update()
767 gcm_set_kmflag((gcm_ctx_t *)aes_ctx, crypto_kmflag(req)); in aes_decrypt_update()
810 aes_ctx_t *aes_ctx; in aes_encrypt_final() local
814 aes_ctx = ctx->cc_provider_private; in aes_encrypt_final()
822 if (aes_ctx->ac_flags & CCM_MODE) { in aes_encrypt_final()
823 ret = ccm_encrypt_final((ccm_ctx_t *)aes_ctx, data, in aes_encrypt_final()
828 } else if (aes_ctx->ac_flags & (GCM_MODE|GMAC_MODE)) { in aes_encrypt_final()
831 ret = gcm_encrypt_final((gcm_ctx_t *)aes_ctx, data, in aes_encrypt_final()
839 } else if (aes_ctx->ac_flags & CMAC_MODE) { in aes_encrypt_final()
840 ret = cmac_mode_final((cbc_ctx_t *)aes_ctx, data, in aes_encrypt_final()
845 } else if ((aes_ctx->ac_flags & CTR_MODE) == 0) { in aes_encrypt_final()
851 if (aes_ctx->ac_remainder_len > 0) { in aes_encrypt_final()
867 aes_ctx_t *aes_ctx; in aes_decrypt_final() local
873 aes_ctx = ctx->cc_provider_private; in aes_decrypt_final()
889 if (aes_ctx->ac_remainder_len > 0 && in aes_decrypt_final()
890 (aes_ctx->ac_flags & CTR_MODE) == 0) { in aes_decrypt_final()
894 if (aes_ctx->ac_flags & CCM_MODE) { in aes_decrypt_final()
899 size_t pt_len = aes_ctx->ac_data_len; in aes_decrypt_final()
905 ASSERT(aes_ctx->ac_processed_data_len == pt_len); in aes_decrypt_final()
906 ASSERT(aes_ctx->ac_processed_mac_len == aes_ctx->ac_mac_len); in aes_decrypt_final()
909 ret = ccm_decrypt_final((ccm_ctx_t *)aes_ctx, data, in aes_decrypt_final()
922 } else if (aes_ctx->ac_flags & (GCM_MODE|GMAC_MODE)) { in aes_decrypt_final()
927 gcm_ctx_t *ctx = (gcm_ctx_t *)aes_ctx; in aes_decrypt_final()
937 ret = gcm_decrypt_final((gcm_ctx_t *)aes_ctx, data, in aes_decrypt_final()
952 if ((aes_ctx->ac_flags & (CTR_MODE|CCM_MODE|GCM_MODE|GMAC_MODE)) == 0) { in aes_decrypt_final()
968 aes_ctx_t aes_ctx; /* on the stack */ in aes_encrypt_atomic() local
995 bzero(&aes_ctx, sizeof (aes_ctx_t)); in aes_encrypt_atomic()
997 ret = aes_common_init_ctx(&aes_ctx, template, mechanism, key, in aes_encrypt_atomic()
1004 length_needed = plaintext->cd_length + aes_ctx.ac_mac_len; in aes_encrypt_atomic()
1011 length_needed = plaintext->cd_length + aes_ctx.ac_tag_len; in aes_encrypt_atomic()
1035 ret = crypto_update_iov(&aes_ctx, plaintext, ciphertext, in aes_encrypt_atomic()
1039 ret = crypto_update_uio(&aes_ctx, plaintext, ciphertext, in aes_encrypt_atomic()
1043 ret = crypto_update_mp(&aes_ctx, plaintext, ciphertext, in aes_encrypt_atomic()
1053 ret = ccm_encrypt_final((ccm_ctx_t *)&aes_ctx, in aes_encrypt_atomic()
1058 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_encrypt_atomic()
1062 ret = gcm_encrypt_final((gcm_ctx_t *)&aes_ctx, in aes_encrypt_atomic()
1067 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_encrypt_atomic()
1082 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_encrypt_atomic()
1085 ret = cmac_mode_final((cbc_ctx_t *)&aes_ctx, in aes_encrypt_atomic()
1092 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_encrypt_atomic()
1106 if (aes_ctx.ac_flags & PROVIDER_OWNS_KEY_SCHEDULE) { in aes_encrypt_atomic()
1107 bzero(aes_ctx.ac_keysched, aes_ctx.ac_keysched_len); in aes_encrypt_atomic()
1108 kmem_free(aes_ctx.ac_keysched, aes_ctx.ac_keysched_len); in aes_encrypt_atomic()
1121 aes_ctx_t aes_ctx; /* on the stack */ in aes_decrypt_atomic() local
1147 bzero(&aes_ctx, sizeof (aes_ctx_t)); in aes_decrypt_atomic()
1149 ret = aes_common_init_ctx(&aes_ctx, template, mechanism, key, in aes_decrypt_atomic()
1156 length_needed = aes_ctx.ac_data_len; in aes_decrypt_atomic()
1159 length_needed = ciphertext->cd_length - aes_ctx.ac_tag_len; in aes_decrypt_atomic()
1182 gcm_set_kmflag((gcm_ctx_t *)&aes_ctx, crypto_kmflag(req)); in aes_decrypt_atomic()
1189 ret = crypto_update_iov(&aes_ctx, ciphertext, plaintext, in aes_decrypt_atomic()
1193 ret = crypto_update_uio(&aes_ctx, ciphertext, plaintext, in aes_decrypt_atomic()
1197 ret = crypto_update_mp(&aes_ctx, ciphertext, plaintext, in aes_decrypt_atomic()
1207 ASSERT(aes_ctx.ac_processed_data_len in aes_decrypt_atomic()
1208 == aes_ctx.ac_data_len); in aes_decrypt_atomic()
1209 ASSERT(aes_ctx.ac_processed_mac_len in aes_decrypt_atomic()
1210 == aes_ctx.ac_mac_len); in aes_decrypt_atomic()
1211 ret = ccm_decrypt_final((ccm_ctx_t *)&aes_ctx, in aes_decrypt_atomic()
1214 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_decrypt_atomic()
1225 ret = gcm_decrypt_final((gcm_ctx_t *)&aes_ctx, in aes_decrypt_atomic()
1228 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_decrypt_atomic()
1244 ASSERT3U(aes_ctx.ac_remainder_len, ==, 0); in aes_decrypt_atomic()
1257 if (aes_ctx.ac_flags & PROVIDER_OWNS_KEY_SCHEDULE) { in aes_decrypt_atomic()
1258 bzero(aes_ctx.ac_keysched, aes_ctx.ac_keysched_len); in aes_decrypt_atomic()
1259 kmem_free(aes_ctx.ac_keysched, aes_ctx.ac_keysched_len); in aes_decrypt_atomic()
1262 if (aes_ctx.ac_flags & CCM_MODE) { in aes_decrypt_atomic()
1263 if (aes_ctx.ac_pt_buf != NULL) { in aes_decrypt_atomic()
1264 kmem_free(aes_ctx.ac_pt_buf, aes_ctx.ac_data_len); in aes_decrypt_atomic()
1266 } else if (aes_ctx.ac_flags & (GCM_MODE|GMAC_MODE)) { in aes_decrypt_atomic()
1267 if (((gcm_ctx_t *)&aes_ctx)->gcm_pt_buf != NULL) { in aes_decrypt_atomic()
1268 kmem_free(((gcm_ctx_t *)&aes_ctx)->gcm_pt_buf, in aes_decrypt_atomic()
1269 ((gcm_ctx_t *)&aes_ctx)->gcm_pt_buf_len); in aes_decrypt_atomic()
1323 aes_ctx_t *aes_ctx = ctx->cc_provider_private; in aes_free_context() local
1325 if (aes_ctx != NULL) { in aes_free_context()
1326 if (aes_ctx->ac_flags & PROVIDER_OWNS_KEY_SCHEDULE) { in aes_free_context()
1327 ASSERT(aes_ctx->ac_keysched_len != 0); in aes_free_context()
1328 bzero(aes_ctx->ac_keysched, aes_ctx->ac_keysched_len); in aes_free_context()
1329 kmem_free(aes_ctx->ac_keysched, in aes_free_context()
1330 aes_ctx->ac_keysched_len); in aes_free_context()
1332 crypto_free_mode_ctx(aes_ctx); in aes_free_context()
1341 aes_common_init_ctx(aes_ctx_t *aes_ctx, crypto_spi_ctx_template_t *template, in aes_common_init_ctx() argument
1361 aes_ctx->ac_flags |= PROVIDER_OWNS_KEY_SCHEDULE; in aes_common_init_ctx()
1362 aes_ctx->ac_keysched_len = size; in aes_common_init_ctx()
1366 aes_ctx->ac_keysched = keysched; in aes_common_init_ctx()
1370 rv = cbc_init_ctx((cbc_ctx_t *)aes_ctx, mechanism->cm_param, in aes_common_init_ctx()
1374 rv = cmac_init_ctx((cbc_ctx_t *)aes_ctx, AES_BLOCK_LEN); in aes_common_init_ctx()
1384 rv = ctr_init_ctx((ctr_ctx_t *)aes_ctx, pp->ulCounterBits, in aes_common_init_ctx()
1393 rv = ccm_init_ctx((ccm_ctx_t *)aes_ctx, mechanism->cm_param, in aes_common_init_ctx()
1402 rv = gcm_init_ctx((gcm_ctx_t *)aes_ctx, mechanism->cm_param, in aes_common_init_ctx()
1411 rv = gmac_init_ctx((gcm_ctx_t *)aes_ctx, mechanism->cm_param, in aes_common_init_ctx()
1416 aes_ctx->ac_flags |= ECB_MODE; in aes_common_init_ctx()
1420 if (aes_ctx->ac_flags & PROVIDER_OWNS_KEY_SCHEDULE) { in aes_common_init_ctx()