diff options
Diffstat (limited to 'crypto/algif_skcipher.c')
| -rw-r--r-- | crypto/algif_skcipher.c | 81 | 
1 files changed, 40 insertions, 41 deletions
| diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index af31a0ee4057..eaa9f9be5b87 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -40,14 +40,14 @@ struct skcipher_ctx {  	struct af_alg_completion completion;  	atomic_t inflight; -	unsigned used; +	size_t used;  	unsigned int len;  	bool more;  	bool merge;  	bool enc; -	struct ablkcipher_request req; +	struct skcipher_request req;  };  struct skcipher_async_rsgl { @@ -64,13 +64,13 @@ struct skcipher_async_req {  };  #define GET_SREQ(areq, ctx) (struct skcipher_async_req *)((char *)areq + \ -	crypto_ablkcipher_reqsize(crypto_ablkcipher_reqtfm(&ctx->req))) +	crypto_skcipher_reqsize(crypto_skcipher_reqtfm(&ctx->req)))  #define GET_REQ_SIZE(ctx) \ -	crypto_ablkcipher_reqsize(crypto_ablkcipher_reqtfm(&ctx->req)) +	crypto_skcipher_reqsize(crypto_skcipher_reqtfm(&ctx->req))  #define GET_IV_SIZE(ctx) \ -	crypto_ablkcipher_ivsize(crypto_ablkcipher_reqtfm(&ctx->req)) +	crypto_skcipher_ivsize(crypto_skcipher_reqtfm(&ctx->req))  #define MAX_SGL_ENTS ((4096 - sizeof(struct skcipher_sg_list)) / \  		      sizeof(struct scatterlist) - 1) @@ -153,7 +153,7 @@ static int skcipher_alloc_sgl(struct sock *sk)  	return 0;  } -static void skcipher_pull_sgl(struct sock *sk, int used, int put) +static void skcipher_pull_sgl(struct sock *sk, size_t used, int put)  {  	struct alg_sock *ask = alg_sk(sk);  	struct skcipher_ctx *ctx = ask->private; @@ -167,7 +167,7 @@ static void skcipher_pull_sgl(struct sock *sk, int used, int put)  		sg = sgl->sg;  		for (i = 0; i < sgl->cur; i++) { -			int plen = min_t(int, used, sg[i].length); +			size_t plen = min_t(size_t, used, sg[i].length);  			if (!sg_page(sg + i))  				continue; @@ -212,7 +212,7 @@ static int skcipher_wait_for_wmem(struct sock *sk, unsigned flags)  	if (flags & MSG_DONTWAIT)  		return -EAGAIN; -	set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); +	sk_set_bit(SOCKWQ_ASYNC_NOSPACE, sk);  	for (;;) {  		if (signal_pending(current)) @@ -238,7 +238,7 @@ static void skcipher_wmem_wakeup(struct sock *sk)  	rcu_read_lock();  	wq = rcu_dereference(sk->sk_wq); -	if (wq_has_sleeper(wq)) +	if (skwq_has_sleeper(wq))  		wake_up_interruptible_sync_poll(&wq->wait, POLLIN |  							   POLLRDNORM |  							   POLLRDBAND); @@ -258,7 +258,7 @@ static int skcipher_wait_for_data(struct sock *sk, unsigned flags)  		return -EAGAIN;  	} -	set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); +	sk_set_bit(SOCKWQ_ASYNC_WAITDATA, sk);  	for (;;) {  		if (signal_pending(current)) @@ -272,7 +272,7 @@ static int skcipher_wait_for_data(struct sock *sk, unsigned flags)  	}  	finish_wait(sk_sleep(sk), &wait); -	clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); +	sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk);  	return err;  } @@ -288,7 +288,7 @@ static void skcipher_data_wakeup(struct sock *sk)  	rcu_read_lock();  	wq = rcu_dereference(sk->sk_wq); -	if (wq_has_sleeper(wq)) +	if (skwq_has_sleeper(wq))  		wake_up_interruptible_sync_poll(&wq->wait, POLLOUT |  							   POLLRDNORM |  							   POLLRDBAND); @@ -302,8 +302,8 @@ static int skcipher_sendmsg(struct socket *sock, struct msghdr *msg,  	struct sock *sk = sock->sk;  	struct alg_sock *ask = alg_sk(sk);  	struct skcipher_ctx *ctx = ask->private; -	struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(&ctx->req); -	unsigned ivsize = crypto_ablkcipher_ivsize(tfm); +	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(&ctx->req); +	unsigned ivsize = crypto_skcipher_ivsize(tfm);  	struct skcipher_sg_list *sgl;  	struct af_alg_control con = {};  	long copied = 0; @@ -348,7 +348,7 @@ static int skcipher_sendmsg(struct socket *sock, struct msghdr *msg,  	while (size) {  		struct scatterlist *sg;  		unsigned long len = size; -		int plen; +		size_t plen;  		if (ctx->merge) {  			sgl = list_entry(ctx->tsgl.prev, @@ -390,7 +390,7 @@ static int skcipher_sendmsg(struct socket *sock, struct msghdr *msg,  		sg_unmark_end(sg + sgl->cur);  		do {  			i = sgl->cur; -			plen = min_t(int, len, PAGE_SIZE); +			plen = min_t(size_t, len, PAGE_SIZE);  			sg_assign_page(sg + i, alloc_page(GFP_KERNEL));  			err = -ENOMEM; @@ -507,7 +507,7 @@ static int skcipher_recvmsg_async(struct socket *sock, struct msghdr *msg,  	struct skcipher_sg_list *sgl;  	struct scatterlist *sg;  	struct skcipher_async_req *sreq; -	struct ablkcipher_request *req; +	struct skcipher_request *req;  	struct skcipher_async_rsgl *last_rsgl = NULL;  	unsigned int txbufs = 0, len = 0, tx_nents = skcipher_all_sg_nents(ctx);  	unsigned int reqlen = sizeof(struct skcipher_async_req) + @@ -531,9 +531,9 @@ static int skcipher_recvmsg_async(struct socket *sock, struct msghdr *msg,  	}  	sg_init_table(sreq->tsg, tx_nents);  	memcpy(sreq->iv, ctx->iv, GET_IV_SIZE(ctx)); -	ablkcipher_request_set_tfm(req, crypto_ablkcipher_reqtfm(&ctx->req)); -	ablkcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG, -					skcipher_async_cb, sk); +	skcipher_request_set_tfm(req, crypto_skcipher_reqtfm(&ctx->req)); +	skcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG, +				      skcipher_async_cb, sk);  	while (iov_iter_count(&msg->msg_iter)) {  		struct skcipher_async_rsgl *rsgl; @@ -608,10 +608,10 @@ static int skcipher_recvmsg_async(struct socket *sock, struct msghdr *msg,  	if (mark)  		sg_mark_end(sreq->tsg + txbufs - 1); -	ablkcipher_request_set_crypt(req, sreq->tsg, sreq->first_sgl.sgl.sg, -				     len, sreq->iv); -	err = ctx->enc ? crypto_ablkcipher_encrypt(req) : -			 crypto_ablkcipher_decrypt(req); +	skcipher_request_set_crypt(req, sreq->tsg, sreq->first_sgl.sgl.sg, +				   len, sreq->iv); +	err = ctx->enc ? crypto_skcipher_encrypt(req) : +			 crypto_skcipher_decrypt(req);  	if (err == -EINPROGRESS) {  		atomic_inc(&ctx->inflight);  		err = -EIOCBQUEUED; @@ -632,7 +632,7 @@ static int skcipher_recvmsg_sync(struct socket *sock, struct msghdr *msg,  	struct sock *sk = sock->sk;  	struct alg_sock *ask = alg_sk(sk);  	struct skcipher_ctx *ctx = ask->private; -	unsigned bs = crypto_ablkcipher_blocksize(crypto_ablkcipher_reqtfm( +	unsigned bs = crypto_skcipher_blocksize(crypto_skcipher_reqtfm(  		&ctx->req));  	struct skcipher_sg_list *sgl;  	struct scatterlist *sg; @@ -669,14 +669,13 @@ static int skcipher_recvmsg_sync(struct socket *sock, struct msghdr *msg,  		if (!used)  			goto free; -		ablkcipher_request_set_crypt(&ctx->req, sg, -					     ctx->rsgl.sg, used, -					     ctx->iv); +		skcipher_request_set_crypt(&ctx->req, sg, ctx->rsgl.sg, used, +					   ctx->iv);  		err = af_alg_wait_for_completion(  				ctx->enc ? -					crypto_ablkcipher_encrypt(&ctx->req) : -					crypto_ablkcipher_decrypt(&ctx->req), +					crypto_skcipher_encrypt(&ctx->req) : +					crypto_skcipher_decrypt(&ctx->req),  				&ctx->completion);  free: @@ -751,17 +750,17 @@ static struct proto_ops algif_skcipher_ops = {  static void *skcipher_bind(const char *name, u32 type, u32 mask)  { -	return crypto_alloc_ablkcipher(name, type, mask); +	return crypto_alloc_skcipher(name, type, mask);  }  static void skcipher_release(void *private)  { -	crypto_free_ablkcipher(private); +	crypto_free_skcipher(private);  }  static int skcipher_setkey(void *private, const u8 *key, unsigned int keylen)  { -	return crypto_ablkcipher_setkey(private, key, keylen); +	return crypto_skcipher_setkey(private, key, keylen);  }  static void skcipher_wait(struct sock *sk) @@ -778,13 +777,13 @@ static void skcipher_sock_destruct(struct sock *sk)  {  	struct alg_sock *ask = alg_sk(sk);  	struct skcipher_ctx *ctx = ask->private; -	struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(&ctx->req); +	struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(&ctx->req);  	if (atomic_read(&ctx->inflight))  		skcipher_wait(sk);  	skcipher_free_sgl(sk); -	sock_kzfree_s(sk, ctx->iv, crypto_ablkcipher_ivsize(tfm)); +	sock_kzfree_s(sk, ctx->iv, crypto_skcipher_ivsize(tfm));  	sock_kfree_s(sk, ctx, ctx->len);  	af_alg_release_parent(sk);  } @@ -793,20 +792,20 @@ static int skcipher_accept_parent(void *private, struct sock *sk)  {  	struct skcipher_ctx *ctx;  	struct alg_sock *ask = alg_sk(sk); -	unsigned int len = sizeof(*ctx) + crypto_ablkcipher_reqsize(private); +	unsigned int len = sizeof(*ctx) + crypto_skcipher_reqsize(private);  	ctx = sock_kmalloc(sk, len, GFP_KERNEL);  	if (!ctx)  		return -ENOMEM; -	ctx->iv = sock_kmalloc(sk, crypto_ablkcipher_ivsize(private), +	ctx->iv = sock_kmalloc(sk, crypto_skcipher_ivsize(private),  			       GFP_KERNEL);  	if (!ctx->iv) {  		sock_kfree_s(sk, ctx, len);  		return -ENOMEM;  	} -	memset(ctx->iv, 0, crypto_ablkcipher_ivsize(private)); +	memset(ctx->iv, 0, crypto_skcipher_ivsize(private));  	INIT_LIST_HEAD(&ctx->tsgl);  	ctx->len = len; @@ -819,9 +818,9 @@ static int skcipher_accept_parent(void *private, struct sock *sk)  	ask->private = ctx; -	ablkcipher_request_set_tfm(&ctx->req, private); -	ablkcipher_request_set_callback(&ctx->req, CRYPTO_TFM_REQ_MAY_BACKLOG, -					af_alg_complete, &ctx->completion); +	skcipher_request_set_tfm(&ctx->req, private); +	skcipher_request_set_callback(&ctx->req, CRYPTO_TFM_REQ_MAY_BACKLOG, +				      af_alg_complete, &ctx->completion);  	sk->sk_destruct = skcipher_sock_destruct; | 
