diff -Naur outils-0.14.orig/src/usr.bin/signify/signify.c outils-0.14/src/usr.bin/signify/signify.c
--- outils-0.14.orig/src/usr.bin/signify/signify.c	2025-06-06 18:01:28.245710973 +0200
+++ outils-0.14/src/usr.bin/signify/signify.c	2025-06-06 18:05:24.018125846 +0200
@@ -405,7 +405,7 @@
 		const char *keyname = check_keyname_compliance(NULL, 
 		    seckeyfile);
 		nr = snprintf(sigcomment, sizeof(sigcomment),
-		    VERIFYWITH "%.*s.pub", (int)strlen(keyname) - 4, keyname);
+		    VERIFYWITH "%s/%.*s.pub", SIGNIFYROOT, (int)strlen(keyname) - 4, keyname);
 	}
 	if (nr < 0 || nr >= sizeof(sigcomment))
 		errx(1, "comment too long");
@@ -507,13 +507,19 @@
 readpubkey(const char *pubkeyfile, struct pubkey *pubkey,
     const char *sigcomment, const char *keytype)
 {
-	const char *safepath = "/etc/signify";
+	const char *safepath = SIGNIFYROOT "/";
 	char keypath[PATH_MAX];
 
 	if (!pubkeyfile) {
+		size_t spl;
 		pubkeyfile = strstr(sigcomment, VERIFYWITH);
-		if (pubkeyfile && strchr(pubkeyfile, '/') == NULL) {
-			pubkeyfile += strlen(VERIFYWITH);
+		if (!pubkeyfile)
+			usage("must specify pubkey");
+		pubkeyfile += strlen(VERIFYWITH);
+		spl = strlen(safepath);
+		if (strncmp(pubkeyfile, safepath, spl) == 0)
+			pubkeyfile += spl;
+		if (*pubkeyfile != '\0' && strchr(pubkeyfile, '/') == NULL) {
 			if (keytype)
 				check_keytype(pubkeyfile, keytype);
 			if (snprintf(keypath, sizeof(keypath), "%s/%s",
