git: 9dcb984251b3 - main - Remove publickey(5) stuff

From: Emmanuel Vadot <manu_at_FreeBSD.org>
Date: Wed, 22 Jan 2025 17:04:57 UTC
The branch main has been updated by manu:

URL: https://cgit.FreeBSD.org/src/commit/?id=9dcb984251b35ab1959bcaafcb3f129c8ae2f25b

commit 9dcb984251b35ab1959bcaafcb3f129c8ae2f25b
Author:     Emmanuel Vadot <manu@FreeBSD.org>
AuthorDate: 2025-01-22 17:00:09 +0000
Commit:     Emmanuel Vadot <manu@FreeBSD.org>
CommitDate: 2025-01-22 17:04:26 +0000

    Remove publickey(5) stuff
    
    This uses DES and it's likely that nobody uses that in 2025.
    If somebody uses this we help them by deprecating and removing this.
    
    Reviewed by:    bapt, emaste
    Differential Revision:  https://reviews.freebsd.org/D30683
---
 ObsoleteFiles.inc                     |  12 +
 lib/libc/rpc/Makefile.inc             |   2 +-
 usr.bin/Makefile                      |   4 -
 usr.bin/chkey/Makefile                |  13 -
 usr.bin/chkey/Makefile.depend         |  16 -
 usr.bin/chkey/Makefile.depend.options |   7 -
 usr.bin/chkey/chkey.1                 |  32 --
 usr.bin/chkey/chkey.c                 | 267 ------------
 usr.bin/keylogin/Makefile             |   5 -
 usr.bin/keylogin/Makefile.depend      |  18 -
 usr.bin/keylogin/keylogin.1           |  37 --
 usr.bin/keylogin/keylogin.c           |  81 ----
 usr.bin/keylogout/Makefile            |   3 -
 usr.bin/keylogout/Makefile.depend     |  17 -
 usr.bin/keylogout/keylogout.1         |  49 ---
 usr.bin/keylogout/keylogout.c         |  68 ---
 usr.bin/newkey/Makefile               |  11 -
 usr.bin/newkey/Makefile.depend        |  20 -
 usr.bin/newkey/extern.h               |  45 --
 usr.bin/newkey/generic.c              | 124 ------
 usr.bin/newkey/newkey.8               |  66 ---
 usr.bin/newkey/newkey.c               | 228 ----------
 usr.bin/newkey/update.c               | 332 ---------------
 usr.sbin/Makefile                     |   1 -
 usr.sbin/keyserv/Makefile             |  23 --
 usr.sbin/keyserv/Makefile.depend      |  20 -
 usr.sbin/keyserv/crypt_server.c       | 265 ------------
 usr.sbin/keyserv/keyserv.8            |  86 ----
 usr.sbin/keyserv/keyserv.c            | 753 ----------------------------------
 usr.sbin/keyserv/keyserv.h            |  16 -
 usr.sbin/keyserv/setkey.c             | 497 ----------------------
 31 files changed, 13 insertions(+), 3105 deletions(-)

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index c05a0d37c727..afb71c46a459 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -51,6 +51,18 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20250122: Remove publickey(5) stuff
+OLD_FILES+=usr/bin/chkey
+OLD_FILES+=usr/bin/keylogin
+OLD_FILES+=usr/bin/keylogout
+OLD_FILES+=usr/sbin/keyserv
+OLD_FILES+=usr/bin/newkey
+OLD_FILES+=usr/share/man/man1/chkey.1.gz
+OLD_FILES+=usr/share/man/man1/keylogin.1.gz
+OLD_FILES+=usr/share/man/man1/keylogin.1.gz
+OLD_FILES+=usr/share/man/man5/publickey.5.gz
+OLD_FILES+=usr/share/man/man8/keyserv.1.gz
+
 # 20241206: Remove Altera DE4 drivers
 OLD_FILES+=usr/share/man/man4/altera_atse.4.gz
 OLD_FILES+=usr/share/man/man4/altera_avgen.4.gz
