diff options
Diffstat (limited to 'contrib/cvs/src/scramble.c')
-rw-r--r-- | contrib/cvs/src/scramble.c | 157 |
1 files changed, 78 insertions, 79 deletions
diff --git a/contrib/cvs/src/scramble.c b/contrib/cvs/src/scramble.c index 07094a6..77376fa 100644 --- a/contrib/cvs/src/scramble.c +++ b/contrib/cvs/src/scramble.c @@ -50,23 +50,23 @@ */ static unsigned char -shifts[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 114, 120, -53, 79, 96, 109, 72, 108, 70, 64, 76, 67, 116, 74, 68, 87, 111, 52, -75, 119, 49, 34, 82, 81, 95, 65, 112, 86, 118, 110, 122, 105, 41, 57, -83, 43, 46, 102, 40, 89, 38, 103, 45, 50, 42, 123, 91, 35, 125, 55, -54, 66, 124, 126, 59, 47, 92, 71, 115, 78, 88, 107, 106, 56, 36, 121, -117, 104, 101, 100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48, 58, 113, -32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85, 223, 225, 216, -187, 166, 229, 189, 222, 188, 141, 249, 148, 200, 184, 136, 248, 190, -199, 170, 181, 204, 138, 232, 218, 183, 255, 234, 220, 247, 213, 203, -226, 193, 174, 172, 228, 252, 217, 201, 131, 230, 197, 211, 145, 238, -161, 179, 160, 212, 207, 221, 254, 173, 202, 146, 224, 151, 140, 196, -205, 130, 135, 133, 143, 246, 192, 159, 244, 239, 185, 168, 215, 144, -139, 165, 180, 157, 147, 186, 214, 176, 227, 231, 219, 169, 175, 156, -206, 198, 129, 164, 150, 210, 154, 177, 134, 127, 182, 128, 158, 208, -162, 132, 167, 209, 149, 241, 153, 251, 237, 236, 171, 195, 243, 233, -253, 240, 194, 250, 191, 155, 142, 137, 245, 235, 163, 242, 178, 152 }; +shifts[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 114,120, 53, 79, 96,109, 72,108, 70, 64, 76, 67,116, 74, 68, 87, + 111, 52, 75,119, 49, 34, 82, 81, 95, 65,112, 86,118,110,122,105, + 41, 57, 83, 43, 46,102, 40, 89, 38,103, 45, 50, 42,123, 91, 35, + 125, 55, 54, 66,124,126, 59, 47, 92, 71,115, 78, 88,107,106, 56, + 36,121,117,104,101,100, 69, 73, 99, 63, 94, 93, 39, 37, 61, 48, + 58,113, 32, 90, 44, 98, 60, 51, 33, 97, 62, 77, 84, 80, 85,223, + 225,216,187,166,229,189,222,188,141,249,148,200,184,136,248,190, + 199,170,181,204,138,232,218,183,255,234,220,247,213,203,226,193, + 174,172,228,252,217,201,131,230,197,211,145,238,161,179,160,212, + 207,221,254,173,202,146,224,151,140,196,205,130,135,133,143,246, + 192,159,244,239,185,168,215,144,139,165,180,157,147,186,214,176, + 227,231,219,169,175,156,206,198,129,164,150,210,154,177,134,127, + 182,128,158,208,162,132,167,209,149,241,153,251,237,236,171,195, + 243,233,253,240,194,250,191,155,142,137,245,235,163,242,178,152 }; /* SCRAMBLE and DESCRAMBLE work like this: @@ -85,57 +85,56 @@ shifts[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, /* Return a malloc'd, scrambled version of STR. */ char * scramble (str) - char *str; + char *str; { - int i; - char *s; + int i; + char *s; - /* +2 to hold the 'A' prefix that indicates which version of - * scrambling this is (the first, obviously, since we only do one - * kind of scrambling so far), and then the '\0' of course. - */ - s = (char *) xmalloc (strlen (str) + 2); + /* +2 to hold the 'A' prefix that indicates which version of + scrambling this is (the first, obviously, since we only do one + kind of scrambling so far), and then the '\0' of course. */ + s = (char *) xmalloc (strlen (str) + 2); - s[0] = 'A'; /* Scramble (TM) version prefix. */ - strcpy (s + 1, str); + /* Scramble (TM) version prefix. */ + s[0] = 'A'; + strcpy (s + 1, str); - for (i = 1; s[i]; i++) - s[i] = shifts[(unsigned char)(s[i])]; + for (i = 1; s[i]; i++) + s[i] = shifts[(unsigned char)(s[i])]; - return s; + return s; } /* Decode the string in place. */ char * descramble (str) - char *str; + char *str; { - char *s; - int i; + char *s; + int i; - /* For now we can only handle one kind of scrambling. In the future - * there may be other kinds, and this `if' will become a `switch'. - */ - if (str[0] != 'A') + /* For now we can only handle one kind of scrambling. In the future + there may be other kinds, and this `if' will become a `switch'. */ + if (str[0] != 'A') #ifndef DIAGNOSTIC - error (1, 0, "descramble: unknown scrambling method"); + error (1, 0, "descramble: unknown scrambling method"); #else /* DIAGNOSTIC */ - { - fprintf (stderr, "descramble: unknown scrambling method\n", str); - fflush (stderr); - exit (EXIT_FAILURE); - } + { + fprintf (stderr, "descramble: unknown scrambling method\n", str); + fflush (stderr); + exit (EXIT_FAILURE); + } #endif /* DIAGNOSTIC */ - /* Method `A' is symmetrical, so scramble again to decrypt. */ - s = scramble (str + 1); + /* Method `A' is symmetrical, so scramble again to decrypt. */ + s = scramble (str + 1); - /* Shift the whole string one char to the left, pushing the unwanted - 'A' off the left end. Safe, because s is null-terminated. */ - for (i = 0; s[i]; i++) - s[i] = s[i + 1]; + /* Shift the whole string one char to the left, pushing the unwanted + 'A' off the left end. Safe, because s is null-terminated. */ + for (i = 0; s[i]; i++) + s[i] = s[i + 1]; - return s; + return s; } #endif /* (AUTH_CLIENT_SUPPORT || AUTH_SERVER_SUPPORT) from top of file */ @@ -144,38 +143,38 @@ descramble (str) int main () { - int i; - char *e, *m, biggie[256]; - - char *cleartexts[5]; - cleartexts[0] = "first"; - cleartexts[1] = "the second"; - cleartexts[2] = "this is the third"; - cleartexts[3] = "$#% !!\\3"; - cleartexts[4] = biggie; - - /* Set up the most important test string: */ - /* Can't have a real ASCII zero in the string, because we want to - use printf, so we substitute the character zero. */ - biggie[0] = '0'; - /* The rest of the string gets straight ascending ASCII. */ - for (i = 1; i < 256; i++) - biggie[i] = i; - - /* Test all the strings. */ - for (i = 0; i < 5; i++) + int i; + char *e, *m, biggie[256]; + + char *cleartexts[5]; + cleartexts[0] = "first"; + cleartexts[1] = "the second"; + cleartexts[2] = "this is the third"; + cleartexts[3] = "$#% !!\\3"; + cleartexts[4] = biggie; + + /* Set up the most important test string: */ + /* Can't have a real ASCII zero in the string, because we want to + use printf, so we substitute the character zero. */ + biggie[0] = '0'; + /* The rest of the string gets straight ascending ASCII. */ + for (i = 1; i < 256; i++) + biggie[i] = i; + + /* Test all the strings. */ + for (i = 0; i < 5; i++) { - printf ("clear%d: %s\n", i, cleartexts[i]); - e = scramble (cleartexts[i]); - printf ("scram%d: %s\n", i, e); - m = descramble (e); - free (e); - printf ("clear%d: %s\n\n", i, m); - free (m); + printf ("clear%d: %s\n", i, cleartexts[i]); + e = scramble (cleartexts[i]); + printf ("scram%d: %s\n", i, e); + m = descramble (e); + free (e); + printf ("clear%d: %s\n\n", i, m); + free (m); } - fflush (stdout); - return 0; + fflush (stdout); + return 0; } #endif /* DIAGNOSTIC */ |