about summary refs log tree commit diff
path: root/crypt/crypt-entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypt/crypt-entry.c')
-rw-r--r--crypt/crypt-entry.c183
1 files changed, 0 insertions, 183 deletions
diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c
deleted file mode 100644
index c24c0110a6..0000000000
--- a/crypt/crypt-entry.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * UFC-crypt: ultra fast crypt(3) implementation
- *
- * Copyright (C) 1991-2023 Free Software Foundation, Inc.
- *
- * The GNU C Library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * The GNU C Library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the GNU C Library; if not, see
- * <https://www.gnu.org/licenses/>.
- *
- * crypt entry points
- *
- * @(#)crypt-entry.c	1.2 12/20/96
- *
- */
-
-#ifdef DEBUG
-#include <stdio.h>
-#endif
-#include <string.h>
-#include <errno.h>
-#include <fips-private.h>
-
-#ifndef STATIC
-#define STATIC static
-#endif
-
-#include "crypt-private.h"
-#include <shlib-compat.h>
-
-/* Prototypes for local functions.  */
-#ifndef __GNU_LIBRARY__
-void _ufc_clearmem (char *start, int cnt);
-#else
-#define _ufc_clearmem(start, cnt)   memset(start, 0, cnt)
-#endif
-extern char *__md5_crypt_r (const char *key, const char *salt, char *buffer,
-			    int buflen);
-extern char *__md5_crypt (const char *key, const char *salt);
-extern char *__sha256_crypt_r (const char *key, const char *salt,
-			       char *buffer, int buflen);
-extern char *__sha256_crypt (const char *key, const char *salt);
-extern char *__sha512_crypt_r (const char *key, const char *salt,
-			       char *buffer, int buflen);
-extern char *__sha512_crypt (const char *key, const char *salt);
-
-/* Define our magic string to mark salt for MD5 encryption
-   replacement.  This is meant to be the same as for other MD5 based
-   encryption implementations.  */
-static const char md5_salt_prefix[] = "$1$";
-
-/* Magic string for SHA256 encryption.  */
-static const char sha256_salt_prefix[] = "$5$";
-
-/* Magic string for SHA512 encryption.  */
-static const char sha512_salt_prefix[] = "$6$";
-
-/* For use by the old, non-reentrant routines (crypt/encrypt/setkey)  */
-extern struct crypt_data _ufc_foobar;
-
-/*
- * UNIX crypt function
- */
-
-char *
-__crypt_r (const char *key, const char *salt,
-	   struct crypt_data * __restrict data)
-{
-  ufc_long res[4];
-  char ktab[9];
-  ufc_long xx = 25; /* to cope with GCC long long compiler bugs */
-
-#ifdef _LIBC
-  /* Try to find out whether we have to use MD5 encryption replacement.  */
-  if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
-    {
-      /* FIPS rules out MD5 password encryption.  */
-      if (fips_enabled_p ())
-	{
-	  __set_errno (EPERM);
-	  return NULL;
-	}
-      return __md5_crypt_r (key, salt, (char *) data,
-			    sizeof (struct crypt_data));
-    }
-
-  /* Try to find out whether we have to use SHA256 encryption replacement.  */
-  if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
-    return __sha256_crypt_r (key, salt, (char *) data,
-			     sizeof (struct crypt_data));
-
-  /* Try to find out whether we have to use SHA512 encryption replacement.  */
-  if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
-    return __sha512_crypt_r (key, salt, (char *) data,
-			     sizeof (struct crypt_data));
-#endif
-
-  /*
-   * Hack DES tables according to salt
-   */
-  if (!_ufc_setup_salt_r (salt, data))
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  /* FIPS rules out DES password encryption.  */
-  if (fips_enabled_p ())
-    {
-      __set_errno (EPERM);
-      return NULL;
-    }
-
-  /*
-   * Setup key schedule
-   */
-  _ufc_clearmem (ktab, (int) sizeof (ktab));
-  (void) strncpy (ktab, key, 8);
-  _ufc_mk_keytab_r (ktab, data);
-
-  /*
-   * Go for the 25 DES encryptions
-   */
-  _ufc_clearmem ((char*) res, (int) sizeof (res));
-  _ufc_doit_r (xx,  data, &res[0]);
-
-  /*
-   * Do final permutations
-   */
-  _ufc_dofinalperm_r (res, data);
-
-  /*
-   * And convert back to 6 bit ASCII
-   */
-  _ufc_output_conversion_r (res[0], res[1], salt, data);
-
-  /*
-   * Erase key-dependent intermediate data.  Data dependent only on
-   * the salt is not considered sensitive.
-   */
-  explicit_bzero (ktab, sizeof (ktab));
-  explicit_bzero (data->keysched, sizeof (data->keysched));
-  explicit_bzero (res, sizeof (res));
-
-  return data->crypt_3_buf;
-}
-weak_alias (__crypt_r, crypt_r)
-
-char *
-crypt (const char *key, const char *salt)
-{
-#ifdef _LIBC
-  /* Try to find out whether we have to use MD5 encryption replacement.  */
-  if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0
-      /* Let __crypt_r deal with the error code if FIPS is enabled.  */
-      && !fips_enabled_p ())
-    return __md5_crypt (key, salt);
-
-  /* Try to find out whether we have to use SHA256 encryption replacement.  */
-  if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
-    return __sha256_crypt (key, salt);
-
-  /* Try to find out whether we have to use SHA512 encryption replacement.  */
-  if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
-    return __sha512_crypt (key, salt);
-#endif
-
-  return __crypt_r (key, salt, &_ufc_foobar);
-}
-
-#if SHLIB_COMPAT (libcrypt, GLIBC_2_0, GLIBC_2_28)
-weak_alias (crypt, fcrypt)
-compat_symbol (libcrypt, fcrypt, fcrypt, GLIBC_2_0);
-#endif