diff --git a/lib/libc/rpc/Makefile.inc b/lib/libc/rpc/Makefile.inc
index 021b7390ca54..5ee4ffc256a2 100644
--- a/lib/libc/rpc/Makefile.inc
+++ b/lib/libc/rpc/Makefile.inc
@@ -47,7 +47,7 @@ MAN+=	bindresvport.3 des_crypt.3 getnetconfig.3 getnetpath.3 getrpcent.3 \
 	rpc_clnt_create.3 rpc_svc_calls.3 rpc_svc_create.3 rpc_svc_err.3 \
 	rpc_svc_reg.3 rpc_xdr.3 rpcbind.3 publickey.3 rpc_secure.3 \
 	rtime.3
-MAN+=	publickey.5 rpc.5 netconfig.5
+MAN+=	rpc.5 netconfig.5
 MLINKS+=	bindresvport.3 bindresvport_sa.3 \
 		des_crypt.3 ecb_crypt.3 \
 		des_crypt.3 cbc_crypt.3 \
diff --git a/usr.bin/Makefile b/usr.bin/Makefile
index 9baa90aab499..bca7896e5a17 100644
--- a/usr.bin/Makefile
+++ b/usr.bin/Makefile
@@ -61,8 +61,6 @@ SUBDIR=	alias \
 	ipcs \
 	join \
 	jot \
-	keylogin \
-	keylogout \
 	killall \
 	ktrace \
 	ktrdump \
@@ -236,8 +234,6 @@ SUBDIR.${MK_NIS}+=	ypcat
 SUBDIR.${MK_NIS}+=	ypmatch
 SUBDIR.${MK_NIS}+=	ypwhich
 SUBDIR.${MK_OPENSSH}+=	ssh-copy-id
-SUBDIR.${MK_OPENSSL}+=	chkey
-SUBDIR.${MK_OPENSSL}+=	newkey
 SUBDIR.${MK_QUOTAS}+=	quota
 SUBDIR.${MK_SENDMAIL}+=	vacation
 SUBDIR.${MK_TALK}+=	talk
