From 84ca0906cd815c58b80d41c983b7647e389be088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 2 Dec 2003 16:32:25 +0000 Subject: [PATCH] require cipher-text to be padded to padsize git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13174 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/crypto.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/krb5/crypto.c b/lib/krb5/crypto.c index d1886f449..9a0905dac 100644 --- a/lib/krb5/crypto.c +++ b/lib/krb5/crypto.c @@ -3027,6 +3027,10 @@ decrypt_internal_derived(krb5_context context, len -= checksum_sz; + if ((len % et->padsize) != 0) { + krb5_clear_error_string(context); + return KRB5_BAD_MSIZE; + } ret = _get_derived_key(context, crypto, ENCRYPTION_USAGE(usage), &dkey); if(ret) { free(p); @@ -3086,6 +3090,11 @@ decrypt_internal(krb5_context context, size_t checksum_sz, l; struct encryption_type *et = crypto->et; + if ((len % et->padsize) != 0) { + krb5_clear_error_string(context); + return KRB5_BAD_MSIZE; + } + checksum_sz = CHECKSUMSIZE(et->checksum); p = malloc(len); if(len != 0 && p == NULL) { @@ -3148,6 +3157,11 @@ decrypt_internal_special(krb5_context context, char *tmp; krb5_error_code ret; + if ((len % et->padsize) != 0) { + krb5_clear_error_string(context); + return KRB5_BAD_MSIZE; + } + tmp = malloc (sz); if (tmp == NULL) { krb5_set_error_string(context, "malloc: out of memory");