diff options
Diffstat (limited to 'src/lib/libcrypto/des/qud_cksm.c')
-rw-r--r-- | src/lib/libcrypto/des/qud_cksm.c | 12 |
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); |