diff options
author | pjd <pjd@FreeBSD.org> | 2005-08-16 18:59:00 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2005-08-16 18:59:00 +0000 |
commit | 372c5a7d070d26ae5777e72e5403b62d9f0da99e (patch) | |
tree | 667a1055e89ba718cbf020e12793de0cd3a16ca7 /sys/opencrypto | |
parent | 1d6676e5bc30f3c6a759289b8e17002de8f5a721 (diff) | |
download | FreeBSD-src-372c5a7d070d26ae5777e72e5403b62d9f0da99e.zip FreeBSD-src-372c5a7d070d26ae5777e72e5403b62d9f0da99e.tar.gz |
Check key size for rijndael, as invalid key size can lead to kernel panic.
It checked other algorithms against this bug and it seems they aren't
affected.
Reported by: Mike Tancsa <mike@sentex.net>
PR: i386/84860
Reviewed by: phk, cperciva(x2)
Diffstat (limited to 'sys/opencrypto')
-rw-r--r-- | sys/opencrypto/xform.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/opencrypto/xform.c b/sys/opencrypto/xform.c index 5dfb317..a24d6da 100644 --- a/sys/opencrypto/xform.c +++ b/sys/opencrypto/xform.c @@ -512,6 +512,8 @@ rijndael128_setkey(u_int8_t **sched, u_int8_t *key, int len) { int err; + if (len != 16 && len != 24 && len != 32) + return (EINVAL); MALLOC(*sched, u_int8_t *, sizeof(rijndael_ctx), M_CRYPTO_DATA, M_NOWAIT|M_ZERO); if (*sched != NULL) { |