(unix_ops): Mark as const.
[kopensolaris-gnu/glibc.git] / sunrpc / xcrypt.c
index d770a7d..ea8ff45 100644 (file)
@@ -50,7 +50,7 @@ static char sccsid[] = "@(#)xcrypt.c 1.3 89/03/24 Copyr 1986 Sun Micro";
 #include <sys/types.h>
 #include <rpc/des_crypt.h>
 
-static char hex[16] =
+static const char hex[16] =
 {
   '0', '1', '2', '3', '4', '5', '6', '7',
   '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
@@ -69,7 +69,35 @@ static char hexval (char) internal_function;
 
 static void hex2bin (int, char *, char *) internal_function;
 static void bin2hex (int, unsigned char *, char *) internal_function;
-void passwd2des (char *pw, char *key);
+void passwd2des_internal (char *pw, char *key);
+#ifdef _LIBC
+libc_hidden_proto (passwd2des_internal)
+#endif
+
+/*
+ * Turn password into DES key
+ */
+void
+passwd2des_internal (char *pw, char *key)
+{
+  int i;
+
+  memset (key, 0, 8);
+  for (i = 0; *pw && i < 8; ++i)
+    key[i] ^= *pw++ << 1;
+
+  des_setparity (key);
+}
+
+#ifdef _LIBC
+libc_hidden_def (passwd2des_internal)
+strong_alias (passwd2des_internal, passwd2des)
+#else
+void passwd2des (char *pw, char *key)
+{
+  return passwd2des_internal (pw, key);
+}
+#endif
 
 /*
  * Encrypt a secret key given passwd
@@ -88,7 +116,7 @@ xencrypt (char *secret, char *passwd)
   len = strlen (secret) / 2;
   buf = malloc ((unsigned) len);
   hex2bin (len, secret, buf);
-  passwd2des (passwd, key);
+  passwd2des_internal (passwd, key);
   memset (ivec, 0, 8);
 
   err = cbc_crypt (key, buf, len, DES_ENCRYPT | DES_HW, ivec);
@@ -120,7 +148,7 @@ xdecrypt (char *secret, char *passwd)
   buf = malloc ((unsigned) len);
 
   hex2bin (len, secret, buf);
-  passwd2des (passwd, key);
+  passwd2des_internal (passwd, key);
   memset (ivec, 0, 8);
 
   err = cbc_crypt (key, buf, len, DES_DECRYPT | DES_HW, ivec);
@@ -135,21 +163,6 @@ xdecrypt (char *secret, char *passwd)
 }
 
 /*
- * Turn password into DES key
- */
-void
-passwd2des (char *pw, char *key)
-{
-  int i;
-
-  memset (key, 0, 8);
-  for (i = 0; *pw; i = (i + 1) % 8)
-    key[i] ^= *pw++ << 1;
-
-  des_setparity (key);
-}
-
-/*
  * Hex to binary conversion
  */
 static void