mirror of https://github.com/torvalds/linux.git
The phmac implementation used the req->nbytes field on combined
operations (finup, digest) to track the state:
with req->nbytes > 0 the update needs to be processed,
while req->nbytes == 0 means to do the final operation. For
this purpose the req->nbytes field was set to 0 after successful
update operation. However, aead uses the req->nbytes field after a
successful hash operation to determine the amount of data to
en/decrypt. So an implementation must not modify the nbytes field.
Fixed by a slight rework on the phmac implementation. There is
now a new field async_op in the request context which tracks
the (asynch) operation to process. So the 'state' via req->nbytes
is not needed any more and now this field is untouched and may
be evaluated even after a request is processed by the phmac
implementation.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| aes_s390.c | ||
| arch_random.c | ||
| des_s390.c | ||
| ghash_s390.c | ||
| hmac_s390.c | ||
| paes_s390.c | ||
| phmac_s390.c | ||
| prng.c | ||
| sha.h | ||
| sha3_256_s390.c | ||
| sha3_512_s390.c | ||
| sha_common.c | ||