diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2021-04-02 09:49:06 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2021-04-02 10:14:02 +0900 |
commit | 840713de1a685920b6b1e1379902d545eccc74cf (patch) | |
tree | ba26ee123c1afd7a85738b78da92198bc65d963c /cipher/idea.c | |
parent | aaa30381eac3cdb49a21e279b2d89ef6e695a138 (diff) | |
download | libgcrypt-840713de1a685920b6b1e1379902d545eccc74cf.tar.gz |
cipher: Return GPG_ERR_INV_KEYLEN when wrong key length.
* cipher/idea.c (do_setkey): Return GPG_ERR_INV_KEYLEN.
* cipher/rfc2268.c (setkey_core): Likewise.
* cipher/serpent.c (serpent_setkey_internal): Likewise.
(serpent_setkey): Likewise.
--
Reported-by: Guido Vranken <guidovranken@gmail.com>
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Diffstat (limited to 'cipher/idea.c')
-rw-r--r-- | cipher/idea.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/cipher/idea.c b/cipher/idea.c index 0a810818..7f706660 100644 --- a/cipher/idea.c +++ b/cipher/idea.c @@ -251,7 +251,9 @@ do_setkey( IDEA_context *c, const byte *key, unsigned int keylen ) if( selftest_failed ) return GPG_ERR_SELFTEST_FAILED; - assert(keylen == 16); + if (keylen != 16) + return GPG_ERR_INV_KEYLEN; + c->have_dk = 0; expand_key( key, c->ek ); invert_key( c->ek, c->dk ); |