Lines Matching refs:state

46 void internal_aes_gcm_set_key(struct internal_aes_gcm_state *state,  in internal_aes_gcm_set_key()  argument
53 enc_key->rounds, state->ctr, k); in internal_aes_gcm_set_key()
55 ghash_reflect(state->ghash_key.h, k); in internal_aes_gcm_set_key()
58 ghash_reflect(state->ghash_key.h2, h); in internal_aes_gcm_set_key()
61 ghash_reflect(state->ghash_key.h3, h); in internal_aes_gcm_set_key()
64 ghash_reflect(state->ghash_key.h4, h); in internal_aes_gcm_set_key()
79 void internal_aes_gcm_ghash_update(struct internal_aes_gcm_state *state, in internal_aes_gcm_ghash_update() argument
86 get_be_block(dg, state->hash_state); in internal_aes_gcm_ghash_update()
90 pmull_ghash_update(num_blocks, dg, data, &state->ghash_key, head); in internal_aes_gcm_ghash_update()
94 put_be_block(state->hash_state, dg); in internal_aes_gcm_ghash_update()
97 static void encrypt_pl(struct internal_aes_gcm_state *state, in encrypt_pl() argument
101 void *buf_cryp = state->buf_cryp; in encrypt_pl()
106 pmull_ghash_update(1, dg, buf_cryp, &state->ghash_key, NULL); in encrypt_pl()
109 ce_aes_ecb_encrypt(buf_cryp, (const uint8_t *)state->ctr, in encrypt_pl()
112 internal_aes_gcm_inc_ctr(state); in encrypt_pl()
120 static void decrypt_pl(struct internal_aes_gcm_state *state, in decrypt_pl() argument
126 ek->rounds, 1, (uint8_t *)state->ctr, 1); in decrypt_pl()
127 pmull_ghash_update(1, dg, src, &state->ghash_key, NULL); in decrypt_pl()
136 static void update_payload_2block(struct internal_aes_gcm_state *state, in update_payload_2block() argument
144 uint8_t ks[sizeof(state->buf_cryp) * 2] = { 0 }; in update_payload_2block()
155 memcpy(ks, state->buf_cryp, sizeof(state->buf_cryp)); in update_payload_2block()
158 pmull_gcm_encrypt_block(ks + sizeof(state->buf_cryp), in update_payload_2block()
159 (uint8_t *)state->ctr, ek->rounds); in update_payload_2block()
160 internal_aes_gcm_inc_ctr(state); in update_payload_2block()
161 pmull_gcm_encrypt(num_blocks, dg, dst, src, &state->ghash_key, in update_payload_2block()
162 state->ctr, NULL, ek->rounds, ks); in update_payload_2block()
163 memcpy(state->buf_cryp, ks, TEE_AES_BLOCK_SIZE); in update_payload_2block()
164 internal_aes_gcm_dec_ctr(state); in update_payload_2block()
166 pmull_gcm_decrypt(num_blocks, dg, dst, src, &state->ghash_key, in update_payload_2block()
167 state->ctr, ek->data, ek->rounds); in update_payload_2block()
173 internal_aes_gcm_update_payload_blocks(struct internal_aes_gcm_state *state, in internal_aes_gcm_update_payload_blocks() argument
182 get_be_block(dg, state->hash_state); in internal_aes_gcm_update_payload_blocks()
190 update_payload_2block(state, ek, dg, mode, src, nb, dst); in internal_aes_gcm_update_payload_blocks()
198 encrypt_pl(state, ek, dg, s, 1, d); in internal_aes_gcm_update_payload_blocks()
200 decrypt_pl(state, ek, dg, s, 1, d); in internal_aes_gcm_update_payload_blocks()
204 put_be_block(state->hash_state, dg); in internal_aes_gcm_update_payload_blocks()
211 internal_aes_gcm_update_payload_blocks(struct internal_aes_gcm_state *state, in internal_aes_gcm_update_payload_blocks() argument
219 assert(!state->buf_pos && num_blocks); in internal_aes_gcm_update_payload_blocks()
220 get_be_block(dg, state->hash_state); in internal_aes_gcm_update_payload_blocks()
224 encrypt_pl(state, ek, dg, src, num_blocks, dst); in internal_aes_gcm_update_payload_blocks()
226 decrypt_pl(state, ek, dg, src, num_blocks, dst); in internal_aes_gcm_update_payload_blocks()
229 put_be_block(state->hash_state, dg); in internal_aes_gcm_update_payload_blocks()