diff options
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/af_alg.c | 13 | ||||
-rw-r--r-- | crypto/algif_aead.c | 2 | ||||
-rw-r--r-- | crypto/hmac.c | 6 | ||||
-rw-r--r-- | crypto/rsa_helper.c | 2 | ||||
-rw-r--r-- | crypto/salsa20_generic.c | 7 | ||||
-rw-r--r-- | crypto/shash.c | 5 |
6 files changed, 17 insertions, 18 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c index 358749c38894..415a54ced4d6 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c | |||
@@ -672,14 +672,15 @@ void af_alg_free_areq_sgls(struct af_alg_async_req *areq) | |||
672 | } | 672 | } |
673 | 673 | ||
674 | tsgl = areq->tsgl; | 674 | tsgl = areq->tsgl; |
675 | for_each_sg(tsgl, sg, areq->tsgl_entries, i) { | 675 | if (tsgl) { |
676 | if (!sg_page(sg)) | 676 | for_each_sg(tsgl, sg, areq->tsgl_entries, i) { |
677 | continue; | 677 | if (!sg_page(sg)) |
678 | put_page(sg_page(sg)); | 678 | continue; |
679 | } | 679 | put_page(sg_page(sg)); |
680 | } | ||
680 | 681 | ||
681 | if (areq->tsgl && areq->tsgl_entries) | ||
682 | sock_kfree_s(sk, tsgl, areq->tsgl_entries * sizeof(*tsgl)); | 682 | sock_kfree_s(sk, tsgl, areq->tsgl_entries * sizeof(*tsgl)); |
683 | } | ||
683 | } | 684 | } |
684 | EXPORT_SYMBOL_GPL(af_alg_free_areq_sgls); | 685 | EXPORT_SYMBOL_GPL(af_alg_free_areq_sgls); |
685 | 686 | ||
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c index 805f485ddf1b..48b34e9c6834 100644 --- a/crypto/algif_aead.c +++ b/crypto/algif_aead.c | |||
@@ -503,6 +503,7 @@ static void aead_release(void *private) | |||
503 | struct aead_tfm *tfm = private; | 503 | struct aead_tfm *tfm = private; |
504 | 504 | ||
505 | crypto_free_aead(tfm->aead); | 505 | crypto_free_aead(tfm->aead); |
506 | crypto_put_default_null_skcipher2(); | ||
506 | kfree(tfm); | 507 | kfree(tfm); |
507 | } | 508 | } |
508 | 509 | ||
@@ -535,7 +536,6 @@ static void aead_sock_destruct(struct sock *sk) | |||
535 | unsigned int ivlen = crypto_aead_ivsize(tfm); | 536 | unsigned int ivlen = crypto_aead_ivsize(tfm); |
536 | 537 | ||
537 | af_alg_pull_tsgl(sk, ctx->used, NULL, 0); | 538 | af_alg_pull_tsgl(sk, ctx->used, NULL, 0); |
538 | crypto_put_default_null_skcipher2(); | ||
539 | sock_kzfree_s(sk, ctx->iv, ivlen); | 539 | sock_kzfree_s(sk, ctx->iv, ivlen); |
540 | sock_kfree_s(sk, ctx, ctx->len); | 540 | sock_kfree_s(sk, ctx, ctx->len); |
541 | af_alg_release_parent(sk); | 541 | af_alg_release_parent(sk); |
diff --git a/crypto/hmac.c b/crypto/hmac.c index 92871dc2a63e..e74730224f0a 100644 --- a/crypto/hmac.c +++ b/crypto/hmac.c | |||
@@ -195,11 +195,15 @@ static int hmac_create(struct crypto_template *tmpl, struct rtattr **tb) | |||
195 | salg = shash_attr_alg(tb[1], 0, 0); | 195 | salg = shash_attr_alg(tb[1], 0, 0); |
196 | if (IS_ERR(salg)) | 196 | if (IS_ERR(salg)) |
197 | return PTR_ERR(salg); | 197 | return PTR_ERR(salg); |
198 | alg = &salg->base; | ||
198 | 199 | ||
200 | /* The underlying hash algorithm must be unkeyed */ | ||
199 | err = -EINVAL; | 201 | err = -EINVAL; |
202 | if (crypto_shash_alg_has_setkey(salg)) | ||
203 | goto out_put_alg; | ||
204 | |||
200 | ds = salg->digestsize; | 205 | ds = salg->digestsize; |
201 | ss = salg->statesize; | 206 | ss = salg->statesize; |
202 | alg = &salg->base; | ||
203 | if (ds > alg->cra_blocksize || | 207 | if (ds > alg->cra_blocksize || |
204 | ss < alg->cra_blocksize) | 208 | ss < alg->cra_blocksize) |
205 | goto out_put_alg; | 209 | goto out_put_alg; |
diff --git a/crypto/rsa_helper.c b/crypto/rsa_helper.c index 0b66dc824606..cad395d70d78 100644 --- a/crypto/rsa_helper.c +++ b/crypto/rsa_helper.c | |||
@@ -30,7 +30,7 @@ int rsa_get_n(void *context, size_t hdrlen, unsigned char tag, | |||
30 | return -EINVAL; | 30 | return -EINVAL; |
31 | 31 | ||
32 | if (fips_enabled) { | 32 | if (fips_enabled) { |
33 | while (!*ptr && n_sz) { | 33 | while (n_sz && !*ptr) { |
34 | ptr++; | 34 | ptr++; |
35 | n_sz--; | 35 | n_sz--; |
36 | } | 36 | } |
diff --git a/crypto/salsa20_generic.c b/crypto/salsa20_generic.c index f550b5d94630..d7da0eea5622 100644 --- a/crypto/salsa20_generic.c +++ b/crypto/salsa20_generic.c | |||
@@ -188,13 +188,6 @@ static int encrypt(struct blkcipher_desc *desc, | |||
188 | 188 | ||
189 | salsa20_ivsetup(ctx, walk.iv); | 189 | salsa20_ivsetup(ctx, walk.iv); |
190 | 190 | ||
191 | if (likely(walk.nbytes == nbytes)) | ||
192 | { | ||
193 | salsa20_encrypt_bytes(ctx, walk.dst.virt.addr, | ||
194 | walk.src.virt.addr, nbytes); | ||
195 | return blkcipher_walk_done(desc, &walk, 0); | ||
196 | } | ||
197 | |||
198 | while (walk.nbytes >= 64) { | 191 | while (walk.nbytes >= 64) { |
199 | salsa20_encrypt_bytes(ctx, walk.dst.virt.addr, | 192 | salsa20_encrypt_bytes(ctx, walk.dst.virt.addr, |
200 | walk.src.virt.addr, | 193 | walk.src.virt.addr, |
diff --git a/crypto/shash.c b/crypto/shash.c index 325a14da5827..e849d3ee2e27 100644 --- a/crypto/shash.c +++ b/crypto/shash.c | |||
@@ -25,11 +25,12 @@ | |||
25 | 25 | ||
26 | static const struct crypto_type crypto_shash_type; | 26 | static const struct crypto_type crypto_shash_type; |
27 | 27 | ||
28 | static int shash_no_setkey(struct crypto_shash *tfm, const u8 *key, | 28 | int shash_no_setkey(struct crypto_shash *tfm, const u8 *key, |
29 | unsigned int keylen) | 29 | unsigned int keylen) |
30 | { | 30 | { |
31 | return -ENOSYS; | 31 | return -ENOSYS; |
32 | } | 32 | } |
33 | EXPORT_SYMBOL_GPL(shash_no_setkey); | ||
33 | 34 | ||
34 | static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key, | 35 | static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key, |
35 | unsigned int keylen) | 36 | unsigned int keylen) |