/[muddleftpd]/muddleftpd/modules/auth/authlibsmb/smbval/smbdes.c
ViewVC logotype

Diff of /muddleftpd/modules/auth/authlibsmb/smbval/smbdes.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by rugger, Sun Oct 20 12:00:41 2002 UTC revision 1.1.4.1 by ganneff, Mon Oct 21 19:52:58 2002 UTC
# Line 1  Line 1 
1    
2  /*  /*
3     Unix SMB/Netbios implementation.     Unix SMB/Netbios implementation.
4     Version 1.9.     Version 1.9.
# Line 22  Line 23 
23     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24  */  */
25    
   
26  /* NOTES:  /* NOTES:
27    
28     This code makes no attempt to be fast! In fact, it is a very     This code makes no attempt to be fast! In fact, it is a very
# Line 45  Line 45 
45     up with a different answer to the one above)     up with a different answer to the one above)
46  */  */
47    
48    static int perm1[56] = { 57, 49, 41, 33, 25, 17, 9,
49            1, 58, 50, 42, 34, 26, 18,
50            10, 2, 59, 51, 43, 35, 27,
51            19, 11, 3, 60, 52, 44, 36,
52            63, 55, 47, 39, 31, 23, 15,
53            7, 62, 54, 46, 38, 30, 22,
54            14, 6, 61, 53, 45, 37, 29,
55            21, 13, 5, 28, 20, 12, 4
56    };
57    
58    static int perm2[48] = { 14, 17, 11, 24, 1, 5,
59            3, 28, 15, 6, 21, 10,
60            23, 19, 12, 4, 26, 8,
61            16, 7, 27, 20, 13, 2,
62            41, 52, 31, 37, 47, 55,
63            30, 40, 51, 45, 33, 48,
64            44, 49, 39, 56, 34, 53,
65            46, 42, 50, 36, 29, 32
66    };
67    
68    static int perm3[64] = { 58, 50, 42, 34, 26, 18, 10, 2,
69            60, 52, 44, 36, 28, 20, 12, 4,
70            62, 54, 46, 38, 30, 22, 14, 6,
71            64, 56, 48, 40, 32, 24, 16, 8,
72            57, 49, 41, 33, 25, 17, 9, 1,
73            59, 51, 43, 35, 27, 19, 11, 3,
74            61, 53, 45, 37, 29, 21, 13, 5,
75            63, 55, 47, 39, 31, 23, 15, 7
76    };
77    
78    static int perm4[48] = { 32, 1, 2, 3, 4, 5,
79            4, 5, 6, 7, 8, 9,
80            8, 9, 10, 11, 12, 13,
81            12, 13, 14, 15, 16, 17,
82            16, 17, 18, 19, 20, 21,
83            20, 21, 22, 23, 24, 25,
84            24, 25, 26, 27, 28, 29,
85            28, 29, 30, 31, 32, 1
86    };
87    
88    static int perm5[32] = { 16, 7, 20, 21,
89            29, 12, 28, 17,
90            1, 15, 23, 26,
91            5, 18, 31, 10,
92            2, 8, 24, 14,
93            32, 27, 3, 9,
94            19, 13, 30, 6,
95            22, 11, 4, 25
96    };
97    
98    static int perm6[64] = { 40, 8, 48, 16, 56, 24, 64, 32,
99            39, 7, 47, 15, 55, 23, 63, 31,
100            38, 6, 46, 14, 54, 22, 62, 30,
101            37, 5, 45, 13, 53, 21, 61, 29,
102            36, 4, 44, 12, 52, 20, 60, 28,
103            35, 3, 43, 11, 51, 19, 59, 27,
104            34, 2, 42, 10, 50, 18, 58, 26,
105            33, 1, 41, 9, 49, 17, 57, 25
106    };
107    
108    static int sc[16] = { 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 };
 static int perm1[56] = {57, 49, 41, 33, 25, 17,  9,  
                          1, 58, 50, 42, 34, 26, 18,  
                         10,  2, 59, 51, 43, 35, 27,  
                         19, 11,  3, 60, 52, 44, 36,  
                         63, 55, 47, 39, 31, 23, 15,  
                          7, 62, 54, 46, 38, 30, 22,  
                         14,  6, 61, 53, 45, 37, 29,  
                         21, 13,  5, 28, 20, 12,  4};  
   
 static int perm2[48] = {14, 17, 11, 24,  1,  5,  
                          3, 28, 15,  6, 21, 10,  
                         23, 19, 12,  4, 26,  8,  
                         16,  7, 27, 20, 13,  2,  
                         41, 52, 31, 37, 47, 55,  
                         30, 40, 51, 45, 33, 48,  
                         44, 49, 39, 56, 34, 53,  
                         46, 42, 50, 36, 29, 32};  
   
 static int perm3[64] = {58, 50, 42, 34, 26, 18, 10,  2,  
                         60, 52, 44, 36, 28, 20, 12,  4,  
                         62, 54, 46, 38, 30, 22, 14,  6,  
                         64, 56, 48, 40, 32, 24, 16,  8,  
                         57, 49, 41, 33, 25, 17,  9,  1,  
                         59, 51, 43, 35, 27, 19, 11,  3,  
                         61, 53, 45, 37, 29, 21, 13,  5,  
                         63, 55, 47, 39, 31, 23, 15,  7};  
   
 static int perm4[48] = {   32,  1,  2,  3,  4,  5,  
                             4,  5,  6,  7,  8,  9,  
                             8,  9, 10, 11, 12, 13,  
                            12, 13, 14, 15, 16, 17,  
                            16, 17, 18, 19, 20, 21,  
                            20, 21, 22, 23, 24, 25,  
                            24, 25, 26, 27, 28, 29,  
                            28, 29, 30, 31, 32,  1};  
   
 static int perm5[32] = {      16,  7, 20, 21,  
                               29, 12, 28, 17,  
                                1, 15, 23, 26,  
                                5, 18, 31, 10,  
                                2,  8, 24, 14,  
                               32, 27,  3,  9,  
                               19, 13, 30,  6,  
                               22, 11,  4, 25};  
   
   
 static int perm6[64] ={ 40,  8, 48, 16, 56, 24, 64, 32,  
                         39,  7, 47, 15, 55, 23, 63, 31,  
                         38,  6, 46, 14, 54, 22, 62, 30,  
                         37,  5, 45, 13, 53, 21, 61, 29,  
                         36,  4, 44, 12, 52, 20, 60, 28,  
                         35,  3, 43, 11, 51, 19, 59, 27,  
                         34,  2, 42, 10, 50, 18, 58, 26,  
                         33,  1, 41,  9, 49, 17, 57, 25};  
   
   
 static int sc[16] = {1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1};  
