diff options
| author | David S. Miller <davem@davemloft.net> | 2010-04-03 18:49:14 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-04-03 18:49:14 -0400 |
| commit | 87e8b821ed8db3dab03d96cd542e29666bf210aa (patch) | |
| tree | 0027060473aafbbb125655ba027319c8a1a665fc /crypto | |
| parent | 33cd9dfa3a13e3d8e41aef225a9f98169816723b (diff) | |
| parent | 5e11611a5d22252f3f9c169a3c9377eac0c32033 (diff) | |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Diffstat (limited to 'crypto')
| -rw-r--r-- | crypto/Kconfig | 4 | ||||
| -rw-r--r-- | crypto/ahash.c | 1 | ||||
| -rw-r--r-- | crypto/authenc.c | 27 | ||||
| -rw-r--r-- | crypto/cryptd.c | 2 | ||||
| -rw-r--r-- | crypto/md5.c | 1 |
5 files changed, 19 insertions, 16 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index 6a2e295ee227..403857ad06d4 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
| @@ -826,8 +826,8 @@ config CRYPTO_ANSI_CPRNG | |||
| 826 | help | 826 | help |
| 827 | This option enables the generic pseudo random number generator | 827 | This option enables the generic pseudo random number generator |
| 828 | for cryptographic modules. Uses the Algorithm specified in | 828 | for cryptographic modules. Uses the Algorithm specified in |
| 829 | ANSI X9.31 A.2.4. Not this option must be enabled if CRYPTO_FIPS | 829 | ANSI X9.31 A.2.4. Note that this option must be enabled if |
| 830 | is selected | 830 | CRYPTO_FIPS is selected |
| 831 | 831 | ||
| 832 | source "drivers/crypto/Kconfig" | 832 | source "drivers/crypto/Kconfig" |
| 833 | 833 | ||
diff --git a/crypto/ahash.c b/crypto/ahash.c index 33a4ff45f842..b8c59b889c6e 100644 --- a/crypto/ahash.c +++ b/crypto/ahash.c | |||
| @@ -78,7 +78,6 @@ int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err) | |||
| 78 | walk->data -= walk->offset; | 78 | walk->data -= walk->offset; |
| 79 | 79 | ||
| 80 | if (nbytes && walk->offset & alignmask && !err) { | 80 | if (nbytes && walk->offset & alignmask && !err) { |
| 81 | walk->offset += alignmask - 1; | ||
| 82 | walk->offset = ALIGN(walk->offset, alignmask + 1); | 81 | walk->offset = ALIGN(walk->offset, alignmask + 1); |
| 83 | walk->data += walk->offset; | 82 | walk->data += walk->offset; |
| 84 | 83 | ||
diff --git a/crypto/authenc.c b/crypto/authenc.c index 18870906ea06..2bb7348d8d55 100644 --- a/crypto/authenc.c +++ b/crypto/authenc.c | |||
| @@ -386,11 +386,13 @@ static int crypto_authenc_encrypt(struct aead_request *req) | |||
| 386 | { | 386 | { |
| 387 | struct crypto_aead *authenc = crypto_aead_reqtfm(req); | 387 | struct crypto_aead *authenc = crypto_aead_reqtfm(req); |
| 388 | struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc); | 388 | struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc); |
| 389 | struct ablkcipher_request *abreq = aead_request_ctx(req); | 389 | struct authenc_request_ctx *areq_ctx = aead_request_ctx(req); |
| 390 | struct crypto_ablkcipher *enc = ctx->enc; | 390 | struct crypto_ablkcipher *enc = ctx->enc; |
| 391 | struct scatterlist *dst = req->dst; | 391 | struct scatterlist *dst = req->dst; |
| 392 | unsigned int cryptlen = req->cryptlen; | 392 | unsigned int cryptlen = req->cryptlen; |
| 393 | u8 *iv = (u8 *)(abreq + 1) + crypto_ablkcipher_reqsize(enc); | 393 | struct ablkcipher_request *abreq = (void *)(areq_ctx->tail |
| 394 | + ctx->reqoff); | ||
| 395 | u8 *iv = (u8 *)abreq - crypto_ablkcipher_ivsize(enc); | ||
| 394 | int err; | 396 | int err; |
| 395 | 397 | ||
| 396 | ablkcipher_request_set_tfm(abreq, enc); | 398 | ablkcipher_request_set_tfm(abreq, enc); |
| @@ -454,7 +456,7 @@ static int crypto_authenc_verify(struct aead_request *req, | |||
| 454 | unsigned int authsize; | 456 | unsigned int authsize; |
| 455 | 457 | ||
| 456 | areq_ctx->complete = authenc_verify_ahash_done; | 458 | areq_ctx->complete = authenc_verify_ahash_done; |
| 457 | areq_ctx->complete = authenc_verify_ahash_update_done; | 459 | areq_ctx->update_complete = authenc_verify_ahash_update_done; |
| 458 | 460 | ||
| 459 | ohash = authenc_ahash_fn(req, CRYPTO_TFM_REQ_MAY_SLEEP); | 461 | ohash = authenc_ahash_fn(req, CRYPTO_TFM_REQ_MAY_SLEEP); |
| 460 | if (IS_ERR(ohash)) | 462 | if (IS_ERR(ohash)) |
| @@ -546,10 +548,6 @@ static int crypto_authenc_init_tfm(struct crypto_tfm *tfm) | |||
| 546 | if (IS_ERR(auth)) | 548 | if (IS_ERR(auth)) |
| 547 | return PTR_ERR(auth); | 549 | return PTR_ERR(auth); |
| 548 | 550 | ||
| 549 | ctx->reqoff = ALIGN(2 * crypto_ahash_digestsize(auth) + | ||
| 550 | crypto_ahash_alignmask(auth), | ||
| 551 | crypto_ahash_alignmask(auth) + 1); | ||
| 552 | |||
| 553 | enc = crypto_spawn_skcipher(&ictx->enc); | 551 | enc = crypto_spawn_skcipher(&ictx->enc); |
| 554 | err = PTR_ERR(enc); | 552 | err = PTR_ERR(enc); |
| 555 | if (IS_ERR(enc)) | 553 | if (IS_ERR(enc)) |
| @@ -558,13 +556,18 @@ static int crypto_authenc_init_tfm(struct crypto_tfm *tfm) | |||
| 558 | ctx->auth = auth; | 556 | ctx->auth = auth; |
| 559 | ctx->enc = enc; | 557 | ctx->enc = enc; |
| 560 | 558 | ||
| 561 | tfm->crt_aead.reqsize = max_t(unsigned int, | 559 | ctx->reqoff = ALIGN(2 * crypto_ahash_digestsize(auth) + |
| 562 | crypto_ahash_reqsize(auth) + ctx->reqoff + | 560 | crypto_ahash_alignmask(auth), |
| 563 | sizeof(struct authenc_request_ctx) + | 561 | crypto_ahash_alignmask(auth) + 1) + |
| 562 | crypto_ablkcipher_ivsize(enc); | ||
| 563 | |||
| 564 | tfm->crt_aead.reqsize = sizeof(struct authenc_request_ctx) + | ||
| 565 | ctx->reqoff + | ||
| 566 | max_t(unsigned int, | ||
| 567 | crypto_ahash_reqsize(auth) + | ||
| 564 | sizeof(struct ahash_request), | 568 | sizeof(struct ahash_request), |
| 565 | sizeof(struct skcipher_givcrypt_request) + | 569 | sizeof(struct skcipher_givcrypt_request) + |
| 566 | crypto_ablkcipher_reqsize(enc) + | 570 | crypto_ablkcipher_reqsize(enc)); |
| 567 | crypto_ablkcipher_ivsize(enc)); | ||
| 568 | 571 | ||
| 569 | return 0; | 572 | return 0; |
| 570 | 573 | ||
diff --git a/crypto/cryptd.c b/crypto/cryptd.c index 704c14115323..ef71318976c7 100644 --- a/crypto/cryptd.c +++ b/crypto/cryptd.c | |||
| @@ -31,7 +31,7 @@ struct cryptd_cpu_queue { | |||
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | struct cryptd_queue { | 33 | struct cryptd_queue { |
| 34 | struct cryptd_cpu_queue *cpu_queue; | 34 | struct cryptd_cpu_queue __percpu *cpu_queue; |
| 35 | }; | 35 | }; |
| 36 | 36 | ||
| 37 | struct cryptd_instance_ctx { | 37 | struct cryptd_instance_ctx { |
diff --git a/crypto/md5.c b/crypto/md5.c index 9fda213a592e..30efc7dad891 100644 --- a/crypto/md5.c +++ b/crypto/md5.c | |||
| @@ -234,6 +234,7 @@ static struct shash_alg alg = { | |||
| 234 | .export = md5_export, | 234 | .export = md5_export, |
| 235 | .import = md5_import, | 235 | .import = md5_import, |
| 236 | .descsize = sizeof(struct md5_state), | 236 | .descsize = sizeof(struct md5_state), |
| 237 | .statesize = sizeof(struct md5_state), | ||
| 237 | .base = { | 238 | .base = { |
| 238 | .cra_name = "md5", | 239 | .cra_name = "md5", |
| 239 | .cra_flags = CRYPTO_ALG_TYPE_SHASH, | 240 | .cra_flags = CRYPTO_ALG_TYPE_SHASH, |
