Lines Matching refs:ctx

60 	struct aead_ctx *ctx = ask->private;  in aead_sndbuf()  local
63 ctx->used, 0); in aead_sndbuf()
71 static inline bool aead_sufficient_data(struct aead_ctx *ctx) in aead_sufficient_data() argument
73 unsigned as = crypto_aead_authsize(crypto_aead_reqtfm(&ctx->aead_req)); in aead_sufficient_data()
75 return ctx->used >= ctx->aead_assoclen + as; in aead_sufficient_data()
81 struct aead_ctx *ctx = ask->private; in aead_put_sgl() local
82 struct aead_sg_list *sgl = &ctx->tsgl; in aead_put_sgl()
95 ctx->used = 0; in aead_put_sgl()
96 ctx->more = 0; in aead_put_sgl()
97 ctx->merge = 0; in aead_put_sgl()
120 struct aead_ctx *ctx = ask->private; in aead_wait_for_data() local
135 if (sk_wait_event(sk, &timeout, !ctx->more)) { in aead_wait_for_data()
150 struct aead_ctx *ctx = ask->private; in aead_data_wakeup() local
153 if (ctx->more) in aead_data_wakeup()
155 if (!ctx->used) in aead_data_wakeup()
172 struct aead_ctx *ctx = ask->private; in aead_sendmsg() local
174 crypto_aead_ivsize(crypto_aead_reqtfm(&ctx->aead_req)); in aead_sendmsg()
175 struct aead_sg_list *sgl = &ctx->tsgl; in aead_sendmsg()
204 if (!ctx->more && ctx->used) in aead_sendmsg()
208 ctx->enc = enc; in aead_sendmsg()
210 memcpy(ctx->iv, con.iv->iv, ivsize); in aead_sendmsg()
212 ctx->aead_assoclen = con.aead_assoclen; in aead_sendmsg()
220 if (ctx->merge) { in aead_sendmsg()
231 ctx->merge = (sg->offset + sg->length) & in aead_sendmsg()
234 ctx->used += len; in aead_sendmsg()
277 ctx->used += plen; in aead_sendmsg()
281 ctx->merge = plen & (PAGE_SIZE - 1); in aead_sendmsg()
287 ctx->more = msg->msg_flags & MSG_MORE; in aead_sendmsg()
288 if (!ctx->more && !aead_sufficient_data(ctx)) { in aead_sendmsg()
305 struct aead_ctx *ctx = ask->private; in aead_sendpage() local
306 struct aead_sg_list *sgl = &ctx->tsgl; in aead_sendpage()
316 if (!ctx->more && ctx->used) in aead_sendpage()
329 ctx->merge = 0; in aead_sendpage()
334 ctx->used += size; in aead_sendpage()
339 ctx->more = flags & MSG_MORE; in aead_sendpage()
340 if (!ctx->more && !aead_sufficient_data(ctx)) { in aead_sendpage()
356 struct aead_ctx *ctx = ask->private; in aead_recvmsg() local
357 unsigned as = crypto_aead_authsize(crypto_aead_reqtfm(&ctx->aead_req)); in aead_recvmsg()
358 struct aead_sg_list *sgl = &ctx->tsgl; in aead_recvmsg()
387 if (ctx->more) { in aead_recvmsg()
393 used = ctx->used; in aead_recvmsg()
404 if (!aead_sufficient_data(ctx)) in aead_recvmsg()
413 used -= ctx->aead_assoclen + (ctx->enc ? as : 0); in aead_recvmsg()
421 err = af_alg_make_sg(&ctx->rsgl[cnt], &msg->msg_iter, in aead_recvmsg()
428 af_alg_link_sg(&ctx->rsgl[cnt-1], &ctx->rsgl[cnt]); in aead_recvmsg()
444 aead_request_set_crypt(&ctx->aead_req, sgl->sg, ctx->rsgl[0].sg, in aead_recvmsg()
445 used, ctx->iv); in aead_recvmsg()
446 aead_request_set_ad(&ctx->aead_req, ctx->aead_assoclen); in aead_recvmsg()
448 err = af_alg_wait_for_completion(ctx->enc ? in aead_recvmsg()
449 crypto_aead_encrypt(&ctx->aead_req) : in aead_recvmsg()
450 crypto_aead_decrypt(&ctx->aead_req), in aead_recvmsg()
451 &ctx->completion); in aead_recvmsg()
466 af_alg_free_sg(&ctx->rsgl[i]); in aead_recvmsg()
479 struct aead_ctx *ctx = ask->private; in aead_poll() local
485 if (!ctx->more) in aead_poll()
539 struct aead_ctx *ctx = ask->private; in aead_sock_destruct() local
541 crypto_aead_reqtfm(&ctx->aead_req)); in aead_sock_destruct()
544 sock_kzfree_s(sk, ctx->iv, ivlen); in aead_sock_destruct()
545 sock_kfree_s(sk, ctx, ctx->len); in aead_sock_destruct()
551 struct aead_ctx *ctx; in aead_accept_parent() local
553 unsigned int len = sizeof(*ctx) + crypto_aead_reqsize(private); in aead_accept_parent()
556 ctx = sock_kmalloc(sk, len, GFP_KERNEL); in aead_accept_parent()
557 if (!ctx) in aead_accept_parent()
559 memset(ctx, 0, len); in aead_accept_parent()
561 ctx->iv = sock_kmalloc(sk, ivlen, GFP_KERNEL); in aead_accept_parent()
562 if (!ctx->iv) { in aead_accept_parent()
563 sock_kfree_s(sk, ctx, len); in aead_accept_parent()
566 memset(ctx->iv, 0, ivlen); in aead_accept_parent()
568 ctx->len = len; in aead_accept_parent()
569 ctx->used = 0; in aead_accept_parent()
570 ctx->more = 0; in aead_accept_parent()
571 ctx->merge = 0; in aead_accept_parent()
572 ctx->enc = 0; in aead_accept_parent()
573 ctx->tsgl.cur = 0; in aead_accept_parent()
574 ctx->aead_assoclen = 0; in aead_accept_parent()
575 af_alg_init_completion(&ctx->completion); in aead_accept_parent()
576 sg_init_table(ctx->tsgl.sg, ALG_MAX_PAGES); in aead_accept_parent()
578 ask->private = ctx; in aead_accept_parent()
580 aead_request_set_tfm(&ctx->aead_req, private); in aead_accept_parent()
581 aead_request_set_callback(&ctx->aead_req, CRYPTO_TFM_REQ_MAY_BACKLOG, in aead_accept_parent()
582 af_alg_complete, &ctx->completion); in aead_accept_parent()