diff --git a/usr.bin/chkey/Makefile b/usr.bin/chkey/Makefile
deleted file mode 100644
index 4b734787c0a3..000000000000
--- a/usr.bin/chkey/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-.include <src.opts.mk>
-
-.PATH: ${SRCTOP}/usr.bin/newkey
-
-PROG=	chkey
-SRCS=	chkey.c generic.c update.c
-CFLAGS+= -I${SRCTOP}/usr.bin/newkey
-.if ${MK_NIS} != "no"
-CFLAGS+= -DYP
-.endif
-LIBADD+=	rpcsvc mp
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/chkey/Makefile.depend b/usr.bin/chkey/Makefile.depend
deleted file mode 100644
index 341f44c61163..000000000000
--- a/usr.bin/chkey/Makefile.depend
+++ /dev/null
@@ -1,16 +0,0 @@
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
-	include \
-	include/xlocale \
-	lib/${CSU_DIR} \
-	lib/libc \
-	lib/libcompiler_rt \
-	secure/lib/libcrypto \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/usr.bin/chkey/Makefile.depend.options b/usr.bin/chkey/Makefile.depend.options
deleted file mode 100644
index da5bb6f2ea36..000000000000
--- a/usr.bin/chkey/Makefile.depend.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file is not autogenerated - take care!
-
-DIRDEPS_OPTIONS= NIS
-
-DIRDEPS.NIS.yes= lib/libmp
-
-.include <dirdeps-options.mk>
diff --git a/usr.bin/chkey/chkey.1 b/usr.bin/chkey/chkey.1
deleted file mode 100644
index 556d6c281d21..000000000000
--- a/usr.bin/chkey/chkey.1
+++ /dev/null
@@ -1,32 +0,0 @@
-.\" Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved.
-.\"
-.Dd July 5, 1989
-.Dt CHKEY 1
-.Os
-.Sh NAME
-.Nm chkey
-.Nd change your encryption key
-.Sh SYNOPSIS
-.Nm
-.Sh DEPRECATION NOTICE
-.Nm
-is deprecated and is not available as of
-.Fx 15.0.
-.Sh DESCRIPTION
-The
-.Nm
-utility prompts the user for their login password,
-and uses it to encrypt a new encryption key
-for the user to be stored in the
-.Xr publickey 5
-database.
-.Sh "SEE ALSO"
-.Xr keylogin 1 ,
-.Xr publickey 5 ,
-.Xr keyserv 8 ,
-.Xr newkey 8
-.Sh HISTORY
-The
-.Nm
-utility was removed from
-.Fx 15.0 .
diff --git a/usr.bin/chkey/chkey.c b/usr.bin/chkey/chkey.c
deleted file mode 100644
index 24cb3ec3b0b5..000000000000
--- a/usr.bin/chkey/chkey.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * 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 or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTABILITY 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
- */
-
-#include <sys/cdefs.h>
-/*
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-
-/*
- * Command to change one's public key in the public key database
- */
-#include <rpc/rpc.h>
-#include <rpc/key_prot.h>
-#ifdef YP
-#include <rpcsvc/yp_prot.h>
-#include <rpcsvc/ypclnt.h>
-#else
-#define	YPOP_STORE	4
-#endif
-#include <sys/fcntl.h>
-#include <err.h>
-#include <pwd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "extern.h"
-
-#ifdef YPPASSWD
-struct passwd *ypgetpwuid(uid_t);
-#endif
-
-#ifdef YP
-static char *domain;
-static char PKMAP[] = "publickey.byname";
-#else
-static char PKFILE[] = "/etc/publickey";
-#endif	/* YP */
-static char ROOTKEY[] = "/etc/.rootkey";
-
-static void usage(void) __dead2;
-extern int yp_update(char *, char *, int, char *, size_t, char *, size_t);
-
-int
-main(int argc, char **argv)
-{
-	char name[MAXNETNAMELEN+1];
-	char public[HEXKEYBYTES + 1];
-	char secret[HEXKEYBYTES + 1];
-	char crypt1[HEXKEYBYTES + KEYCHECKSUMSIZE + 1];
-	char crypt2[HEXKEYBYTES + KEYCHECKSUMSIZE + 1];
-	int status;	
-	char *pass;
-	struct passwd *pw;
-	uid_t uid;
-	int force = 0;
-	int ch;
-#ifdef YP
-	char *master;
-#endif
-#ifdef YPPASSWD
-	char *cryptpw;
-#endif
-
-	fprintf(stderr, "chkey is deprecated and removed from FreeBSD 15.\n");
-	while ((ch = getopt(argc, argv, "f")) != -1)
-		switch(ch) {
-		case 'f':
-			force = 1;
-			break;
-		default:
-			usage();
-		}
-	argc -= optind;
-	argv += optind;
-
-	if (argc != 0)
-		usage();
-
-#ifdef YP
-	(void)yp_get_default_domain(&domain);
-	if (yp_master(domain, PKMAP, &master) != 0)
-		errx(1, "can't find master of publickey database");
-#endif
-	uid = getuid() /*geteuid()*/;
-	if (uid == 0) {
-		if (host2netname(name, NULL, NULL) == 0)
-			errx(1, "cannot convert hostname to netname");
-	} else {
-		if (user2netname(name, uid, NULL) == 0)
-			errx(1, "cannot convert username to netname");
-	}
-	(void)printf("Generating new key for %s.\n", name);
-
-	if (!force) {
-		if (uid != 0) {
-#ifdef YPPASSWD
-			pw = ypgetpwuid(uid);
-#else
-			pw = getpwuid(uid);
-#endif
-			if (pw == NULL) {
-#ifdef YPPASSWD
-				errx(1,
-			"no NIS password entry found: can't change key");
-#else
-				errx(1,
-			"no password entry found: can't change key");
-#endif
-			}
-		} else {
-			pw = getpwuid(0);
-			if (pw == NULL)
-			  errx(1, "no password entry found: can't change key");
-		}
-	}
-	pass = getpass("Password:");
-#ifdef YPPASSWD
-	if (!force) {
-		cryptpw = crypt(pass, pw->pw_passwd);
-		if (cryptpw == NULL || strcmp(cryptpw, pw->pw_passwd) != 0)
-			errx(1, "invalid password");
-	}
-#else
-	force = 1;	/* Make this mandatory */
-#endif
-	genkeys(public, secret, pass);	
-
-	memcpy(crypt1, secret, HEXKEYBYTES);
-	memcpy(crypt1 + HEXKEYBYTES, secret, KEYCHECKSUMSIZE);
-	crypt1[HEXKEYBYTES + KEYCHECKSUMSIZE] = 0;
-	xencrypt(crypt1, pass);
-
-	if (force) {
-		memcpy(crypt2, crypt1, HEXKEYBYTES + KEYCHECKSUMSIZE + 1);	
-		xdecrypt(crypt2, getpass("Retype password:"));
-		if (memcmp(crypt2, crypt2 + HEXKEYBYTES, KEYCHECKSUMSIZE) != 0
-			|| memcmp(crypt2, secret, HEXKEYBYTES) != 0)
-			errx(1, "password incorrect");
-	}
-
-#ifdef YP
-	(void)printf("Sending key change request to %s...\n", master);
-#endif
-	status = setpublicmap(name, public, crypt1);
-	if (status != 0) {
-#ifdef YP
-		errx(1, "unable to update NIS database (%u): %s",
-				status, yperr_string(status));
-#else
-		errx(1, "unable to update publickey database");
-#endif
-	}
-
-	if (uid == 0) {
-		/*
-		 * Root users store their key in /etc/$ROOTKEY so
-		 * that they can auto reboot without having to be
-		 * around to type a password. Storing this in a file
-		 * is rather dubious: it should really be in the EEPROM
-		 * so it does not go over the net.
-		 */
-		int fd;
-
-		fd = open(ROOTKEY, O_WRONLY|O_TRUNC|O_CREAT, 0);
-		if (fd < 0) {
-			warn("%s", ROOTKEY);
-		} else {
-			char newline = '\n';
-
-			if (write(fd, secret, strlen(secret)) < 0 ||
-			    write(fd, &newline, sizeof(newline)) < 0)
-				warn("%s: write", ROOTKEY);
-		}
-		close(fd);
-	}
-
-	if (key_setsecret(secret) < 0)
-		errx(1, "unable to login with new secret key");
-	(void)printf("Done.\n");
-	exit(0);
-	/* NOTREACHED */
-}
-
-static void
-usage(void)
-{
-	(void)fprintf(stderr, "usage: chkey [-f]\n");
-	exit(1);
-	/* NOTREACHED */
-}
-
-
-/*
- * Set the entry in the public key file
- */
-int
-setpublicmap(char *name, char *public, char *secret)
-{
-	char pkent[1024];
-	
-	(void)sprintf(pkent,"%s:%s", public, secret);
-#ifdef YP
-	return (yp_update(domain, PKMAP, YPOP_STORE,
-		name, strlen(name), pkent, strlen(pkent)));
-#else
-	return (localupdate(name, PKFILE, YPOP_STORE,
-		strlen(name), name, strlen(pkent), pkent));
-#endif
-}
-
-#ifdef YPPASSWD
-struct passwd *
-ypgetpwuid(uid_t uid)
-{
-	char uidstr[10];
-	char *val;
-	int vallen;
-	static struct passwd pw;
-	char *p;
-
-	(void)sprintf(uidstr, "%d", uid);
-	if (yp_match(domain, "passwd.byuid", uidstr, strlen(uidstr), 
-			&val, &vallen) != 0) {
-		return (NULL);
-	}
-	p = strchr(val, ':');
-	if (p == NULL) {	
-		return (NULL);
-	}
-	pw.pw_passwd = p + 1;
-	p = strchr(pw.pw_passwd, ':');
-	if (p == NULL) {
-		return (NULL);
-	}
-	*p = 0;
-	return (&pw);
-}
-#endif	/* YPPASSWD */
diff --git a/usr.bin/keylogin/Makefile b/usr.bin/keylogin/Makefile
deleted file mode 100644
index 7a267e4c5a72..000000000000
--- a/usr.bin/keylogin/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-PROG=	keylogin
-
-LIBADD=	rpcsvc
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/keylogin/Makefile.depend b/usr.bin/keylogin/Makefile.depend
deleted file mode 100644
index 352a225b19c6..000000000000
--- a/usr.bin/keylogin/Makefile.depend
+++ /dev/null
@@ -1,18 +0,0 @@
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
-	include \
-	include/rpc \
-	include/rpcsvc \
-	include/xlocale \
-	lib/${CSU_DIR} \
-	lib/libc \
-	lib/libcompiler_rt \
-	lib/librpcsvc \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/usr.bin/keylogin/keylogin.1 b/usr.bin/keylogin/keylogin.1
deleted file mode 100644
index 550d670afbe7..000000000000
--- a/usr.bin/keylogin/keylogin.1
+++ /dev/null
@@ -1,37 +0,0 @@
-.\" Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved.
-.\"
-.Dd September 9, 1987
-.Dt KEYLOGIN 1
-.Os
-.Sh NAME
-.Nm keylogin
-.Nd decrypt and store secret key
-.Sh SYNOPSIS
-.Nm
-.Sh DEPRECATION NOTICE
-.Nm
-is deprecated and is not available as of
-.Fx 15.0.
-.Sh DESCRIPTION
-The
-.Nm
-utility prompts the user for their login password, and uses it to decrypt
-the user's secret key stored in the
-.Xr publickey 5
-database.
-Once decrypted, the user's key is stored by the local
-key server process
-.Xr keyserv 8
-to be used by any secure network services, such as NFS.
-.Sh SEE ALSO
-.Xr chkey 1 ,
-.Xr keylogout 1 ,
-.Xr login 1 ,
-.Xr publickey 5 ,
-.Xr keyserv 8 ,
-.Xr newkey 8
-.Sh HISTORY
-The
-.Nm
-utility was removed from
-.Fx 15.0 .
diff --git a/usr.bin/keylogin/keylogin.c b/usr.bin/keylogin/keylogin.c
deleted file mode 100644
index c64afa4846bc..000000000000
--- a/usr.bin/keylogin/keylogin.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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 or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * 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
- */
-#include <sys/cdefs.h>
-/*
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-
-/*
- * Set secret key on local machine
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <pwd.h>
-#include <unistd.h>
-#include <rpc/rpc.h>
-#include <rpc/key_prot.h>
-
-extern int key_setnet(struct key_netstarg *);
-
-int
-main(void)
-{
-	char fullname[MAXNETNAMELEN + 1];
-	struct key_netstarg netst;
-
-	fprintf(stderr, "keylogin is deprecated and removed from FreeBSD 15.\n");
-	if (!getnetname(fullname)) {
-		fprintf(stderr, "netname lookup failed -- make sure the ");
-		fprintf(stderr, "system domain name is set.\n");
-		exit(1);
-	}
-
-	if (! getsecretkey(fullname, (char *)&(netst.st_priv_key),
-				getpass("Password:"))) {
-		fprintf(stderr, "Can't find %s's secret key\n", fullname);
-		exit(1);
-	}
-	if (netst.st_priv_key[0] == 0) {
-		fprintf(stderr, "Password incorrect for %s\n", fullname);
-		exit(1);
-	}
-
-	netst.st_pub_key[0] = 0;
-	netst.st_netname = strdup(fullname);
-
-	if (key_setnet(&netst) < 0) {
-		fprintf(stderr, "Could not set %s's secret key\n", fullname);
-		fprintf(stderr, "Maybe the keyserver is down?\n");
-		exit(1);
-	}
-	exit(0);
-	/* NOTREACHED */
-}
diff --git a/usr.bin/keylogout/Makefile b/usr.bin/keylogout/Makefile
deleted file mode 100644
index 244d6d2d0be7..000000000000
--- a/usr.bin/keylogout/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-PROG=	keylogout
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/keylogout/Makefile.depend b/usr.bin/keylogout/Makefile.depend
deleted file mode 100644
index a2d89550fa2b..000000000000
--- a/usr.bin/keylogout/Makefile.depend
+++ /dev/null
@@ -1,17 +0,0 @@
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
-	include \
-	include/rpc \
-	include/rpcsvc \
-	include/xlocale \
-	lib/${CSU_DIR} \
-	lib/libc \
-	lib/libcompiler_rt \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/usr.bin/keylogout/keylogout.1 b/usr.bin/keylogout/keylogout.1
deleted file mode 100644
index 348d7e380ea0..000000000000
--- a/usr.bin/keylogout/keylogout.1
+++ /dev/null
@@ -1,49 +0,0 @@
-.Dd April 15, 1989
-.Dt KEYLOGOUT 1
-.Os
-.Sh NAME
-.Nm keylogout
-.Nd delete stored secret key
-.Sh SYNOPSIS
-.Nm
-.Op Fl f
-.Sh DEPRECATION NOTICE
-.Nm
-is deprecated and is not available as of
-.Fx 15.0.
-.Sh DESCRIPTION
-The
-.Nm
-utility deletes the key stored by the key server process
-.Xr keyserv 8
-to be used by any secure network services, such as NFS.
-Further access to the key is revoked,
-however current session keys may remain valid till they expire,
-or are refreshed.
-This option will cause any background jobs that need secure RPC
-services to fail, and any scheduled
-.Nm at
-jobs that need the key to fail.
-Also since only one copy is kept on a machine of the key,
-it is a bad idea to place this in your
-.Pa .logout
-file since it will affect other sessions on the same machine.
-.Pp
-The following option is available:
-.Bl -tag -width indent
-.It Fl f
-Forget the rootkey.
-This will break secure NFS if it is done on a server.
-.El
-.Sh SEE ALSO
-.Xr chkey 1 ,
-.Xr keylogin 1 ,
-.Xr login 1 ,
-.Xr publickey 5 ,
-.Xr keyserv 8 ,
-.Xr newkey 8
-.Sh HISTORY
-The
-.Nm
-utility was removed from
-.Fx 15.0 .
diff --git a/usr.bin/keylogout/keylogout.c b/usr.bin/keylogout/keylogout.c
deleted file mode 100644
index faad41462340..000000000000
--- a/usr.bin/keylogout/keylogout.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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 or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * 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
- */
-/*
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-
-#include <sys/cdefs.h>
-/*
- * unset the secret key on local machine
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <rpc/key_prot.h>
-
-int
-main(int argc, char **argv)
-{
-	static char secret[HEXKEYBYTES + 1];
-
-	fprintf(stderr, "keylogin is deprecated and removed from FreeBSD 15.\n");
-	if (geteuid() == 0) {
-		if ((argc != 2 ) || (strcmp(argv[1], "-f") != 0)) {
-			fprintf(stderr,
-"keylogout by root would break all servers that use secure rpc!\n");
-			fprintf(stderr,
-"root may use keylogout -f to do this (at your own risk)!\n");
-			exit(1);
-		}
-	}
-
-	if (key_setsecret(secret) < 0) {
-		fprintf(stderr, "Could not unset your secret key.\n");
-		fprintf(stderr, "Maybe the keyserver is down?\n");
-		exit(1);
-	}
-	exit(0);
-	/* NOTREACHED */
-}
diff --git a/usr.bin/newkey/Makefile b/usr.bin/newkey/Makefile
deleted file mode 100644
index a081774288ac..000000000000
--- a/usr.bin/newkey/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-.include <src.opts.mk>
-
-PROG=	newkey
-SRCS=	newkey.c generic.c update.c
-.if ${MK_NIS} != "no"
-CFLAGS+= -DYP
-.endif
-MAN=	newkey.8
-LIBADD=	rpcsvc mp
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/newkey/Makefile.depend b/usr.bin/newkey/Makefile.depend
deleted file mode 100644
index 67fb1e963614..000000000000
--- a/usr.bin/newkey/Makefile.depend
+++ /dev/null
@@ -1,20 +0,0 @@
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
-	include \
-	include/rpc \
-	include/rpcsvc \
-	include/xlocale \
-	lib/${CSU_DIR} \
-	lib/libc \
-	lib/libcompiler_rt \
-	lib/libmp \
-	lib/librpcsvc \
-	secure/lib/libcrypto \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/usr.bin/newkey/extern.h b/usr.bin/newkey/extern.h
deleted file mode 100644
index 2e8573b4c78c..000000000000
--- a/usr.bin/newkey/extern.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * 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
- */
-
-#ifdef YP
-#define	MAXMAPNAMELEN 256
-#else
-#define	YPOP_CHANGE 1			/* change, do not add */
-#define	YPOP_INSERT 2			/* add, do not change */
-#define	YPOP_DELETE 3			/* delete this entry */
-#define	YPOP_STORE  4			/* add, or change */
-#endif
-
-void genkeys(char *, char *, char *);
-int setpublicmap(char *, char *, char *);
-int mapupdate(char *, char *, u_int, u_int, char *, u_int, char *);
-void xencrypt(char *, char *);
-void xdecrypt(char *, char *);
-int localupdate(char *, char *, u_int, u_int, char *, u_int, char *);
diff --git a/usr.bin/newkey/generic.c b/usr.bin/newkey/generic.c
deleted file mode 100644
index faf2247376b0..000000000000
--- a/usr.bin/newkey/generic.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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 or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * 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
- */
-
-/*
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-
-#include <sys/cdefs.h>
-#include <sys/file.h>
-
-#include <rpc/rpc.h>
-#include <rpc/key_prot.h>
-
-#include <mp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "extern.h"
-
-static void adjust(char[HEXKEYBYTES + 1], char *);
-static void getseed(char *, int, unsigned char *);
-
-/*
- * Generate a seed
- */
-static void
-getseed(char *seed, int seedsize, unsigned char *pass)
-{
-	int i;
-
-	for (i = 0; i < seedsize; i++) {
-		seed[i] = (arc4random() & 0xff) ^ pass[i % 8];
-	}
-}
-
-/*
- * Generate a random public/secret key pair
- */
-void
-genkeys(char *public, char *secret, char *pass)
-{
-	unsigned int i;
-
-#   define BASEBITS (8*sizeof (short) - 1)
-#	define BASE		(1 << BASEBITS)
-
-	MINT *pk = mp_itom(0);
-	MINT *sk = mp_itom(0);
-	MINT *tmp;
-	MINT *base = mp_itom((short)BASE);
-	MINT *root = mp_itom(PROOT);
-	MINT *modulus = mp_xtom(HEXMODULUS);
-	short r;
-	unsigned short seed[KEYSIZE/BASEBITS + 1];
-	char *xkey;
-
-	getseed((char *)seed, sizeof (seed), (u_char *)pass);
-	for (i = 0; i < KEYSIZE/BASEBITS + 1; i++) {
-		r = seed[i] % BASE;
-		tmp = mp_itom(r);
*** 2395 LINES SKIPPED ***