xref: /freebsd/lib/libc/rpc/des_soft.c (revision a986ef5788bd3338d2a970eb96104824e4a0e3bb)
1e8636dfdSBill Paul /*
2e8636dfdSBill Paul  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3e8636dfdSBill Paul  * unrestricted use provided that this legend is included on all tape
4e8636dfdSBill Paul  * media and as a part of the software program in whole or part.  Users
5e8636dfdSBill Paul  * may copy or modify Sun RPC without charge, but are not authorized
6e8636dfdSBill Paul  * to license or distribute it to anyone else except as part of a product or
7e8636dfdSBill Paul  * program developed by the user.
8e8636dfdSBill Paul  *
9e8636dfdSBill Paul  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10e8636dfdSBill Paul  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11e8636dfdSBill Paul  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12e8636dfdSBill Paul  *
13e8636dfdSBill Paul  * Sun RPC is provided with no support and without any obligation on the
14e8636dfdSBill Paul  * part of Sun Microsystems, Inc. to assist in its use, correction,
15e8636dfdSBill Paul  * modification or enhancement.
16e8636dfdSBill Paul  *
17e8636dfdSBill Paul  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18e8636dfdSBill Paul  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19e8636dfdSBill Paul  * OR ANY PART THEREOF.
20e8636dfdSBill Paul  *
21e8636dfdSBill Paul  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22e8636dfdSBill Paul  * or profits or other special, indirect and consequential damages, even if
23e8636dfdSBill Paul  * Sun has been advised of the possibility of such damages.
24e8636dfdSBill Paul  *
25e8636dfdSBill Paul  * Sun Microsystems, Inc.
26e8636dfdSBill Paul  * 2550 Garcia Avenue
27e8636dfdSBill Paul  * Mountain View, California  94043
28e8636dfdSBill Paul  */
29a986ef57SDavid E. O'Brien 
30a986ef57SDavid E. O'Brien #if defined(LIBC_SCCS) && !defined(lint)
31a986ef57SDavid E. O'Brien static char sccsid[] = "@(#)des_soft.c	2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/08 SMI";
32a986ef57SDavid E. O'Brien #endif
33a986ef57SDavid E. O'Brien #include <sys/cdefs.h>
34a986ef57SDavid E. O'Brien __FBSDID("$FreeBSD$");
35a986ef57SDavid E. O'Brien 
36e8636dfdSBill Paul /*
37e8636dfdSBill Paul  * Table giving odd parity in the low bit for ASCII characters
38e8636dfdSBill Paul  */
39e8636dfdSBill Paul static char partab[128] = {
40e8636dfdSBill Paul 	0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x07, 0x07,
41e8636dfdSBill Paul 	0x08, 0x08, 0x0b, 0x0b, 0x0d, 0x0d, 0x0e, 0x0e,
42e8636dfdSBill Paul 	0x10, 0x10, 0x13, 0x13, 0x15, 0x15, 0x16, 0x16,
43e8636dfdSBill Paul 	0x19, 0x19, 0x1a, 0x1a, 0x1c, 0x1c, 0x1f, 0x1f,
44e8636dfdSBill Paul 	0x20, 0x20, 0x23, 0x23, 0x25, 0x25, 0x26, 0x26,
45e8636dfdSBill Paul 	0x29, 0x29, 0x2a, 0x2a, 0x2c, 0x2c, 0x2f, 0x2f,
46e8636dfdSBill Paul 	0x31, 0x31, 0x32, 0x32, 0x34, 0x34, 0x37, 0x37,
47e8636dfdSBill Paul 	0x38, 0x38, 0x3b, 0x3b, 0x3d, 0x3d, 0x3e, 0x3e,
48e8636dfdSBill Paul 	0x40, 0x40, 0x43, 0x43, 0x45, 0x45, 0x46, 0x46,
49e8636dfdSBill Paul 	0x49, 0x49, 0x4a, 0x4a, 0x4c, 0x4c, 0x4f, 0x4f,
50e8636dfdSBill Paul 	0x51, 0x51, 0x52, 0x52, 0x54, 0x54, 0x57, 0x57,
51e8636dfdSBill Paul 	0x58, 0x58, 0x5b, 0x5b, 0x5d, 0x5d, 0x5e, 0x5e,
52e8636dfdSBill Paul 	0x61, 0x61, 0x62, 0x62, 0x64, 0x64, 0x67, 0x67,
53e8636dfdSBill Paul 	0x68, 0x68, 0x6b, 0x6b, 0x6d, 0x6d, 0x6e, 0x6e,
54e8636dfdSBill Paul 	0x70, 0x70, 0x73, 0x73, 0x75, 0x75, 0x76, 0x76,
55e8636dfdSBill Paul 	0x79, 0x79, 0x7a, 0x7a, 0x7c, 0x7c, 0x7f, 0x7f,
56e8636dfdSBill Paul };
57e8636dfdSBill Paul 
58e8636dfdSBill Paul /*
59e8636dfdSBill Paul  * Add odd parity to low bit of 8 byte key
60e8636dfdSBill Paul  */
61e8636dfdSBill Paul void
62e8636dfdSBill Paul des_setparity(p)
63e8636dfdSBill Paul 	char *p;
64e8636dfdSBill Paul {
65e8636dfdSBill Paul 	int i;
66e8636dfdSBill Paul 
67e8636dfdSBill Paul 	for (i = 0; i < 8; i++) {
68e8636dfdSBill Paul 		*p = partab[*p & 0x7f];
69e8636dfdSBill Paul 		p++;
70e8636dfdSBill Paul 	}
71e8636dfdSBill Paul }
72