aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClockwork6400 <Clockwork6400@protonmail.com>2023-02-14 16:58:34 +0000
committerRobert Clausecker <fuz@FreeBSD.org>2023-02-19 11:01:39 +0000
commitcae60e628488326d7c9837ca3d688e8dce738e2d (patch)
tree6956b1f40ff8aa0cdc58a1b273b0a515ce1c3b17
parent00c533b2846b7c6e6e1632c68762f9baece99f15 (diff)
downloadports-cae60e628488326d7c9837ca3d688e8dce738e2d.tar.gz
ports-cae60e628488326d7c9837ca3d688e8dce738e2d.zip
security/pam_fprint: revive port
pam_fprint is a simple PAM module which uses libfprint's fingerprint processing and verification functionality for authentication. In other words, instead of seeing a password prompt, you're asked to scan your fingerprint. Submitter becomes maintainer. Is already maintainer of other ports. PR: 269554 Approved by: flo (mentor) Differential Revision: https://reviews.freebsd.org/D38628
-rw-r--r--MOVED1
-rw-r--r--security/Makefile1
-rw-r--r--security/pam_fprint/Makefile26
-rw-r--r--security/pam_fprint/distinfo3
-rw-r--r--security/pam_fprint/files/patch-src_Makefile.am11
-rw-r--r--security/pam_fprint/files/patch-src_pam__fprint.c62
-rw-r--r--security/pam_fprint/files/patch-src_pam__fprint__enroll.c20
-rw-r--r--security/pam_fprint/files/pkg-message.in20
-rw-r--r--security/pam_fprint/pkg-descr3
9 files changed, 146 insertions, 1 deletions
diff --git a/MOVED b/MOVED
index 6823b3c2e314..68479d0c55f9 100644
--- a/MOVED
+++ b/MOVED
@@ -14714,7 +14714,6 @@ security/libbf||2020-05-05|Has expired: Broken for more than 6 months
security/log2timeline||2020-05-05|Has expired: Broken for more than 6 months
security/opencdk||2020-05-05|Has expired: Broken for more than 6 months
security/pad||2020-05-05|Has expired: Broken for more than 6 months
-security/pam_fprint||2020-05-05|Has expired: Broken for more than 6 months
security/pam_per_user||2020-05-05|Has expired: Broken for more than 6 months
security/razorback-dispatcher||2020-05-05|Has expired: Broken for more than 6 months
security/ruby-camellia||2020-05-05|Has expired: Broken for more than 6 months
diff --git a/security/Makefile b/security/Makefile
index cda53cb58d72..5bb9cf5b9256 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -714,6 +714,7 @@
SUBDIR += pam-modules
SUBDIR += pam-mysql
SUBDIR += pam-pgsql
+ SUBDIR += pam_fprint
SUBDIR += pam_google_authenticator
SUBDIR += pam_helper
SUBDIR += pam_jail
diff --git a/security/pam_fprint/Makefile b/security/pam_fprint/Makefile
new file mode 100644
index 000000000000..bc2a1883527a
--- /dev/null
+++ b/security/pam_fprint/Makefile
@@ -0,0 +1,26 @@
+PORTNAME= pam_fprint
+DISTVERSION= 20080330
+PORTREVISION= 1
+CATEGORIES= security
+
+MAINTAINER= Clockwork6400@protonmail.com
+COMMENT= PAM module offering finger print authentication using libfprint
+WWW= https://github.com/Clockwork6400/pam-fprint
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+LIB_DEPENDS= libfprint.so:security/libfprint
+
+GNU_CONFIGURE= yes
+USES= autoreconf pkgconfig
+
+USE_GITHUB= yes
+GH_ACCOUNT= Clockwork6400
+
+PLIST_FILES+= bin/pam_fprint_enroll \
+ lib/pam_fprint.so
+
+SUB_FILES= pkg-message
+
+.include <bsd.port.mk>
diff --git a/security/pam_fprint/distinfo b/security/pam_fprint/distinfo
new file mode 100644
index 000000000000..be803ebe9af8
--- /dev/null
+++ b/security/pam_fprint/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1676392070
+SHA256 (Clockwork6400-pam_fprint-20080330_GH0.tar.gz) = 35d9ed7a3e0d6d32db88da2b7ca5c70d656dff2548a3e417c1c49b8952ca650f
+SIZE (Clockwork6400-pam_fprint-20080330_GH0.tar.gz) = 15853
diff --git a/security/pam_fprint/files/patch-src_Makefile.am b/security/pam_fprint/files/patch-src_Makefile.am
new file mode 100644
index 000000000000..3b4fd1202f39
--- /dev/null
+++ b/security/pam_fprint/files/patch-src_Makefile.am
@@ -0,0 +1,11 @@
+--- src/Makefile.am.orig 2023-02-14 15:43:27 UTC
++++ src/Makefile.am
+@@ -1,7 +1,6 @@
+-noinst_PROGRAMS = pamtest
+ bin_PROGRAMS = pam_fprint_enroll
+ pammod_PROGRAMS = pam_fprint.so
+-pammoddir=/lib/security
++pammoddir=$(PREFIX)/lib
+
+ pam_fprint_so_SOURCES = pam_fprint.c
+ pam_fprint_so_CFLAGS = -fPIC $(FPRINT_CFLAGS)
diff --git a/security/pam_fprint/files/patch-src_pam__fprint.c b/security/pam_fprint/files/patch-src_pam__fprint.c
new file mode 100644
index 000000000000..5a17b9c68ba8
--- /dev/null
+++ b/security/pam_fprint/files/patch-src_pam__fprint.c
@@ -0,0 +1,62 @@
+--- src/pam_fprint.c.orig 2023-02-14 15:43:27 UTC
++++ src/pam_fprint.c
+@@ -18,6 +18,7 @@
+ */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <pwd.h>
+@@ -27,6 +28,7 @@
+
+ #define PAM_SM_AUTH
+ #include <security/pam_modules.h>
++#include <security/pam_appl.h>
+
+ static int send_info_msg(pam_handle_t *pamh, char *msg)
+ {
+@@ -41,10 +43,10 @@ static int send_info_msg(pam_handle_t *pamh, char *msg
+
+ r = pam_get_item(pamh, PAM_CONV, (const void **) &pc);
+ if (r != PAM_SUCCESS)
+- return;
++ return r;
+
+ if (!pc || !pc->conv)
+- return;
++ return PAM_BUF_ERR;
+
+ return pc->conv(1, &msgp, &resp, pc->appdata_ptr);
+ }
+@@ -62,10 +64,10 @@ static int send_err_msg(pam_handle_t *pamh, char *msg)
+
+ r = pam_get_item(pamh, PAM_CONV, (const void **) &pc);
+ if (r != PAM_SUCCESS)
+- return;
++ return r;
+
+ if (!pc || !pc->conv)
+- return;
++ return PAM_BUF_ERR;
+
+ return pc->conv(1, &msgp, &resp, pc->appdata_ptr);
+ }
+@@ -102,7 +104,7 @@ static struct fp_print_data **find_dev_and_prints(stru
+ struct fp_print_data **gallery;
+
+ /* TODO: add device selection */
+- while (print = prints[i++]) {
++ while ((print = prints[i++])) {
+ if (!ddev) {
+ ddev = fp_dscv_dev_for_dscv_print(ddevs, print);
+ driver_id = fp_dscv_print_get_driver_id(print);
+@@ -133,7 +135,7 @@ static struct fp_print_data **find_dev_and_prints(stru
+ }
+
+ i = 0, j = 0;
+- while (print = prints[i++]) {
++ while ((print = prints[i++])) {
+ driver_id_cur = fp_dscv_print_get_driver_id(print);
+ if (driver_id_cur == driver_id) {
+ err = fp_print_data_from_dscv_print(print, & (gallery[j]));
diff --git a/security/pam_fprint/files/patch-src_pam__fprint__enroll.c b/security/pam_fprint/files/patch-src_pam__fprint__enroll.c
new file mode 100644
index 000000000000..e468aea9214d
--- /dev/null
+++ b/security/pam_fprint/files/patch-src_pam__fprint__enroll.c
@@ -0,0 +1,20 @@
+--- src/pam_fprint_enroll.c.orig 2023-02-14 15:43:27 UTC
++++ src/pam_fprint_enroll.c
+@@ -26,7 +26,7 @@
+ #include <unistd.h>
+ #include <getopt.h>
+
+-#include <libfprint/fprint.h>
++#include <fprint.h>
+
+ static const char *finger_names[] = {
+ [LEFT_THUMB] = "Left Thumb",
+@@ -47,7 +47,7 @@ static struct fp_dscv_dev *discover_device(struct fp_d
+ struct fp_dscv_dev *ddev = NULL;
+ int i;
+
+- for (i = 0; ddev = discovered_devs[i]; i++) {
++ for (i = 0; (ddev = discovered_devs[i]); i++) {
+ struct fp_driver *drv = fp_dscv_dev_get_driver(ddev);
+ printf("Found device claimed by %s driver\n",
+ fp_driver_get_full_name(drv));
diff --git a/security/pam_fprint/files/pkg-message.in b/security/pam_fprint/files/pkg-message.in
new file mode 100644
index 000000000000..ea1d127270a2
--- /dev/null
+++ b/security/pam_fprint/files/pkg-message.in
@@ -0,0 +1,20 @@
+[
+{ type: install
+ message: <<EOM
+The security/fprint_demo port contains the graphical `fprint_demo'
+application that allows you to manage your finger prints in a comfortable
+way.
+
+After enrolling fingerprints for your user(s), you can enable finger
+print authentication by adding the following line to the corresponding
+PAM configuration file(s) (see the PAM documentation and the pam_fprint
+web site for more information).
+
+auth sufficient %%PREFIX%%/lib/pam_fprint.so
+
+/etc/pam.d/system is used for system-wide defaults,
+/etc/pam.d/{gdm, kde} are used by the GDM/KDM login managers.
+EOM
+}
+]
+
diff --git a/security/pam_fprint/pkg-descr b/security/pam_fprint/pkg-descr
new file mode 100644
index 000000000000..442ca161c435
--- /dev/null
+++ b/security/pam_fprint/pkg-descr
@@ -0,0 +1,3 @@
+pam_fprint is a simple PAM module which uses libfprint's fingerprint
+processing and verification functionality for authentication. In other words,
+instead of seeing a password prompt, you're asked to scan your fingerprint.