summaryrefslogtreecommitdiffstats
path: root/lib/librpc/secure_rpc/rpc/xcrypt.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/librpc/secure_rpc/rpc/xcrypt.c')
-rw-r--r--lib/librpc/secure_rpc/rpc/xcrypt.c183
1 files changed, 0 insertions, 183 deletions
diff --git a/lib/librpc/secure_rpc/rpc/xcrypt.c b/lib/librpc/secure_rpc/rpc/xcrypt.c
deleted file mode 100644
index 215fda6..0000000
--- a/lib/librpc/secure_rpc/rpc/xcrypt.c
+++ /dev/null
@@ -1,183 +0,0 @@
-#ifndef lint
-static char sccsid[] = "@(#)xcrypt.c 2.2 88/08/10 4.0 RPCSRC";
-#endif
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-/*
- * Hex encryption/decryption and utility routines
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <des_crypt.h>
-
-extern char *malloc();
-
-extern char hex[]; /* forward */
-static char hexval();
-
-/*
- * Encrypt a secret key given passwd
- * The secret key is passed and returned in hex notation.
- * Its length must be a multiple of 16 hex digits (64 bits).
- */
-xencrypt(secret, passwd)
- char *secret;
- char *passwd;
-{
- char key[8];
- char ivec[8];
- char *buf;
- int err;
- int len;
-
- len = strlen(secret) / 2;
- buf = malloc((unsigned)len);
-
- hex2bin(len, secret, buf);
- passwd2des(passwd, key);
- bzero(ivec, 8);
-
- err = cbc_crypt(key, buf, len, DES_ENCRYPT | DES_HW, ivec);
- if (DES_FAILED(err)) {
- free(buf);
- return (0);
- }
- bin2hex(len, (unsigned char *) buf, secret);
- free(buf);
- return (1);
-}
-
-/*
- * Decrypt secret key using passwd
- * The secret key is passed and returned in hex notation.
- * Once again, the length is a multiple of 16 hex digits
- */
-xdecrypt(secret, passwd)
- char *secret;
- char *passwd;
-{
- char key[8];
- char ivec[8];
- char *buf;
- int err;
- int len;
-
- len = strlen(secret) / 2;
- buf = malloc((unsigned)len);
-
- hex2bin(len, secret, buf);
- passwd2des(passwd, key);
- bzero(ivec, 8);
-
- err = cbc_crypt(key, buf, len, DES_DECRYPT | DES_HW, ivec);
- if (DES_FAILED(err)) {
- free(buf);
- return (0);
- }
- bin2hex(len, (unsigned char *) buf, secret);
- free(buf);
- return (1);
-}
-
-
-/*
- * Turn password into DES key
- */
-passwd2des(pw, key)
- char *pw;
- char *key;
-{
- int i;
-
- bzero(key, 8);
- for (i = 0; *pw; i = (i+1)%8) {
- key[i] ^= *pw++ << 1;
- }
- des_setparity(key);
-}
-
-
-
-/*
- * Hex to binary conversion
- */
-static
-hex2bin(len, hexnum, binnum)
- int len;
- char *hexnum;
- char *binnum;
-{
- int i;
-
- for (i = 0; i < len; i++) {
- *binnum++ = 16 * hexval(hexnum[2*i]) + hexval(hexnum[2*i+1]);
- }
-}
-
-/*
- * Binary to hex conversion
- */
-static
-bin2hex(len, binnum, hexnum)
- int len;
- unsigned char *binnum;
- char *hexnum;
-{
- int i;
- unsigned val;
-
- for (i = 0; i < len; i++) {
- val = binnum[i];
- hexnum[i*2] = hex[val >> 4];
- hexnum[i*2+1] = hex[val & 0xf];
- }
- hexnum[len*2] = 0;
-}
-
-static char hex[16] = {
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
-};
-
-static char
-hexval(c)
- char c;
-{
- if (c >= '0' && c <= '9') {
- return (c - '0');
- } else if (c >= 'a' && c <= 'z') {
- return (c - 'a' + 10);
- } else if (c >= 'A' && c <= 'Z') {
- return (c - 'A' + 10);
- } else {
- return (-1);
- }
-}
OpenPOWER on IntegriCloud