summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto/des
diff options
context:
space:
mode:
authorKeith Vetter <keithv@fusion.com>1995-03-15 01:57:23 +0000
committerKeith Vetter <keithv@fusion.com>1995-03-15 01:57:23 +0000
commit26bcae14eec6b4392500ecb144e345b2948ef544 (patch)
tree1712bd35d85d6e87bd711fe768ef60c43a1a0b6e /src/lib/crypto/des
parentc61811b52dbd314e051292f4ba1f14fc1d1fb003 (diff)
Two changes in the crypto directory: 1) 16 vs 32 bit errors in DES and 2)
removed crud for making a DLL (will be done at a higher level.) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5123 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto/des')
-rw-r--r--src/lib/crypto/des/ChangeLog5
-rw-r--r--src/lib/crypto/des/f_cbc.c30
-rw-r--r--src/lib/crypto/des/f_cksum.c30
-rw-r--r--src/lib/crypto/des/f_pcbc.c32
4 files changed, 51 insertions, 46 deletions
diff --git a/src/lib/crypto/des/ChangeLog b/src/lib/crypto/des/ChangeLog
index 049ac7688..6a6be5466 100644
--- a/src/lib/crypto/des/ChangeLog
+++ b/src/lib/crypto/des/ChangeLog
@@ -1,3 +1,8 @@
+Tue Mar 14 17:28:35 1995 Keith Vetter (keithv@fusion.com)
+
+ * f_cbc.c, f_cksum.c, f_pcbc.c: added casts so that chars get promoted
+ to longs instead of ints when doing 32 bit bit manipulations.
+
Thu Mar 2 17:50:39 1995 Keith Vetter (keithv@fusion.com)
* Makefile.in: changed LIBNAME for the PC.
diff --git a/src/lib/crypto/des/f_cbc.c b/src/lib/crypto/des/f_cbc.c
index f2f78daf7..b7e4d0231 100644
--- a/src/lib/crypto/des/f_cbc.c
+++ b/src/lib/crypto/des/f_cbc.c
@@ -80,14 +80,14 @@ mit_des_cbc_encrypt(in, out, length, schedule, ivec, encrypt)
* forward. Otherwise we have to fart around.
*/
if (length >= 8) {
- left ^= ((*ip++) & 0xff) << 24;
- left ^= ((*ip++) & 0xff) << 16;
- left ^= ((*ip++) & 0xff) << 8;
- left ^= (*ip++) & 0xff;
- right ^= ((*ip++) & 0xff) << 24;
- right ^= ((*ip++) & 0xff) << 16;
- right ^= ((*ip++) & 0xff) << 8;
- right ^= (*ip++) & 0xff;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 24;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 16;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 8;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff));
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 24;
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 16;
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 8;
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff));
length -= 8;
} else {
/*
@@ -98,19 +98,19 @@ mit_des_cbc_encrypt(in, out, length, schedule, ivec, encrypt)
ip += (int) length;
switch(length) {
case 7:
- right ^= (*(--ip) & 0xff) << 8;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 8;
case 6:
- right ^= (*(--ip) & 0xff) << 16;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 16;
case 5:
- right ^= (*(--ip) & 0xff) << 24;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 24;
case 4:
- left ^= *(--ip) & 0xff;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff));
case 3:
- left ^= (*(--ip) & 0xff) << 8;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 8;
case 2:
- left ^= (*(--ip) & 0xff) << 16;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 16;
case 1:
- left ^= (*(--ip) & 0xff) << 24;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 24;
break;
}
length = 0;
diff --git a/src/lib/crypto/des/f_cksum.c b/src/lib/crypto/des/f_cksum.c
index aeace4451..2514a0f9e 100644
--- a/src/lib/crypto/des/f_cksum.c
+++ b/src/lib/crypto/des/f_cksum.c
@@ -63,14 +63,14 @@ mit_des_cbc_cksum(in, out, length, schedule, ivec)
* forward. Otherwise we have to fart around.
*/
if (len >= 8) {
- left ^= ((*ip++) & 0xff) << 24;
- left ^= ((*ip++) & 0xff) << 16;
- left ^= ((*ip++) & 0xff) << 8;
- left ^= (*ip++) & 0xff;
- right ^= ((*ip++) & 0xff) << 24;
- right ^= ((*ip++) & 0xff) << 16;
- right ^= ((*ip++) & 0xff) << 8;
- right ^= (*ip++) & 0xff;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 24;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 16;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 8;
+ left ^= ((unsigned KRB_INT32) ((*ip++) & 0xff));
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 24;
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 16;
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff)) << 8;
+ right ^= ((unsigned KRB_INT32) ((*ip++) & 0xff));
len -= 8;
} else {
/*
@@ -81,19 +81,19 @@ mit_des_cbc_cksum(in, out, length, schedule, ivec)
ip += (int) len;
switch(len) {
case 7:
- right ^= (*(--ip) & 0xff) << 8;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 8;
case 6:
- right ^= (*(--ip) & 0xff) << 16;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 16;
case 5:
- right ^= (*(--ip) & 0xff) << 24;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 24;
case 4:
- left ^= *(--ip) & 0xff;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff));
case 3:
- left ^= (*(--ip) & 0xff) << 8;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 8;
case 2:
- left ^= (*(--ip) & 0xff) << 16;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 16;
case 1:
- left ^= (*(--ip) & 0xff) << 24;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 24;
break;
}
len = 0;
diff --git a/src/lib/crypto/des/f_pcbc.c b/src/lib/crypto/des/f_pcbc.c
index 511ac379c..d547da7da 100644
--- a/src/lib/crypto/des/f_pcbc.c
+++ b/src/lib/crypto/des/f_pcbc.c
@@ -79,21 +79,21 @@ mit_des_pcbc_encrypt(in, out, length, schedule, ivec, encrypt)
ip += (int) length;
switch(length) {
case 8:
- right ^= *(--ip) & 0xff;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff));
case 7:
- right ^= (*(--ip) & 0xff) << 8;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 8;
case 6:
- right ^= (*(--ip) & 0xff) << 16;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 16;
case 5:
- right ^= (*(--ip) & 0xff) << 24;
+ right ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 24;
case 4:
- left ^= *(--ip) & 0xff;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff));
case 3:
- left ^= (*(--ip) & 0xff) << 8;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 8;
case 2:
- left ^= (*(--ip) & 0xff) << 16;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 16;
case 1:
- left ^= (*(--ip) & 0xff) << 24;
+ left ^= ((unsigned KRB_INT32) (*(--ip) & 0xff)) << 24;
break;
}
length = 0;
@@ -178,21 +178,21 @@ mit_des_pcbc_encrypt(in, out, length, schedule, ivec, encrypt)
op += (int) length;
switch(length) {
case 8:
- *(--op) = right & 0xff;
+ *(--op) = (unsigned char) (right & 0xff);
case 7:
- *(--op) = (right >> 8) & 0xff;
+ *(--op) = (unsigned char) ((right >> 8) & 0xff);
case 6:
- *(--op) = (right >> 16) & 0xff;
+ *(--op) = (unsigned char) ((right >> 16) & 0xff);
case 5:
- *(--op) = (right >> 24) & 0xff;
+ *(--op) = (unsigned char) ((right >> 24) & 0xff);
case 4:
- *(--op) = left & 0xff;
+ *(--op) = (unsigned char) (left & 0xff);
case 3:
- *(--op) = (left >> 8) & 0xff;
+ *(--op) = (unsigned char) ((left >> 8) & 0xff);
case 2:
- *(--op) = (left >> 16) & 0xff;
+ *(--op) = (unsigned char) ((left >> 16) & 0xff);
case 1:
- *(--op) = (left >> 24) & 0xff;
+ *(--op) = (unsigned char) ((left >> 24) & 0xff);
break;
}
break; /* we're done */