summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/qud_cksm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/des/qud_cksm.c')
-rw-r--r--src/lib/libcrypto/des/qud_cksm.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/libcrypto/des/qud_cksm.c b/src/lib/libcrypto/des/qud_cksm.c
index 5f0ec5387f..9fff989edb 100644
--- a/src/lib/libcrypto/des/qud_cksm.c
+++ b/src/lib/libcrypto/des/qud_cksm.c
@@ -81,13 +81,17 @@ DES_LONG des_quad_cksum(const unsigned char *input, des_cblock output[],
81 long l; 81 long l;
82 const unsigned char *cp; 82 const unsigned char *cp;
83#ifdef _CRAY 83#ifdef _CRAY
84 short *lp; 84 struct lp_st { int a:32; int b:32; } *lp;
85#else 85#else
86 DES_LONG *lp; 86 DES_LONG *lp;
87#endif 87#endif
88 88
89 if (out_count < 1) out_count=1; 89 if (out_count < 1) out_count=1;
90#ifdef _CRAY
91 lp = (struct lp_st *) &(output[0])[0];
92#else
90 lp = (DES_LONG *) &(output[0])[0]; 93 lp = (DES_LONG *) &(output[0])[0];
94#endif
91 95
92 z0=Q_B0((*seed)[0])|Q_B1((*seed)[1])|Q_B2((*seed)[2])|Q_B3((*seed)[3]); 96 z0=Q_B0((*seed)[0])|Q_B1((*seed)[1])|Q_B2((*seed)[2])|Q_B3((*seed)[3]);
93 z1=Q_B0((*seed)[4])|Q_B1((*seed)[5])|Q_B2((*seed)[6])|Q_B3((*seed)[7]); 97 z1=Q_B0((*seed)[4])|Q_B1((*seed)[5])|Q_B2((*seed)[6])|Q_B3((*seed)[7]);
@@ -120,8 +124,14 @@ DES_LONG des_quad_cksum(const unsigned char *input, des_cblock output[],
120 { 124 {
121 /* The MIT library assumes that the checksum is 125 /* The MIT library assumes that the checksum is
122 * composed of 2*out_count 32 bit ints */ 126 * composed of 2*out_count 32 bit ints */
127#ifdef _CRAY
128 (*lp).a = z0;
129 (*lp).b = z1;
130 lp++;
131#else
123 *lp++ = z0; 132 *lp++ = z0;
124 *lp++ = z1; 133 *lp++ = z1;
134#endif
125 } 135 }
126 } 136 }
127 return(z0); 137 return(z0);