Don't overflow the ipad[] array when clearing the remainder.
After the auth key is copied into the ipad[] array, any remaining bytes are cleared to zero (in case the key is shorter than one block size). The full block size was used as the length of the zero rather than the size of the remaining ipad[]. In practice this overflow was harmless as it could only clear bytes in the following opad[] array which is initialized with a copy of ipad[] in the next statement. Sponsored by: Chelsio Communications
This commit is contained in:
parent
52f8c52677
commit
db631975fe
@ -1764,7 +1764,7 @@ ccr_init_hmac_digest(struct ccr_session *s, int cri_alg, char *key,
|
||||
} else
|
||||
memcpy(s->hmac.ipad, key, klen);
|
||||
|
||||
memset(s->hmac.ipad + klen, 0, axf->blocksize);
|
||||
memset(s->hmac.ipad + klen, 0, axf->blocksize - klen);
|
||||
memcpy(s->hmac.opad, s->hmac.ipad, axf->blocksize);
|
||||
|
||||
for (i = 0; i < axf->blocksize; i++) {
|
||||
|
Loading…
Reference in New Issue
Block a user