26 #include "sql_crypt.h"
29 void SQL_CRYPT::init(ulong *rand_nr)
32 randominit(&rand,rand_nr[0],rand_nr[1]);
34 for (i=0 ; i<=255; i++)
35 decode_buff[i]= (
char)
i;
37 for (i=0 ; i<= 255 ; i++)
39 int idx= (uint) (my_rnd(&rand)*255.0);
40 char a= decode_buff[idx];
41 decode_buff[idx]= decode_buff[
i];
44 for (i=0 ; i <= 255 ; i++)
45 encode_buff[(uchar) decode_buff[
i]]=
i;
51 void SQL_CRYPT::encode(
char *str,uint length)
53 for (uint i=0; i < length; i++)
55 shift^=(uint) (my_rnd(&rand)*255.0);
56 uint idx= (uint) (uchar) str[0];
57 *str++ = (char) ((uchar) encode_buff[idx] ^ shift);
63 void SQL_CRYPT::decode(
char *str,uint length)
65 for (uint i=0; i < length; i++)
67 shift^=(uint) (my_rnd(&rand)*255.0);
68 uint idx= (uint) ((uchar) str[0] ^ shift);
69 *str = decode_buff[idx];
70 shift^= (uint) (uchar) *str++;