Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 99297
b: refs/heads/master
c: ca786dc
h: refs/heads/master
i:
  99295: 942b232
v: v3
  • Loading branch information
Herbert Xu committed Jul 10, 2008
1 parent 075cfaf commit 0a73735
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: caee16883a235b1b042282276859e7d5901fad21
refs/heads/master: ca786dc738f4f583b57b1bba7a335b5e8233f4b0
2 changes: 1 addition & 1 deletion trunk/crypto/ahash.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ static int crypto_init_ahash_ops(struct crypto_tfm *tfm, u32 type, u32 mask)
struct ahash_alg *alg = &tfm->__crt_alg->cra_ahash;
struct ahash_tfm *crt = &tfm->crt_ahash;

if (alg->digestsize > crypto_tfm_alg_blocksize(tfm))
if (alg->digestsize > PAGE_SIZE / 8)
return -EINVAL;

crt->init = alg->init;
Expand Down
2 changes: 1 addition & 1 deletion trunk/crypto/digest.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ int crypto_init_digest_ops(struct crypto_tfm *tfm)
struct hash_tfm *ops = &tfm->crt_hash;
struct digest_alg *dalg = &tfm->__crt_alg->cra_digest;

if (dalg->dia_digestsize > crypto_tfm_alg_blocksize(tfm))
if (dalg->dia_digestsize > PAGE_SIZE / 8)
return -EINVAL;

ops->init = init;
Expand Down
2 changes: 1 addition & 1 deletion trunk/crypto/hash.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ static int crypto_init_hash_ops(struct crypto_tfm *tfm, u32 type, u32 mask)
{
struct hash_alg *alg = &tfm->__crt_alg->cra_hash;

if (alg->digestsize > crypto_tfm_alg_blocksize(tfm))
if (alg->digestsize > PAGE_SIZE / 8)
return -EINVAL;

if ((mask & CRYPTO_ALG_TYPE_HASH_MASK) != CRYPTO_ALG_TYPE_HASH_MASK)
Expand Down
16 changes: 10 additions & 6 deletions trunk/crypto/hmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ static struct crypto_instance *hmac_alloc(struct rtattr **tb)
struct crypto_instance *inst;
struct crypto_alg *alg;
int err;
int ds;

err = crypto_check_attr_type(tb, CRYPTO_ALG_TYPE_HASH);
if (err)
Expand All @@ -236,6 +237,13 @@ static struct crypto_instance *hmac_alloc(struct rtattr **tb)
if (IS_ERR(alg))
return ERR_CAST(alg);

inst = ERR_PTR(-EINVAL);
ds = (alg->cra_flags & CRYPTO_ALG_TYPE_MASK) ==
CRYPTO_ALG_TYPE_HASH ? alg->cra_hash.digestsize :
alg->cra_digest.dia_digestsize;
if (ds > alg->cra_blocksize)
goto out_put_alg;

inst = crypto_alloc_instance("hmac", alg);
if (IS_ERR(inst))
goto out_put_alg;
Expand All @@ -246,14 +254,10 @@ static struct crypto_instance *hmac_alloc(struct rtattr **tb)
inst->alg.cra_alignmask = alg->cra_alignmask;
inst->alg.cra_type = &crypto_hash_type;

inst->alg.cra_hash.digestsize =
(alg->cra_flags & CRYPTO_ALG_TYPE_MASK) ==
CRYPTO_ALG_TYPE_HASH ? alg->cra_hash.digestsize :
alg->cra_digest.dia_digestsize;
inst->alg.cra_hash.digestsize = ds;

inst->alg.cra_ctxsize = sizeof(struct hmac_ctx) +
ALIGN(inst->alg.cra_blocksize * 2 +
inst->alg.cra_hash.digestsize,
ALIGN(inst->alg.cra_blocksize * 2 + ds,
sizeof(void *));

inst->alg.cra_init = hmac_init_tfm;
Expand Down

0 comments on commit 0a73735

Please sign in to comment.