CONFIGFLAGS="--with-selinux"
;;
sk)
- CONFIGFLAGS="--with-security-key-builtin"
+ CONFIGFLAGS="--with-security-key-builtin --with-security-key-standalone"
;;
without-openssl)
LIBCRYPTOFLAGS="--without-openssl"
**/*.o
**/*.lo
**/*.so
+**/*.dylib
+**/*.dll
**/*.out
**/*.a
**/*.un~
STRIP_OPT=@STRIP_OPT@
TEST_SHELL=@TEST_SHELL@
BUILDDIR=@abs_top_builddir@
+SK_STANDALONE=@SK_STANDALONE@
PATHS= -DSSHDIR=\"$(sysconfdir)\" \
-D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \
.SUFFIXES: .lo
-TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) sshd-session$(EXEEXT) sshd-auth$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-sk-helper$(EXEEXT)
+TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) sshd-session$(EXEEXT) sshd-auth$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-sk-helper$(EXEEXT) $(SK_STANDALONE)
XMSS_OBJS=\
ssh-xmss.o \
logintest: logintest.o $(LIBCOMPAT) libssh.a loginrec.o
$(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS)
+# compile libssh objects with -fPIC for use in the sk_libfido2 shared library
+LIBSSH_PIC_OBJS=$(LIBSSH_OBJS:.o=.lo)
+libssh-pic.a: $(LIBSSH_PIC_OBJS)
+ $(AR) rv $@ $(LIBSSH_PIC_OBJS)
+ $(RANLIB) $@
+
+$(SK_STANDALONE): sk-usbhid.c $(LIBCOMPAT) libssh-pic.a
+ $(CC) -o $@ -shared $(CFLAGS_NOPIE) $(CPPFLAGS) -DSK_STANDALONE $(PICFLAG) sk-usbhid.c \
+ libssh-pic.a $(LDFLAGS_NOPIE) -lopenbsd-compat $(LIBS) $(LIBFIDO2) $(CHANNELLIBS)
+
$(MANPAGES): $(MANPAGES_IN)
if test "$(MANTYPE)" = "cat"; then \
manpage=$(srcdir)/`echo $@ | sed 's/\.[1-9]\.out$$/\.0/'`; \
# the --with-solaris-privs option and --with-sandbox=solaris).
SOLARIS_PRIVS="no"
+# Default shared library extension
+SHLIBEXT=".so"
+
# Check for some target-specific stuff
case "$host" in
*-*-aix*)
# Cygwin defines optargs, optargs as declspec(dllimport) for historical
# reasons which cause compile warnings, so we disable those warnings.
OSSH_CHECK_CFLAG_COMPILE([-Wno-attributes])
+ SHLIBEXT=".dll"
;;
*-*-dgux*)
AC_DEFINE([IP_TOS_IS_BROKEN], [1],
# cf. Apple bug 3710161 (not public, but searchable)
AC_DEFINE([BROKEN_POLL], [1],
[System poll(2) implementation is broken])
+ SHLIBEXT=".dylib"
;;
*-*-dragonfly*)
SSHDLIBS="$SSHDLIBS"
[ enable_sk_internal=$withval ]
)
+enable_sk_standalone=
+AC_ARG_WITH([security-key-standalone],
+ [ --with-security-key-standalone build standalone sk-libfido2 SecurityKeyProvider],
+ [ enable_sk_standalone=$withval ]
+)
+
enable_dsa=
AC_ARG_ENABLE([dsa-keys],
[ --enable-dsa-keys enable DSA key support [no]],
fi
fi
+# Check for standalone SecurityKeyProvider
+AC_MSG_CHECKING([whether to build standlone sk-libfido2])
+if test "x$enable_sk_standalone" = "xyes" ; then
+ AC_MSG_RESULT([yes])
+ AC_SUBST([SK_STANDALONE], [sk-libfido2$SHLIBEXT])
+else
+ AC_MSG_RESULT([no])
+ AC_SUBST([SK_STANDALONE], [""])
+fi
+
AC_CHECK_FUNCS([ \
arc4random \
arc4random_buf \
#define FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID 0
#endif
+# include "misc.h"
+
#ifndef SK_STANDALONE
# include "log.h"
# include "xmalloc.h"
-# include "misc.h"
/*
* If building as part of OpenSSH, then rename exported functions.
* This must be done before including sk-api.h.