109    
110  static int sbox[8][4][16] = {  static int sbox[8][4][16] = {
111          {{14,  4, 13,  1,  2, 15, 11,  8,  3, 10,  6, 12,  5,  9,  0,  7},          {{14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7},
112           {0, 15,  7,  4, 14,  2, 13,  1, 10,  6, 12, 11,  9,  5,  3,  8},           {0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8},
113           {4,  1, 14,  8, 13,  6,  2, 11, 15, 12,  9,  7,  3, 10,  5,  0},           {4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0},
114           {15, 12,  8,  2,  4,  9,  1,  7,  5, 11,  3, 14, 10,  0,  6, 13}},           {15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13}},
115    
116          {{15,  1,  8, 14,  6, 11,  3,  4,  9,  7,  2, 13, 12,  0,  5, 10},          {{15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10},
117           {3, 13,  4,  7, 15,  2,  8, 14, 12,  0,  1, 10,  6,  9, 11,  5},           {3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5},
118           {0, 14,  7, 11, 10,  4, 13,  1,  5,  8, 12,  6,  9,  3,  2, 15},           {0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15},
119           {13,  8, 10,  1,  3, 15,  4,  2, 11,  6,  7, 12,  0,  5, 14,  9}},           {13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9}},
120    
121          {{10,  0,  9, 14,  6,  3, 15,  5,  1, 13, 12,  7, 11,  4,  2,  8},          {{10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8},
122           {13,  7,  0,  9,  3,  4,  6, 10,  2,  8,  5, 14, 12, 11, 15,  1},           {13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1},
123           {13,  6,  4,  9,  8, 15,  3,  0, 11,  1,  2, 12,  5, 10, 14,  7},           {13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7},
124           {1, 10, 13,  0,  6,  9,  8,  7,  4, 15, 14,  3, 11,  5,  2, 12}},           {1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12}},
125    
126          {{7, 13, 14,  3,  0,  6,  9, 10,  1,  2,  8,  5, 11, 12,  4, 15},          {{7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15},
127           {13,  8, 11,  5,  6, 15,  0,  3,  4,  7,  2, 12,  1, 10, 14,  9},           {13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9},
128           {10,  6,  9,  0, 12, 11,  7, 13, 15,  1,  3, 14,  5,  2,  8,  4},           {10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4},
129           {3, 15,  0,  6, 10,  1, 13,  8,  9,  4,  5, 11, 12,  7,  2, 14}},           {3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14}},
130    
131          {{2, 12,  4,  1,  7, 10, 11,  6,  8,  5,  3, 15, 13,  0, 14,  9},          {{2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9},
132           {14, 11,  2, 12,  4,  7, 13,  1,  5,  0, 15, 10,  3,  9,  8,  6},           {14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6},
133           {4,  2,  1, 11, 10, 13,  7,  8, 15,  9, 12,  5,  6,  3,  0, 14},           {4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14},
134           {11,  8, 12,  7,  1, 14,  2, 13,  6, 15,  0,  9, 10,  4,  5,  3}},           {11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3}},
135    
136          {{12,  1, 10, 15,  9,  2,  6,  8,  0, 13,  3,  4, 14,  7,  5, 11},          {{12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11},
137           {10, 15,  4,  2,  7, 12,  9,  5,  6,  1, 13, 14,  0, 11,  3,  8},           {10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8},
138           {9, 14, 15,  5,  2,  8, 12,  3,  7,  0,  4, 10,  1, 13, 11,  6},           {9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6},
139           {4,  3,  2, 12,  9,  5, 15, 10, 11, 14,  1,  7,  6,  0,  8, 13}},           {4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13}},
140    
141          {{4, 11,  2, 14, 15,  0,  8, 13,  3, 12,  9,  7,  5, 10,  6,  1},          {{4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1},
142           {13,  0, 11,  7,  4,  9,  1, 10, 14,  3,  5, 12,  2, 15,  8,  6},           {13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6},
143           {1,  4, 11, 13, 12,  3,  7, 14, 10, 15,  6,  8,  0,  5,  9,  2},           {1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2},
144           {6, 11, 13,  8,  1,  4, 10,  7,  9,  5,  0, 15, 14,  2,  3, 12}},           {6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12}},
145    
146          {{13,  2,  8,  4,  6, 15, 11,  1, 10,  9,  3, 14,  5,  0, 12,  7},          {{13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7},
147           {1, 15, 13,  8, 10,  3,  7,  4, 12,  5,  6, 11,  0, 14,  9,  2},           {1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2},
148           {7, 11,  4,  1,  9, 12, 14,  2,  0,  6, 10, 13, 15,  3,  5,  8},           {7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8},
149           {2,  1, 14,  7,  4, 10,  8, 13, 15, 12,  9,  0,  3,  5,  6, 11}}};           {2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11}}
150    };
151  static void permute(char *out, char *in, int *p, int n)  
152    static void permute(char *out,
153                                            char *in,
154                                            int *p,
155                                            int n)
156  {  {
157          int i;          int i;
158          for (i=0;i<n;i++)  
159                  out[i] = in[p[i]-1];          for (i = 0; i < n; i++)
160                    out[i] = in[p[i] - 1];
161  }  }
162    
163  static void lshift(char *d, int count, int n)  static void lshift(char *d,
164                                       int count,
165                                       int n)
166  {  {
167          char out[64];          char out[64];
168          int i;          int i;
169          for (i=0;i<n;i++)  
170                  out[i] = d[(i+count)%n];          for (i = 0; i < n; i++)
171          for (i=0;i<n;i++)                  out[i] = d[(i + count) % n];
172            for (i = 0; i < n; i++)
173                  d[i] = out[i];                  d[i] = out[i];
174  }  }
175    
176  static void concat(char *out, char *in1, char *in2, int l1, int l2)  static void concat(char *out,
177                                       char *in1,
178                                       char *in2,
179                                       int l1,
180                                       int l2)
181  {  {
182          while (l1--)          while (l1--)
183                  *out++ = *in1++;                  *out++ = *in1++;
# Line 171  static void concat(char *out, char *in1, Line 185  static void concat(char *out, char *in1,
185                  *out++ = *in2++;                  *out++ = *in2++;
186  }  }
187    
188  static void xor(char *out, char *in1, char *in2, int n)  static void xor(char *out,
189                                    char *in1,
190                                    char *in2,
191                                    int n)
192  {  {
193          int i;          int i;
194          for (i=0;i<n;i++)  
195            for (i = 0; i < n; i++)
196                  out[i] = in1[i] ^ in2[i];                  out[i] = in1[i] ^ in2[i];
197  }  }
198    
199  static void dohash(char *out, char *in, char *key)  static void dohash(char *out,
200                                       char *in,
201                                       char *key)
202  {  {
203          int i, j, k;          int i, j, k;
204          char pk1[56];          char pk1[56];
# Line 192  static void dohash(char *out, char *in, Line 212  static void dohash(char *out, char *in,
212    
213          permute(pk1, key, perm1, 56);          permute(pk1, key, perm1, 56);
214    
215          for (i=0;i<28;i++)          for (i = 0; i < 28; i++)
216                  c[i] = pk1[i];                  c[i] = pk1[i];
217          for (i=0;i<28;i++)          for (i = 0; i < 28; i++)
218                  d[i] = pk1[i+28];                  d[i] = pk1[i + 28];
219    
220          for (i=0;i<16;i++) {          for (i = 0; i < 16; i++)
221            {
222                  lshift(c, sc[i], 28);                  lshift(c, sc[i], 28);
223                  lshift(d, sc[i], 28);                  lshift(d, sc[i], 28);
224    
225                  concat(cd, c, d, 28, 28);                  concat(cd, c, d, 28, 28);
226                  permute(ki[i], cd, perm2, 48);                  permute(ki[i], cd, perm2, 48);
227          }          }
228    
229          permute(pd1, in, perm3, 64);          permute(pd1, in, perm3, 64);
230    
231          for (j=0;j<32;j++) {          for (j = 0; j < 32; j++)
232            {
233                  l[j] = pd1[j];                  l[j] = pd1[j];
234                  r[j] = pd1[j+32];                  r[j] = pd1[j + 32];
235          }          }
236    
237          for (i=0;i<16;i++) {          for (i = 0; i < 16; i++)
238            {
239                  char er[48];                  char er[48];
240                  char erk[48];                  char erk[48];
241                  char b[8][6];                  char b[8][6];
# Line 224  static void dohash(char *out, char *in, Line 247  static void dohash(char *out, char *in,
247    
248                  xor(erk, er, ki[i], 48);                  xor(erk, er, ki[i], 48);
249    
250                  for (j=0;j<8;j++)                  for (j = 0; j < 8; j++)
251                          for (k=0;k<6;k++)                          for (k = 0; k < 6; k++)
252                                  b[j][k] = erk[j*6 + k];                                  b[j][k] = erk[j * 6 + k];
253    
254                  for (j=0;j<8;j++) {                  for (j = 0; j < 8; j++)
255                    {
256                          int m, n;                          int m, n;
                         m = (b[j][0]<<1) | b[j][5];  
257    
258                          n = (b[j][1]<<3) | (b[j][2]<<2) | (b[j][3]<<1) | b[j][4];                          m = (b[j][0] << 1) | b[j][5];
259    
260                            n = (b[j][1] << 3) | (b[j][2] << 2) | (b[j][3] << 1) | b[j][4];
261    
262                          for (k=0;k<4;k++)                          for (k = 0; k < 4; k++)
263                                  b[j][k] = (sbox[j][m][n] & (1<<(3-k)))?1:0;                                  b[j][k] = (sbox[j][m][n] & (1 << (3 - k))) ? 1 : 0;
264                  }                  }
265    
266                  for (j=0;j<8;j++)                  for (j = 0; j < 8; j++)
267                          for (k=0;k<4;k++)                          for (k = 0; k < 4; k++)
268                                  cb[j*4+k] = b[j][k];                                  cb[j * 4 + k] = b[j][k];
269                  permute(pcb, cb, perm5, 32);                  permute(pcb, cb, perm5, 32);
270    
271                  xor(r2, l, pcb, 32);                  xor(r2, l, pcb, 32);
272    
273                  for (j=0;j<32;j++)                  for (j = 0; j < 32; j++)
274                          l[j] = r[j];                          l[j] = r[j];
275    
276                  for (j=0;j<32;j++)                  for (j = 0; j < 32; j++)
277                          r[j] = r2[j];                          r[j] = r2[j];
278          }          }
279    
# Line 257  static void dohash(char *out, char *in, Line 282  static void dohash(char *out, char *in,
282          permute(out, rl, perm6, 64);          permute(out, rl, perm6, 64);
283  }  }
284    
285  static void str_to_key(unsigned char *str,unsigned char *key)  static void str_to_key(unsigned char *str,
286                                               unsigned char *key)
287  {  {
288          int i;          int i;
289    
290          key[0] = str[0]>>1;          key[0] = str[0] >> 1;
291          key[1] = ((str[0]&0x01)<<6) | (str[1]>>2);          key[1] = ((str[0] & 0x01) << 6) | (str[1] >> 2);
292          key[2] = ((str[1]&0x03)<<5) | (str[2]>>3);          key[2] = ((str[1] & 0x03) << 5) | (str[2] >> 3);
293          key[3] = ((str[2]&0x07)<<4) | (str[3]>>4);          key[3] = ((str[2] & 0x07) << 4) | (str[3] >> 4);
294          key[4] = ((str[3]&0x0F)<<3) | (str[4]>>5);          key[4] = ((str[3] & 0x0F) << 3) | (str[4] >> 5);
295          key[5] = ((str[4]&0x1F)<<2) | (str[5]>>6);          key[5] = ((str[4] & 0x1F) << 2) | (str[5] >> 6);
296          key[6] = ((str[5]&0x3F)<<1) | (str[6]>>7);          key[6] = ((str[5] & 0x3F) << 1) | (str[6] >> 7);
297          key[7] = str[6]&0x7F;          key[7] = str[6] & 0x7F;
298          for (i=0;i<8;i++) {          for (i = 0; i < 8; i++)
299                  key[i] = (key[i]<<1);          {
300                    key[i] = (key[i] << 1);
301          }          }
302  }  }
303    
304    static void smbhash(unsigned char *out,
305  static void smbhash(unsigned char *out, unsigned char *in, unsigned char *key)                                          unsigned char *in,
306                                            unsigned char *key)
307  {  {
308          int i;          int i;
309          char outb[64];          char outb[64];
# Line 285  static void smbhash(unsigned char *out, Line 313  static void smbhash(unsigned char *out,
313    
314          str_to_key(key, key2);          str_to_key(key, key2);
315    
316          for (i=0;i<64;i++) {          for (i = 0; i < 64; i++)
317                  inb[i] = (in[i/8] & (1<<(7-(i%8)))) ? 1 : 0;          {
318                  keyb[i] = (key2[i/8] & (1<<(7-(i%8)))) ? 1 : 0;                  inb[i] = (in[i / 8] & (1 << (7 - (i % 8)))) ? 1 : 0;
319                    keyb[i] = (key2[i / 8] & (1 << (7 - (i % 8)))) ? 1 : 0;
320                  outb[i] = 0;                  outb[i] = 0;
321          }          }
322    
323          dohash(outb, inb, keyb);          dohash(outb, inb, keyb);
324    
325          for (i=0;i<8;i++) {          for (i = 0; i < 8; i++)
326            {
327                  out[i] = 0;                  out[i] = 0;
328          }          }
329    
330          for (i=0;i<64;i++) {          for (i = 0; i < 64; i++)
331            {
332                  if (outb[i])                  if (outb[i])
333                          out[i/8] |= (1<<(7-(i%8)));                          out[i / 8] |= (1 << (7 - (i % 8)));
334          }          }
335  }  }
336    
337  void E_P16(unsigned char *p14,unsigned char *p16)  void E_P16(unsigned char *p14,
338                       unsigned char *p16)
339  {  {
340          unsigned char sp8[8] = {0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25};          unsigned char sp8[8] = { 0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25 };
341    
342          smbhash(p16, sp8, p14);          smbhash(p16, sp8, p14);
343          smbhash(p16+8, sp8, p14+7);          smbhash(p16 + 8, sp8, p14 + 7);
344  }  }
345    
346  void E_P24(unsigned char *p21, unsigned char *c8, unsigned char *p24)  void E_P24(unsigned char *p21,
347                       unsigned char *c8,
348                       unsigned char *p24)
349  {  {
350          smbhash(p24, c8, p21);          smbhash(p24, c8, p21);
351          smbhash(p24+8, c8, p21+7);          smbhash(p24 + 8, c8, p21 + 7);
352          smbhash(p24+16, c8, p21+14);          smbhash(p24 + 16, c8, p21 + 14);
353  }  }
354    
355  void cred_hash1(unsigned char *out,unsigned char *in,unsigned char *key)  void cred_hash1(unsigned char *out,
356                                    unsigned char *in,
357                                    unsigned char *key)
358  {  {
359          unsigned char buf[8];          unsigned char buf[8];
360    
361          smbhash(buf, in, key);          smbhash(buf, in, key);
362          smbhash(out, buf, key+9);          smbhash(out, buf, key + 9);
363  }  }
364    
365  void cred_hash2(unsigned char *out,unsigned char *in,unsigned char *key)  void cred_hash2(unsigned char *out,
366                                    unsigned char *in,
367                                    unsigned char *key)
368  {  {
369          unsigned char buf[8];          unsigned char buf[8];
370          static unsigned char key2[8];          static unsigned char key2[8];
# Line 334  void cred_hash2(unsigned char *out,unsig Line 373  void cred_hash2(unsigned char *out,unsig
373          key2[0] = key[7];          key2[0] = key[7];
374          smbhash(out, buf, key2);          smbhash(out, buf, key2);
375  }  }
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.4.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26