mirror of https://gitee.com/openkylin/linux.git
sctp: use crypto_shash_tfm_digest()
Instead of manually allocating a 'struct shash_desc' on the stack and calling crypto_shash_digest(), switch to using the new helper function crypto_shash_tfm_digest() which does this for us. Cc: linux-sctp@vger.kernel.org Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
ec0bf6edc4
commit
75b93c6354
|
@ -741,14 +741,8 @@ void sctp_auth_calculate_hmac(const struct sctp_association *asoc,
|
|||
if (crypto_shash_setkey(tfm, &asoc_key->data[0], asoc_key->len))
|
||||
goto free;
|
||||
|
||||
{
|
||||
SHASH_DESC_ON_STACK(desc, tfm);
|
||||
|
||||
desc->tfm = tfm;
|
||||
crypto_shash_digest(desc, (u8 *)auth,
|
||||
end - (unsigned char *)auth, digest);
|
||||
shash_desc_zero(desc);
|
||||
}
|
||||
crypto_shash_tfm_digest(tfm, (u8 *)auth, end - (unsigned char *)auth,
|
||||
digest);
|
||||
|
||||
free:
|
||||
if (free_key)
|
||||
|
|
|
@ -1666,17 +1666,14 @@ static struct sctp_cookie_param *sctp_pack_cookie(
|
|||
ntohs(init_chunk->chunk_hdr->length), raw_addrs, addrs_len);
|
||||
|
||||
if (sctp_sk(ep->base.sk)->hmac) {
|
||||
SHASH_DESC_ON_STACK(desc, sctp_sk(ep->base.sk)->hmac);
|
||||
struct crypto_shash *tfm = sctp_sk(ep->base.sk)->hmac;
|
||||
int err;
|
||||
|
||||
/* Sign the message. */
|
||||
desc->tfm = sctp_sk(ep->base.sk)->hmac;
|
||||
|
||||
err = crypto_shash_setkey(desc->tfm, ep->secret_key,
|
||||
err = crypto_shash_setkey(tfm, ep->secret_key,
|
||||
sizeof(ep->secret_key)) ?:
|
||||
crypto_shash_digest(desc, (u8 *)&cookie->c, bodysize,
|
||||
cookie->signature);
|
||||
shash_desc_zero(desc);
|
||||
crypto_shash_tfm_digest(tfm, (u8 *)&cookie->c, bodysize,
|
||||
cookie->signature);
|
||||
if (err)
|
||||
goto free_cookie;
|
||||
}
|
||||
|
@ -1737,17 +1734,13 @@ struct sctp_association *sctp_unpack_cookie(
|
|||
|
||||
/* Check the signature. */
|
||||
{
|
||||
SHASH_DESC_ON_STACK(desc, sctp_sk(ep->base.sk)->hmac);
|
||||
struct crypto_shash *tfm = sctp_sk(ep->base.sk)->hmac;
|
||||
int err;
|
||||
|
||||
desc->tfm = sctp_sk(ep->base.sk)->hmac;
|
||||
|
||||
err = crypto_shash_setkey(desc->tfm, ep->secret_key,
|
||||
err = crypto_shash_setkey(tfm, ep->secret_key,
|
||||
sizeof(ep->secret_key)) ?:
|
||||
crypto_shash_digest(desc, (u8 *)bear_cookie, bodysize,
|
||||
digest);
|
||||
shash_desc_zero(desc);
|
||||
|
||||
crypto_shash_tfm_digest(tfm, (u8 *)bear_cookie, bodysize,
|
||||
digest);
|
||||
if (err) {
|
||||
*error = -SCTP_IERROR_NOMEM;
|
||||
goto fail;
|
||||
|
|
Loading…
Reference in New Issue