diff options
author | Hiroki Sato <hrs@FreeBSD.org> | 2016-05-18 13:53:45 +0000 |
---|---|---|
committer | Hiroki Sato <hrs@FreeBSD.org> | 2016-05-18 13:53:45 +0000 |
commit | 5c2173b0dfcb57bb4a07acc58d3fd10066cad4fa (patch) | |
tree | da9b2df572c6ff11d9931e782ac0888832e1445c /security/trousers | |
parent | f677c07712088795e5405c71a3e62dd3140efba6 (diff) |
security/trousers:
- Update to 0.3.13.
- Remove CONFLICTS with emulators/tpm-emulator.
Two separate binaries, sbin/tcsd (for actual TPM device) and
sbin/tcsd_emu (for TPM emulator) are now installed. rc.d/tcsd chooses
one of them depending on $tcsd_mode. When tcsd_mode="native" (default)
it runs sbin/tcsd, and when tcsd_mode="emulator" it runs sbin/tcsd_emu.
Note that sbin/tcsd_emu depends on tpmd in emulators/tpm-emulator.
- Simplify @sample.
emulators/tpm-emulator:
- Remove CONFLICTS with security/trousers.
- Simplify rc.d/tpmd.
Notes
Notes:
svn path=/head/; revision=415449
Diffstat (limited to 'security/trousers')
36 files changed, 347 insertions, 251 deletions
diff --git a/security/trousers/Makefile b/security/trousers/Makefile index 13637364a582..2f149f4d1c1e 100644 --- a/security/trousers/Makefile +++ b/security/trousers/Makefile @@ -2,19 +2,21 @@ # $FreeBSD$ PORTNAME= trousers -PORTVERSION= 0.3.10 -PORTREVISION= 7 +PORTVERSION= 0.3.13 CATEGORIES= security MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION} MAINTAINER= hrs@FreeBSD.org -COMMENT= The open-source TCG Software Stack +COMMENT= Open-source TCG Software Stack LICENSE= CPL LICENSE_NAME= Common Public License LICENSE_FILE= ${WRKSRC}/LICENSE LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept +BUILD_DEPENDS= tpm-emulator>=0.7.4_1:emulators/tpm-emulator +RUN_DEPENDS:= ${BUILD_DEPENDS} + USES= alias autoreconf gmake iconv libtool pkgconfig USE_OPENSSL= YES USE_LDCONFIG= YES @@ -30,34 +32,19 @@ CONFIGURE_ARGS= --with-gui=none --enable-static \ MAKE_ENV= ICONV_LIB=${ICONV_LIB} \ ICONV_PREFIX=${ICONV_PREFIX} SUB_FILES= pkg-message -SUB_LIST= USERS=${USERS} GROUPS=${GROUPS} +SUB_LIST= USERS="${USERS}" GROUPS="${GROUPS}" +PLIST_SUB= USERS="${USERS}" GROUPS="${GROUPS}" USERS= _tss GROUPS= _tss -OPTIONS_DEFINE= EMULATOR DEBUG -EMULATOR_DESC= Build for use with the tpm-emulator +OPTIONS_DEFINE= DEBUG DEBUG_CONFIGURE_ENABLE= debug .include <bsd.port.options.mk> -.if ${PORT_OPTIONS:MEMULATOR} -PKGNAMESUFFIX+= -no_tddl -LIB_DEPENDS+= libtddl.so:emulators/tpm-emulator - -EXTRA_PATCHES= ${FILESDIR}/extra-patch-src-tcs-Makefile.am \ - ${FILESDIR}/extra-patch-src-tcsd-Makefile.am \ - ${FILESDIR}/extra-patch-src-tddl-Makefile.am -# The emulator has already a libttddl.so, so comment out trousers' libtddl in the pkg-plist -PLIST_SUB+= TDDL="@comment " -.else -PKGNAMESUFFIX+= -tddl -CONFLICTS+= tpm-emulator-[0-9]* -PLIST_SUB+= TDDL="" -.endif - post-install: ${INSTALL_DATA} \ - ${WRKSRC}/dist/tcsd.conf ${STAGEDIR}${PREFIX}/etc/tcsd.conf.dist + ${WRKSRC}/dist/tcsd.conf ${STAGEDIR}${PREFIX}/etc/tcsd.conf.sample ${MKDIR} ${STAGEDIR}${PREFIX}/var/lib/tpm .include <bsd.port.mk> diff --git a/security/trousers/distinfo b/security/trousers/distinfo index c37c1d73a449..fea53852d8f8 100644 --- a/security/trousers/distinfo +++ b/security/trousers/distinfo @@ -1,2 +1,3 @@ -SHA256 (trousers-0.3.10.tar.gz) = eb9569de5c66d9698f6c3303de03777b95ec72827f68b7744454bfa9227bc530 -SIZE (trousers-0.3.10.tar.gz) = 1658652 +TIMESTAMP = 1463562404 +SHA256 (trousers-0.3.13.tar.gz) = bb908e4a3c88a17b247a4fc8e0fff3419d8a13170fe7bdfbe0e2c5c082a276d3 +SIZE (trousers-0.3.13.tar.gz) = 1371901 diff --git a/security/trousers/files/extra-patch-src-tcs-Makefile.am b/security/trousers/files/extra-patch-src-tcs-Makefile.am deleted file mode 100644 index 33a4ede949ec..000000000000 --- a/security/trousers/files/extra-patch-src-tcs-Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ ---- src/tcs/Makefile.am.orig 2013-07-27 04:22:06.000000000 +0900 -+++ src/tcs/Makefile.am 2013-07-27 04:22:21.000000000 +0900 -@@ -1,7 +1,7 @@ - noinst_LIBRARIES=libtcs.a - - CFLAGS+=-I${top_srcdir}/src/include --libtcs_a_LIBADD=${top_builddir}/src/tddl/libtddl.a -+libtcs_a_LIBADD=${LOCALBASE}/lib/libtddl.a - libtcs_a_CFLAGS=-DAPPID=\"TCSD\ TCS\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -fPIE -DPIE - - libtcs_a_SOURCES=log.c \ diff --git a/security/trousers/files/extra-patch-src-tcsd-Makefile.am b/security/trousers/files/extra-patch-src-tcsd-Makefile.am deleted file mode 100644 index 5d2e710cd79a..000000000000 --- a/security/trousers/files/extra-patch-src-tcsd-Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ ---- src/tcsd/Makefile.am.orig 2013-07-27 04:22:53.000000000 +0900 -+++ src/tcsd/Makefile.am 2013-07-27 04:24:06.000000000 +0900 -@@ -1,7 +1,7 @@ - sbin_PROGRAMS=tcsd - - tcsd_CFLAGS=-DAPPID=\"TCSD\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -I${top_srcdir}/src/include -fPIE -DPIE --tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a ${top_builddir}/src/tddl/libtddl.a -lpthread @CRYPTOLIB@ -+tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a -ltddl -L${LOCALBASE}/lib -lpthread @CRYPTOLIB@ - tcsd_LDFLAGS=-pie -Wl,-z,relro -Wl,-z,now - - tcsd_SOURCES=svrside.c tcsd_conf.c tcsd_threads.c platform.c diff --git a/security/trousers/files/extra-patch-src-tddl-Makefile.am b/security/trousers/files/extra-patch-src-tddl-Makefile.am deleted file mode 100644 index 247420c4bf22..000000000000 --- a/security/trousers/files/extra-patch-src-tddl-Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ ---- src/tddl/Makefile.am.orig 2013-07-27 04:24:29.000000000 +0900 -+++ src/tddl/Makefile.am 2013-07-27 04:24:42.000000000 +0900 -@@ -1,4 +1,4 @@ --lib_LIBRARIES=libtddl.a -+lib_LIBRARIES= - - libtddl_a_SOURCES=tddl.c - libtddl_a_CFLAGS=-DAPPID=\"TCSD\ TDDL\" -I${top_srcdir}/src/include -fPIE -DPIE diff --git a/security/trousers/files/patch-configure.in b/security/trousers/files/patch-configure.in index ecdaa1d4d749..e1b82658d938 100644 --- a/security/trousers/files/patch-configure.in +++ b/security/trousers/files/patch-configure.in @@ -1,6 +1,6 @@ ---- configure.in.orig 2010-07-09 05:35:18.000000000 +0900 -+++ configure.in 2010-10-24 22:31:30.040556068 +0900 -@@ -75,6 +75,21 @@ +--- configure.in.orig 2014-04-24 18:05:43 UTC ++++ configure.in +@@ -72,6 +72,21 @@ AC_ARG_ENABLE(gcov, [CFLAGS="$CFLAGS -ftest-coverage -fprofile-arcs" AC_MSG_RESULT([*** Enabling gcov at user request ***])],) @@ -22,7 +22,7 @@ # profiling support AC_ARG_ENABLE(gprof, [AC_HELP_STRING([--enable-gprof], [enable profiling with gprof [default=off]])], -@@ -352,6 +367,8 @@ +@@ -356,6 +371,8 @@ AC_PROG_LIBTOOL AC_C_BIGENDIAN([AC_DEFINE(_BIG_ENDIAN, 1, [big-endian host])]) AC_CHECK_DECL(htole32, [AC_DEFINE(HTOLE_DEFINED, 1, [htole32 function is available])]) AC_CHECK_HEADER(sys/byteorder.h, [AC_DEFINE(HAVE_BYTEORDER_H, 1, [sys/byteorder.h header])]) @@ -31,7 +31,7 @@ AC_CHECK_FUNC(daemon, [ AC_DEFINE(HAVE_DAEMON, 1, [daemon function is available]) ]) if test "x${GCC}" = "xyes"; then -@@ -359,6 +376,7 @@ +@@ -363,6 +380,7 @@ if test "x${GCC}" = "xyes"; then fi CFLAGS="$CFLAGS -I../include \ diff --git a/security/trousers/files/patch-dist-Makefile.am b/security/trousers/files/patch-dist-Makefile.am index 2604e06a3909..ba062c7db9d1 100644 --- a/security/trousers/files/patch-dist-Makefile.am +++ b/security/trousers/files/patch-dist-Makefile.am @@ -1,20 +1,19 @@ ---- dist/Makefile.am.orig 2010-03-12 05:41:54.000000000 +0900 -+++ dist/Makefile.am 2010-10-24 21:04:04.818560844 +0900 -@@ -1,17 +1,7 @@ +--- dist/Makefile.am.orig 2014-04-24 18:05:43 UTC ++++ dist/Makefile.am +@@ -1,14 +1,14 @@ EXTRA_DIST = system.data.auth system.data.noauth \ fedora/fedora.initrd.tcsd - install: install-exec-hook -- if test ! -e ${DESTDIR}/@sysconfdir@/tcsd.conf; then mkdir -p ${DESTDIR}/@sysconfdir@ && cp tcsd.conf ${DESTDIR}/@sysconfdir@; fi -- /bin/chown tss:tss ${DESTDIR}/@sysconfdir@/tcsd.conf || true -- /bin/chmod 0600 ${DESTDIR}/@sysconfdir@/tcsd.conf - install-exec-hook: -- /usr/sbin/groupadd tss || true -- /usr/sbin/useradd -r tss -g tss || true -- /bin/sh -c 'if [ ! -e ${DESTDIR}/@localstatedir@/lib/tpm ];then mkdir -p ${DESTDIR}/@localstatedir@/lib/tpm; fi' -- /bin/chown tss:tss ${DESTDIR}/@localstatedir@/lib/tpm || true -- /bin/chmod 0700 ${DESTDIR}/@localstatedir@/lib/tpm +-install: install-exec-hook ++Xinstall: install-exec-hook + if test ! -e ${DESTDIR}/@sysconfdir@/tcsd.conf; then mkdir -p ${DESTDIR}/@sysconfdir@ && cp tcsd.conf ${DESTDIR}/@sysconfdir@; fi + if !NOUSERCHECK + /bin/chown tss:tss ${DESTDIR}/@sysconfdir@/tcsd.conf || true + /bin/chmod 0600 ${DESTDIR}/@sysconfdir@/tcsd.conf + endif - uninstall-hook: -- /usr/sbin/userdel tss || true -- /usr/sbin/groupdel tss || true +-install-exec-hook: ++Xinstall-exec-hook: + /bin/sh -c 'if [ ! -e ${DESTDIR}/@localstatedir@/lib/tpm ];then mkdir -p ${DESTDIR}/@localstatedir@/lib/tpm; fi' + if !NOUSERCHECK + /usr/sbin/groupadd tss || true diff --git a/security/trousers/files/patch-dist-tcsd.conf.in b/security/trousers/files/patch-dist-tcsd.conf.in index 4a2f9326fb7b..a9e13e89ff82 100644 --- a/security/trousers/files/patch-dist-tcsd.conf.in +++ b/security/trousers/files/patch-dist-tcsd.conf.in @@ -1,5 +1,5 @@ ---- dist/tcsd.conf.in.orig 2010-01-29 01:27:50.000000000 +0900 -+++ dist/tcsd.conf.in 2010-10-25 00:06:25.565556476 +0900 +--- dist/tcsd.conf.in.orig 2014-04-24 18:05:43 UTC ++++ dist/tcsd.conf.in @@ -35,7 +35,7 @@ # log data. The interface to this log is usually provided by the TPM # device driver. diff --git a/security/trousers/files/patch-src-include-biosem.h b/security/trousers/files/patch-src-include-biosem.h index 88930505a225..e19865e4d540 100644 --- a/security/trousers/files/patch-src-include-biosem.h +++ b/security/trousers/files/patch-src-include-biosem.h @@ -1,6 +1,6 @@ ---- src/include/biosem.h.orig 2010-03-12 05:22:36.000000000 +0900 -+++ src/include/biosem.h 2010-10-24 21:04:04.820558727 +0900 -@@ -26,7 +26,7 @@ +--- src/include/biosem.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/biosem.h +@@ -26,7 +26,7 @@ typedef struct { UINT32 eventType; BYTE digest[20]; UINT32 eventDataSize; diff --git a/security/trousers/files/patch-src-include-linux-tpm.h b/security/trousers/files/patch-src-include-linux-tpm.h index 49046f6027b1..9ecc4cfa2fe2 100644 --- a/security/trousers/files/patch-src-include-linux-tpm.h +++ b/security/trousers/files/patch-src-include-linux-tpm.h @@ -1,5 +1,5 @@ ---- src/include/linux/tpm.h.orig 2010-01-29 01:27:51.000000000 +0900 -+++ src/include/linux/tpm.h 2010-10-24 21:04:04.821560671 +0900 +--- src/include/linux/tpm.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/linux/tpm.h @@ -20,6 +20,8 @@ #include <linux/ioctl.h> #elif (defined (__OpenBSD__) || defined (__FreeBSD__)) diff --git a/security/trousers/files/patch-src-include-tcs_tsp.h b/security/trousers/files/patch-src-include-tcs_tsp.h index 675769ac4960..4a99f4a7140c 100644 --- a/security/trousers/files/patch-src-include-tcs_tsp.h +++ b/security/trousers/files/patch-src-include-tcs_tsp.h @@ -1,6 +1,6 @@ ---- src/include/tcs_tsp.h.orig 2010-01-29 01:27:51.000000000 +0900 -+++ src/include/tcs_tsp.h 2010-10-24 21:04:04.822560729 +0900 -@@ -79,7 +79,13 @@ +--- src/include/tcs_tsp.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/tcs_tsp.h +@@ -79,7 +79,13 @@ struct key_disk_cache /* XXX Get rid of this, there's no reason to set an arbitrary limit */ #define MAX_KEY_CHILDREN 10 diff --git a/security/trousers/files/patch-src-include-tcs_utils.h b/security/trousers/files/patch-src-include-tcs_utils.h index fcbe1d2f9d1c..d0aa6c1cb0c0 100644 --- a/security/trousers/files/patch-src-include-tcs_utils.h +++ b/security/trousers/files/patch-src-include-tcs_utils.h @@ -1,5 +1,5 @@ ---- src/include/tcs_utils.h.orig 2010-01-29 01:27:51.000000000 +0900 -+++ src/include/tcs_utils.h 2010-10-24 21:04:04.824555399 +0900 +--- src/include/tcs_utils.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/tcs_utils.h @@ -18,6 +18,20 @@ #include "tcs_tsp.h" #include "trousers_types.h" diff --git a/security/trousers/files/patch-src-include-tcsd.h b/security/trousers/files/patch-src-include-tcsd.h index 612d1b22e32f..86f62b7a2c8a 100644 --- a/security/trousers/files/patch-src-include-tcsd.h +++ b/security/trousers/files/patch-src-include-tcsd.h @@ -1,8 +1,8 @@ ---- src/include/tcsd.h.orig 2010-05-03 11:54:15.000000000 +0900 -+++ src/include/tcsd.h 2010-10-24 22:28:52.708555289 +0900 -@@ -50,14 +50,22 @@ - - #define TCSD_CONFIG_FILE ETC_PREFIX "/tcsd.conf" +--- src/include/tcsd.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/tcsd.h +@@ -53,14 +53,22 @@ struct tcsd_config + #define TCSD_DEFAULT_CONFIG_FILE ETC_PREFIX "/tcsd.conf" + extern char *tcsd_config_file; +#ifndef TSS_USER_NAME #define TSS_USER_NAME "tss" @@ -26,4 +26,4 @@ +#define TCSD_DEFAULT_KERNEL_LOG_FILE "/var/run/ima/binary_runtime_measurements" #define TCSD_DEFAULT_FIRMWARE_PCRS 0x00000000 #define TCSD_DEFAULT_KERNEL_PCRS 0x00000000 - + #define TCSD_DEFAULT_DISABLE_IPV4 0 diff --git a/security/trousers/files/patch-src-include-tcsd_ops.h b/security/trousers/files/patch-src-include-tcsd_ops.h index f98f11737b6c..54fdb60ac2d1 100644 --- a/security/trousers/files/patch-src-include-tcsd_ops.h +++ b/security/trousers/files/patch-src-include-tcsd_ops.h @@ -1,5 +1,5 @@ ---- src/include/tcsd_ops.h.orig 2010-01-29 01:27:51.000000000 +0900 -+++ src/include/tcsd_ops.h 2010-10-24 21:04:04.827558718 +0900 +--- src/include/tcsd_ops.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/tcsd_ops.h @@ -123,7 +123,7 @@ struct tcsd_op { diff --git a/security/trousers/files/patch-src-include-threads.h b/security/trousers/files/patch-src-include-threads.h index d0c40e55e9e7..f0949695be3a 100644 --- a/security/trousers/files/patch-src-include-threads.h +++ b/security/trousers/files/patch-src-include-threads.h @@ -1,5 +1,5 @@ ---- src/include/threads.h.orig 2010-05-03 11:54:15.000000000 +0900 -+++ src/include/threads.h 2010-10-24 21:04:04.828558009 +0900 +--- src/include/threads.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/threads.h @@ -31,7 +31,7 @@ #define COND_SIGNAL(c) pthread_cond_signal(c) diff --git a/security/trousers/files/patch-src-include-trousers_types.h b/security/trousers/files/patch-src-include-trousers_types.h index 3fb3302cbf42..902bea8de528 100644 --- a/security/trousers/files/patch-src-include-trousers_types.h +++ b/security/trousers/files/patch-src-include-trousers_types.h @@ -1,5 +1,5 @@ ---- src/include/trousers_types.h.orig 2010-05-20 02:45:55.000000000 +0900 -+++ src/include/trousers_types.h 2010-10-24 21:04:04.829561420 +0900 +--- src/include/trousers_types.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/trousers_types.h @@ -11,6 +11,14 @@ #ifndef _TROUSERS_TYPES_H_ #define _TROUSERS_TYPES_H_ @@ -15,7 +15,7 @@ #define TCPA_NONCE_SIZE sizeof(TCPA_NONCE) #define TCPA_DIGEST_SIZE sizeof(TCPA_DIGEST) #define TCPA_ENCAUTH_SIZE sizeof(TCPA_ENCAUTH) -@@ -100,7 +108,7 @@ +@@ -100,7 +108,7 @@ typedef struct tdTSS_KEY11_HDR { typedef struct tdTSS_KEY12_HDR { TPM_STRUCTURE_TAG tag; UINT16 fill; @@ -24,7 +24,7 @@ typedef struct tdTSS_KEY { union { -@@ -118,11 +126,10 @@ +@@ -118,11 +126,10 @@ typedef struct tdTSS_KEY { BYTE *encData; } TSS_KEY; diff --git a/security/trousers/files/patch-src-include-tss-platform.h b/security/trousers/files/patch-src-include-tss-platform.h index 45f830d74fab..f9fcd406a650 100644 --- a/security/trousers/files/patch-src-include-tss-platform.h +++ b/security/trousers/files/patch-src-include-tss-platform.h @@ -1,6 +1,6 @@ ---- src/include/tss/platform.h.orig 2010-01-29 01:27:51.000000000 +0900 -+++ src/include/tss/platform.h 2010-10-24 21:04:04.830556101 +0900 -@@ -15,7 +15,7 @@ +--- src/include/tss/platform.h.orig 2014-04-24 18:05:44 UTC ++++ src/include/tss/platform.h +@@ -15,7 +15,7 @@ There are platform dependent and general #if !defined(WIN32)
#include <stdint.h>
typedef uint8_t BYTE;
diff --git a/security/trousers/files/patch-src-tcs-Makefile.am b/security/trousers/files/patch-src-tcs-Makefile.am new file mode 100644 index 000000000000..4746998522ff --- /dev/null +++ b/security/trousers/files/patch-src-tcs-Makefile.am @@ -0,0 +1,152 @@ +--- src/tcs/Makefile.am.orig 2014-04-24 18:05:44 UTC ++++ src/tcs/Makefile.am +@@ -1,4 +1,4 @@ +-noinst_LIBRARIES=libtcs.a ++noinst_LIBRARIES=libtcs.a libtcs_emu.a + + CFLAGS+=-I${top_srcdir}/src/include + libtcs_a_LIBADD=${top_builddir}/src/tddl/libtddl.a +@@ -140,3 +140,143 @@ if TSS_BUILD_CMK + libtcs_a_SOURCES+=tcsi_cmk.c rpc/@RPC@/rpc_cmk.c + libtcs_a_CFLAGS+=-DTSS_BUILD_CMK + endif ++ ++libtcs_emu_a_LIBADD=${LOCALBASE}/lib/tddl_emu/libtddl.a ++libtcs_emu_a_CFLAGS=-DAPPID=\"TCSD\ TCS\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -fPIE -DPIE ++ ++libtcs_emu_a_SOURCES=log.c \ ++ tcs_caps.c \ ++ tcs_req_mgr.c \ ++ tcs_context.c \ ++ tcsi_context.c \ ++ tcs_utils.c \ ++ rpc/@RPC@/rpc.c rpc/@RPC@/rpc_context.c \ ++ tcsi_caps_tpm.c rpc/@RPC@/rpc_caps_tpm.c \ ++ tcs_auth_mgr.c tcsi_auth.c rpc/@RPC@/rpc_auth.c \ ++ tcs_pbg.c ++ ++if TSS_BUILD_TRANSPORT ++libtcs_emu_a_SOURCES+=tcsi_transport.c rpc/@RPC@/rpc_transport.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_TRANSPORT ++endif ++if TSS_BUILD_TICK ++libtcs_emu_a_SOURCES+=tcsi_tick.c rpc/@RPC@/rpc_tick.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_TICK ++endif ++if TSS_BUILD_COUNTER ++libtcs_emu_a_SOURCES+=tcsi_counter.c tcs_counter.c rpc/@RPC@/rpc_counter.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_COUNTER ++endif ++if TSS_BUILD_RANDOM ++libtcs_emu_a_SOURCES+=tcsi_random.c rpc/@RPC@/rpc_random.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_RANDOM ++endif ++if TSS_BUILD_CAPS ++libtcs_emu_a_SOURCES+=tcsi_caps.c rpc/@RPC@/rpc_caps.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_CAPS ++endif ++if TSS_BUILD_DIR ++libtcs_emu_a_SOURCES+=tcsi_dir.c rpc/@RPC@/rpc_dir.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_DIR ++endif ++if TSS_BUILD_PCR_EVENTS ++libtcs_emu_a_SOURCES+=tcsi_evlog.c tcs_evlog_biosem.c tcs_evlog_imaem.c tcs_evlog.c \ ++ rpc/@RPC@/rpc_evlog.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_PCR_EVENTS ++endif ++if TSS_BUILD_SIGN ++libtcs_emu_a_SOURCES+=tcsi_sign.c rpc/@RPC@/rpc_sign.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_SIGN ++endif ++if TSS_BUILD_QUOTE ++libtcs_emu_a_SOURCES+=tcsi_quote.c tcs_quote.c rpc/@RPC@/rpc_quote.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_QUOTE ++endif ++if TSS_BUILD_SEAL ++libtcs_emu_a_SOURCES+=tcsi_seal.c tcs_seal.c rpc/@RPC@/rpc_seal.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_SEAL ++endif ++if TSS_BUILD_CHANGEAUTH ++libtcs_emu_a_SOURCES+=tcsi_changeauth.c rpc/@RPC@/rpc_changeauth.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_CHANGEAUTH ++endif ++if TSS_BUILD_BIND ++libtcs_emu_a_SOURCES+=tcsi_bind.c rpc/@RPC@/rpc_bind.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_BIND ++endif ++if TSS_BUILD_OWN ++libtcs_emu_a_SOURCES+=tcsi_own.c rpc/@RPC@/rpc_own.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_OWN ++endif ++if TSS_BUILD_PS ++libtcs_emu_a_SOURCES+=ps/ps_utils.c ps/tcsps.c tcsi_ps.c tcs_ps.c tcs_key_ps.c rpc/@RPC@/rpc_ps.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_PS ++endif ++if TSS_BUILD_ADMIN ++libtcs_emu_a_SOURCES+=tcsi_admin.c rpc/@RPC@/rpc_admin.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_ADMIN ++endif ++if TSS_BUILD_AIK ++libtcs_emu_a_SOURCES+=tcsi_aik.c tcs_aik.c rpc/@RPC@/rpc_aik.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_AIK ++endif ++if TSS_BUILD_EK ++libtcs_emu_a_SOURCES+=tcsi_ek.c rpc/@RPC@/rpc_ek.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_EK ++endif ++if TSS_BUILD_CERTIFY ++libtcs_emu_a_SOURCES+=tcsi_certify.c rpc/@RPC@/rpc_certify.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_CERTIFY ++endif ++if TSS_BUILD_KEY ++libtcs_emu_a_SOURCES+=tcsi_key.c tcs_key.c tcs_key_mem_cache.c tcs_context_key.c rpc/@RPC@/rpc_key.c \ ++ crypto/@CRYPTO_PACKAGE@/crypto.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_KEY ++endif ++if TSS_BUILD_MAINT ++libtcs_emu_a_SOURCES+=tcsi_maint.c rpc/@RPC@/rpc_maint.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_MAINT ++endif ++if TSS_BUILD_MIGRATION ++libtcs_emu_a_SOURCES+=tcsi_migration.c tcs_migration.c rpc/@RPC@/rpc_migration.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_MIGRATION ++endif ++if TSS_BUILD_PCR_EXTEND ++libtcs_emu_a_SOURCES+=tcsi_pcr.c rpc/@RPC@/rpc_pcr_extend.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_PCR_EXTEND ++endif ++if TSS_BUILD_SELFTEST ++libtcs_emu_a_SOURCES+=tcsi_selftest.c rpc/@RPC@/rpc_selftest.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_SELFTEST ++endif ++if TSS_BUILD_DAA ++libtcs_emu_a_SOURCES+=tcsi_daa.c rpc/@RPC@/rpc_daa.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_DAA ++endif ++if TSS_BUILD_NV ++libtcs_emu_a_SOURCES+=tcsi_nv.c rpc/@RPC@/rpc_nv.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_NV ++endif ++if TSS_BUILD_AUDIT ++libtcs_emu_a_SOURCES+=tcsi_audit.c rpc/@RPC@/rpc_audit.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_AUDIT ++endif ++if TSS_BUILD_SEALX ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_SEALX ++endif ++if TSS_BUILD_TSS12 ++libtcs_emu_a_SOURCES+=tcsi_oper.c rpc/@RPC@/rpc_oper.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_TSS12 ++endif ++if TSS_BUILD_DELEGATION ++libtcs_emu_a_SOURCES+=tcsi_delegate.c rpc/@RPC@/rpc_delegate.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_DELEGATION ++endif ++if TSS_BUILD_QUOTE2 ++libtcs_emu_a_SOURCES+=tcsi_quote2.c tcs_quote2.c rpc/@RPC@/rpc_quote2.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_QUOTE2 ++endif ++if TSS_BUILD_CMK ++libtcs_emu_a_SOURCES+=tcsi_cmk.c rpc/@RPC@/rpc_cmk.c ++libtcs_emu_a_CFLAGS+=-DTSS_BUILD_CMK ++endif diff --git a/security/trousers/files/patch-src-tcs-ps-ps_utils.c b/security/trousers/files/patch-src-tcs-ps-ps_utils.c index fddc2d3e04f8..cc2dfab9a58b 100644 --- a/security/trousers/files/patch-src-tcs-ps-ps_utils.c +++ b/security/trousers/files/patch-src-tcs-ps-ps_utils.c @@ -1,5 +1,5 @@ ---- src/tcs/ps/ps_utils.c.orig 2012-09-20 02:24:48.000000000 +0900 -+++ src/tcs/ps/ps_utils.c 2013-07-31 22:18:59.000000000 +0900 +--- src/tcs/ps/ps_utils.c.orig 2014-04-24 18:05:44 UTC ++++ src/tcs/ps/ps_utils.c @@ -16,10 +16,18 @@ #if defined(HAVE_BYTEORDER_H) #include <sys/byteorder.h> @@ -31,7 +31,7 @@ read_data(int fd, void *data, UINT32 size) { int rc; -@@ -64,11 +68,7 @@ +@@ -64,11 +68,7 @@ read_data(int fd, void *data, UINT32 siz } diff --git a/security/trousers/files/patch-src-tcs-ps-tcsps.c b/security/trousers/files/patch-src-tcs-ps-tcsps.c index df56d1883a7f..3f79d1b0e626 100644 --- a/security/trousers/files/patch-src-tcs-ps-tcsps.c +++ b/security/trousers/files/patch-src-tcs-ps-tcsps.c @@ -1,5 +1,5 @@ ---- src/tcs/ps/tcsps.c.orig 2010-05-02 11:39:11.000000000 +0900 -+++ src/tcs/ps/tcsps.c 2010-10-24 21:04:04.833559489 +0900 +--- src/tcs/ps/tcsps.c.orig 2014-04-24 18:05:44 UTC ++++ src/tcs/ps/tcsps.c @@ -24,6 +24,11 @@ #define LE_16 htole16 #define LE_32 htole32 diff --git a/security/trousers/files/patch-src-tcs-rpc-tcstp-rpc.c b/security/trousers/files/patch-src-tcs-rpc-tcstp-rpc.c new file mode 100644 index 000000000000..e71911c4848a --- /dev/null +++ b/security/trousers/files/patch-src-tcs-rpc-tcstp-rpc.c @@ -0,0 +1,10 @@ +--- src/tcs/rpc/tcstp/rpc.c.orig 2014-04-24 18:05:44 UTC ++++ src/tcs/rpc/tcstp/rpc.c +@@ -16,6 +16,7 @@ + #if (defined (__OpenBSD__) || defined (__FreeBSD__)) + #include <sys/types.h> + #include <sys/socket.h> ++#include <netinet/in.h> + #endif + #include <errno.h> + diff --git a/security/trousers/files/patch-src-tcs-tcs_aik.c b/security/trousers/files/patch-src-tcs-tcs_aik.c index 9520bf69fb38..53868fd76836 100644 --- a/security/trousers/files/patch-src-tcs-tcs_aik.c +++ b/security/trousers/files/patch-src-tcs-tcs_aik.c @@ -1,6 +1,6 @@ ---- src/tcs/tcs_aik.c.orig 2010-06-10 05:20:44.000000000 +0900 -+++ src/tcs/tcs_aik.c 2010-10-24 21:04:04.834556754 +0900 -@@ -66,7 +66,7 @@ +--- src/tcs/tcs_aik.c.orig 2014-04-24 18:05:44 UTC ++++ src/tcs/tcs_aik.c +@@ -66,7 +66,7 @@ UnloadBlob_SYMMETRIC_KEY(UINT64 *offset, UnloadBlob_UINT16(offset, &key->size, blob); if (key->size > 0) { diff --git a/security/trousers/files/patch-src-tcs-tcs_auth_mgr.c b/security/trousers/files/patch-src-tcs-tcs_auth_mgr.c index 558f26ce5eaf..7088a4f889b6 100644 --- a/security/trousers/files/patch-src-tcs-tcs_auth_mgr.c +++ b/security/trousers/files/patch-src-tcs-tcs_auth_mgr.c @@ -1,6 +1,6 @@ ---- src/tcs/tcs_auth_mgr.c.orig 2010-06-10 05:21:32.000000000 +0900 -+++ src/tcs/tcs_auth_mgr.c 2010-10-24 21:04:04.836560084 +0900 -@@ -108,7 +108,7 @@ +--- src/tcs/tcs_auth_mgr.c.orig 2014-04-24 18:05:44 UTC ++++ src/tcs/tcs_auth_mgr.c +@@ -108,7 +108,7 @@ void auth_mgr_swap_in() { if (auth_mgr.overflow[auth_mgr.of_tail] != NULL) { @@ -9,7 +9,7 @@ /* wake up the next sleeping thread in order and increment tail */ COND_SIGNAL(auth_mgr.overflow[auth_mgr.of_tail]); auth_mgr.overflow[auth_mgr.of_tail] = NULL; -@@ -149,7 +149,7 @@ +@@ -149,7 +149,7 @@ auth_mgr_swap_out(TCS_CONTEXT_HANDLE hCo auth_mgr.overflow[auth_mgr.of_head] = cond; auth_mgr.of_head = (auth_mgr.of_head + 1) % auth_mgr.overflow_size; /* go to sleep */ @@ -18,7 +18,7 @@ auth_mgr.sleeping_threads++; COND_WAIT(cond, &tcsp_lock); auth_mgr.sleeping_threads--; -@@ -180,7 +180,7 @@ +@@ -180,7 +180,7 @@ auth_mgr_swap_out(TCS_CONTEXT_HANDLE hCo auth_mgr.of_tail = 0; auth_mgr.overflow[auth_mgr.of_head] = cond; auth_mgr.of_head = (auth_mgr.of_head + 1) % auth_mgr.overflow_size; diff --git a/security/trousers/files/patch-src-tcsd-Makefile.am b/security/trousers/files/patch-src-tcsd-Makefile.am new file mode 100644 index 000000000000..8c6cd754468b --- /dev/null +++ b/security/trousers/files/patch-src-tcsd-Makefile.am @@ -0,0 +1,21 @@ +--- src/tcsd/Makefile.am.orig 2014-04-24 18:05:44 UTC ++++ src/tcsd/Makefile.am +@@ -1,4 +1,4 @@ +-sbin_PROGRAMS=tcsd ++sbin_PROGRAMS=tcsd tcsd_emu + + tcsd_CFLAGS=-DAPPID=\"TCSD\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -I${top_srcdir}/src/include -fPIE -DPIE + tcsd_LDADD=${top_builddir}/src/tcs/libtcs.a ${top_builddir}/src/tddl/libtddl.a -lpthread @CRYPTOLIB@ +@@ -6,6 +6,12 @@ tcsd_LDFLAGS=-pie -Wl,-z,relro -Wl,-z,no + + tcsd_SOURCES=svrside.c tcsd_conf.c tcsd_threads.c platform.c + ++tcsd_emu_CFLAGS=-DAPPID=\"TCSD\" -DVAR_PREFIX=\"@localstatedir@\" -DETC_PREFIX=\"@sysconfdir@\" -I${top_srcdir}/src/include -fPIE -DPIE ++tcsd_emu_LDADD=${top_builddir}/src/tcs/libtcs_emu.a -ltddl -L${LOCALBASE}/lib/tddl_emu -lpthread @CRYPTOLIB@ ++tcsd_emu_LDFLAGS=-pie -Wl,-z,relro -Wl,-z,now -Wl,-rpath=${LOCALBASE}/lib/tddl_emu:${LOCALBASE}/lib ++ ++tcsd_emu_SOURCES=svrside.c tcsd_conf.c tcsd_threads.c platform.c ++ + if TSS_BUILD_PS + tcsd_CFLAGS+=-DTSS_BUILD_PS + endif diff --git a/security/trousers/files/patch-src-tcsd-svrside.c b/security/trousers/files/patch-src-tcsd-svrside.c index 17a5925d5839..dfc6eee35206 100644 --- a/security/trousers/files/patch-src-tcsd-svrside.c +++ b/security/trousers/files/patch-src-tcsd-svrside.c @@ -1,7 +1,7 @@ ---- src/tcsd/svrside.c.orig 2012-09-25 23:23:01.000000000 +0900 -+++ src/tcsd/svrside.c 2013-07-31 22:12:08.000000000 +0900 -@@ -66,12 +66,19 @@ - close(sd); +--- src/tcsd/svrside.c.orig 2014-04-24 18:05:44 UTC ++++ src/tcsd/svrside.c +@@ -92,12 +92,19 @@ tcsd_signal_term(int signal) + term = 1; } -void @@ -21,7 +21,7 @@ static TSS_RESULT signals_init(void) { -@@ -80,6 +87,14 @@ +@@ -106,6 +113,14 @@ signals_init(void) struct sigaction sa; sigemptyset(&sigmask); @@ -36,7 +36,7 @@ if ((rc = sigaddset(&sigmask, SIGTERM))) { LogError("sigaddset: %s", strerror(errno)); return TCSERR(TSS_E_INTERNAL_ERROR); -@@ -102,12 +117,24 @@ +@@ -128,12 +143,24 @@ signals_init(void) return TCSERR(TSS_E_INTERNAL_ERROR); } @@ -61,64 +61,3 @@ return TSS_SUCCESS; } -@@ -256,6 +283,26 @@ - if ((result = tcsd_startup())) - return (int)result; - -+ pwd = getpwnam(TSS_USER_NAME); -+ if (pwd == NULL) { -+ if (errno == 0) { -+ LogError("User \"%s\" not found, please add this user" -+ " manually.", TSS_USER_NAME); -+ } else { -+ LogError("getpwnam(%s): %s", TSS_USER_NAME, strerror(errno)); -+ } -+ return TCSERR(TSS_E_INTERNAL_ERROR); -+ } -+ setuid(pwd->pw_uid); -+ -+ if (getenv("TCSD_FOREGROUND") == NULL) { -+ if (daemon(0, 0) == -1) { -+ perror("daemon"); -+ tcsd_shutdown(); -+ return -1; -+ } -+ } -+ - sd = socket(AF_INET, SOCK_STREAM, 0); - if (sd < 0) { - LogError("Failed socket: %s", strerror(errno)); -@@ -279,33 +326,12 @@ - LogError("Failed bind: %s", strerror(errno)); - return -1; - } --#ifndef SOLARIS -- pwd = getpwnam(TSS_USER_NAME); -- if (pwd == NULL) { -- if (errno == 0) { -- LogError("User \"%s\" not found, please add this user" -- " manually.", TSS_USER_NAME); -- } else { -- LogError("getpwnam(%s): %s", TSS_USER_NAME, strerror(errno)); -- } -- return TCSERR(TSS_E_INTERNAL_ERROR); -- } -- setuid(pwd->pw_uid); --#endif - if (listen(sd, TCSD_MAX_SOCKETS_QUEUED) < 0) { - LogError("Failed listen: %s", strerror(errno)); - return -1; - } - client_len = (unsigned)sizeof(client_addr); - -- if (getenv("TCSD_FOREGROUND") == NULL) { -- if (daemon(0, 0) == -1) { -- perror("daemon"); -- tcsd_shutdown(); -- return -1; -- } -- } -- - LogInfo("%s: TCSD up and running.", PACKAGE_STRING); - do { - newsd = accept(sd, (struct sockaddr *) &client_addr, &client_len); diff --git a/security/trousers/files/patch-src-tddl-Makefile.am b/security/trousers/files/patch-src-tddl-Makefile.am new file mode 100644 index 000000000000..639175af6f47 --- /dev/null +++ b/security/trousers/files/patch-src-tddl-Makefile.am @@ -0,0 +1,14 @@ +--- src/tddl/Makefile.am.orig 2014-04-24 18:05:44 UTC ++++ src/tddl/Makefile.am +@@ -1,4 +1,11 @@ ++libdir=@libdir@/tddl ++ + lib_LIBRARIES=libtddl.a + + libtddl_a_SOURCES=tddl.c + libtddl_a_CFLAGS=-DAPPID=\"TCSD\ TDDL\" -I${top_srcdir}/src/include -fPIE -DPIE ++ ++lib_LTLIBRARIES=libtddl.la ++ ++libtddl_la_SOURCES=tddl.c ++libtddl_la_CFLAGS=-DAPPID=\"TCSD\ TDDL\" -I${top_srcdir}/src/include -fPIE -DPIE diff --git a/security/trousers/files/patch-src-trspi-Makefile.am b/security/trousers/files/patch-src-trspi-Makefile.am index e9fd99e550c7..8b7f1bb90a64 100644 --- a/security/trousers/files/patch-src-trspi-Makefile.am +++ b/security/trousers/files/patch-src-trspi-Makefile.am @@ -1,5 +1,5 @@ ---- src/trspi/Makefile.am.orig 2012-09-20 02:24:48.000000000 +0900 -+++ src/trspi/Makefile.am 2013-12-05 15:12:35.000000000 +0900 +--- src/trspi/Makefile.am.orig 2014-04-24 18:05:44 UTC ++++ src/trspi/Makefile.am @@ -1,7 +1,8 @@ noinst_LTLIBRARIES=libtrousers.la diff --git a/security/trousers/files/patch-src-tspi-Makefile.am b/security/trousers/files/patch-src-tspi-Makefile.am index 9d67ba3e18b4..31672e1262d1 100644 --- a/security/trousers/files/patch-src-tspi-Makefile.am +++ b/security/trousers/files/patch-src-tspi-Makefile.am @@ -1,6 +1,6 @@ ---- src/tspi/Makefile.am.orig 2012-09-20 02:24:48.000000000 +0900 -+++ src/tspi/Makefile.am 2013-12-05 11:10:14.000000000 +0900 -@@ -17,7 +17,7 @@ +--- src/tspi/Makefile.am.orig 2014-04-24 18:05:44 UTC ++++ src/tspi/Makefile.am +@@ -17,7 +17,7 @@ libtspi_la_LIBADD=${top_builddir}/src/tr # 5. If any interfaces have been added since the last public release, then increment age. # 6. If any interfaces have been removed since the last public release, then set age to 0. diff --git a/security/trousers/files/patch-src-tspi-ps-ps_utils.c b/security/trousers/files/patch-src-tspi-ps-ps_utils.c index 30cd5c164200..0bb38d1cbbc2 100644 --- a/security/trousers/files/patch-src-tspi-ps-ps_utils.c +++ b/security/trousers/files/patch-src-tspi-ps-ps_utils.c @@ -1,5 +1,5 @@ ---- src/tspi/ps/ps_utils.c.orig 2010-01-29 01:27:51.000000000 +0900 -+++ src/tspi/ps/ps_utils.c 2010-10-24 21:04:04.841558702 +0900 +--- src/tspi/ps/ps_utils.c.orig 2014-04-24 18:05:44 UTC ++++ src/tspi/ps/ps_utils.c @@ -22,7 +22,7 @@ #include "tspps.h" #include "tsplog.h" @@ -9,7 +9,7 @@ read_data(int fd, void *data, UINT32 size) { int rc; -@@ -39,7 +39,7 @@ +@@ -39,7 +39,7 @@ read_data(int fd, void *data, UINT32 siz return TSS_SUCCESS; } diff --git a/security/trousers/files/patch-src-tspi-ps-tspps.c b/security/trousers/files/patch-src-tspi-ps-tspps.c index 41076366f5ce..d58f17d5f48c 100644 --- a/security/trousers/files/patch-src-tspi-ps-tspps.c +++ b/security/trousers/files/patch-src-tspi-ps-tspps.c @@ -1,5 +1,5 @@ ---- src/tspi/ps/tspps.c.orig 2012-09-20 02:24:48.000000000 +0900 -+++ src/tspi/ps/tspps.c 2013-07-27 04:03:25.000000000 +0900 +--- src/tspi/ps/tspps.c.orig 2014-04-24 18:05:44 UTC ++++ src/tspi/ps/tspps.c @@ -29,6 +29,11 @@ #define LE_16 htole16 #define LE_32 htole32 @@ -26,7 +26,7 @@ static MUTEX_DECLARE_INIT(user_ps_path); #endif static struct flock fl; -@@ -60,9 +69,7 @@ +@@ -60,9 +69,7 @@ get_user_ps_path(char **file) TSS_RESULT result; char *file_name = NULL, *home_dir = NULL; struct passwd *pwp; @@ -36,7 +36,7 @@ struct stat stat_buf; char buf[PASSWD_BUFSIZE]; uid_t euid; -@@ -72,10 +79,6 @@ +@@ -72,10 +79,6 @@ get_user_ps_path(char **file) *file = strdup(file_name); return (*file) ? TSS_SUCCESS : TSPERR(TSS_E_OUTOFMEMORY); } @@ -47,7 +47,7 @@ euid = geteuid(); #if defined (SOLARIS) -@@ -88,32 +91,14 @@ +@@ -88,32 +91,14 @@ get_user_ps_path(char **file) */ rc = snprintf(buf, sizeof (buf), "%s/%d", TSS_USER_PS_DIR, euid); #else diff --git a/security/trousers/files/patch-src-tspi-rpc-hosttable.c b/security/trousers/files/patch-src-tspi-rpc-hosttable.c index befd61032770..144ec14535ad 100644 --- a/security/trousers/files/patch-src-tspi-rpc-hosttable.c +++ b/security/trousers/files/patch-src-tspi-rpc-hosttable.c @@ -1,20 +1,6 @@ ---- src/tspi/rpc/hosttable.c.orig 2012-09-20 02:35:07.000000000 +0900 -+++ src/tspi/rpc/hosttable.c 2014-08-06 15:35:22.000000000 +0900 -@@ -36,10 +36,10 @@ - } - - #ifdef SOLARIS --#pragma init(_init) --void _init(void) -+#pragma init(_init_hosttable) -+void _init_hosttable(void) - #else --void __attribute__ ((constructor)) my_init(void) -+static void __attribute__ ((constructor)) my_init(void) - #endif - { - host_table_init(); -@@ -51,6 +51,8 @@ +--- src/tspi/rpc/hosttable.c.orig 2014-04-24 18:05:44 UTC ++++ src/tspi/rpc/hosttable.c +@@ -51,6 +51,8 @@ host_table_final() { struct host_table_entry *hte, *next = NULL; @@ -23,21 +9,7 @@ MUTEX_LOCK(ht->lock); for (hte = ht->entries; hte; hte = next) { -@@ -70,10 +72,10 @@ - } - - #ifdef SOLARIS --#pragma fini(_fini) --void _fini(void) -+#pragma fini(_fini_hosttable) -+void _fini_hosttable(void) - #else --void __attribute__ ((destructor)) my_fini(void) -+static void __attribute__ ((destructor)) my_fini(void) - #endif - { - host_table_final(); -@@ -84,6 +86,8 @@ +@@ -84,6 +86,8 @@ __tspi_add_table_entry(TSS_HCONTEXT tspC { struct host_table_entry *entry, *tmp; @@ -46,7 +18,7 @@ entry = calloc(1, sizeof(struct host_table_entry)); if (entry == NULL) { LogError("malloc of %zd bytes failed.", sizeof(struct host_table_entry)); -@@ -134,6 +138,8 @@ +@@ -134,6 +138,8 @@ remove_table_entry(TSS_HCONTEXT tspConte { struct host_table_entry *hte, *prev = NULL; @@ -55,7 +27,7 @@ MUTEX_LOCK(ht->lock); for (hte = ht->entries; hte; prev = hte, hte = hte->next) { -@@ -158,6 +164,8 @@ +@@ -158,6 +164,8 @@ get_table_entry(TSS_HCONTEXT tspContext) { struct host_table_entry *index = NULL; diff --git a/security/trousers/files/patch-src-tspi-rpc-tcstp-rpc.c b/security/trousers/files/patch-src-tspi-rpc-tcstp-rpc.c index 711938b712e0..5de4c2079f55 100644 --- a/security/trousers/files/patch-src-tspi-rpc-tcstp-rpc.c +++ b/security/trousers/files/patch-src-tspi-rpc-tcstp-rpc.c @@ -1,6 +1,6 @@ ---- src/tspi/rpc/tcstp/rpc.c.orig 2010-03-12 05:26:51.000000000 +0900 -+++ src/tspi/rpc/tcstp/rpc.c 2010-10-24 21:04:04.846552639 +0900 -@@ -306,7 +306,7 @@ +--- src/tspi/rpc/tcstp/rpc.c.orig 2014-04-24 18:05:44 UTC ++++ src/tspi/rpc/tcstp/rpc.c +@@ -304,7 +304,7 @@ recv_from_socket(int sock, void *buffer, errno = 0; if ((recv_size = recv(sock, buffer+recv_total, size-recv_total, 0)) <= 0) { if (recv_size < 0) { diff --git a/security/trousers/files/patch-src-tspi-tsp_tcsi_param.c b/security/trousers/files/patch-src-tspi-tsp_tcsi_param.c new file mode 100644 index 000000000000..5aae426603a1 --- /dev/null +++ b/security/trousers/files/patch-src-tspi-tsp_tcsi_param.c @@ -0,0 +1,15 @@ +--- src/tspi/tsp_tcsi_param.c.orig 2014-04-24 18:05:44 UTC ++++ src/tspi/tsp_tcsi_param.c +@@ -11,7 +11,12 @@ + #include <stdlib.h> + #include <string.h> + #include <stdio.h> ++#if !defined(__FreeBSD__) + #include <bits/local_lim.h> ++#else ++#include <sys/param.h> ++#define HOST_NAME_MAX MAXHOSTNAMELEN ++#endif + #include "trousers/tss.h" + #include "trousers/trousers.h" + #include "trousers_types.h" diff --git a/security/trousers/files/pkg-message.in b/security/trousers/files/pkg-message.in index 733f02f0fb60..c7fa46fea18c 100644 --- a/security/trousers/files/pkg-message.in +++ b/security/trousers/files/pkg-message.in @@ -1,9 +1,16 @@ -To run tcsd automatically, add the following line to /etc/rc.conf +To run tcsd automatically, add the following line to /etc/rc.conf: tcsd_enable="YES" You might want to edit %%PREFIX%%/etc/tcsd.conf to reflect your setup. +If you want to use tcsd with software TPM emulator, use the following +configuration in /etc/rc.conf: + +tcsd_enable="YES" +tcsd_mode="emulator" +tpmd_enable="YES" + To use TPM, add your_account to '%%GROUPS%%' group like following: # pw groupadd %%GROUPS%% -m your_account diff --git a/security/trousers/files/tcsd.in b/security/trousers/files/tcsd.in index 6f2f11ba3caf..f1ca44331c23 100644 --- a/security/trousers/files/tcsd.in +++ b/security/trousers/files/tcsd.in @@ -12,6 +12,9 @@ # # tcsd_enable (bool): Set to NO by default. # Set it to YES to enable tcsd. +# tcsd_mode (string): Set to "native" by default. +# Set it to "emulator" to use software TPM emulator. +# "emulator" depends on tpmd (emulators/tpm-emulator). . /etc/rc.subr @@ -24,15 +27,26 @@ required_files="%%PREFIX%%/etc/${name}.conf" tcsd_precmd() { /usr/bin/install -d -m 0700 -o %%USERS%% -g %%GROUPS%% \ - /var/run/tpm /var/run/ima %%PREFIX%%/var/lib/tpm + /var/run/tpm /var/run/ima %%PREFIX%%/var/lib/tpm /usr/sbin/chown %%USERS%%:%%GROUPS%% \ - %%PREFIX%%/etc/tcsd.conf + %%PREFIX%%/etc/tcsd.conf /bin/chmod 0600 \ - %%PREFIX%%/etc/tcsd.conf + %%PREFIX%%/etc/tcsd.conf } load_rc_config $name : ${tcsd_enable:="NO"} +: ${tcsd_mode:="native"} + +case $tcsd_mode in +emulator) + if checkyesno tpmd_enable; then + command="%%PREFIX%%/sbin/tcsd_emu" + else + err 1 "tcsd_mode=\"emulator\" requires tpmd_enable=\"YES\"." + fi +;; +esac run_rc_command "$1" diff --git a/security/trousers/pkg-plist b/security/trousers/pkg-plist index c70c820f5325..e6a16c7f0dbc 100644 --- a/security/trousers/pkg-plist +++ b/security/trousers/pkg-plist @@ -23,12 +23,16 @@ include/tss/tss_error.h include/tss/tss_error_basics.h include/tss/tss_structs.h include/tss/tss_typedef.h -%%TDDL%%lib/libtddl.a +lib/tddl/libtddl.a +lib/tddl/libtddl.so +lib/tddl/libtddl.so.0 +lib/tddl/libtddl.so.0.0.0 lib/libtspi.a lib/libtspi.so lib/libtspi.so.1 lib/libtspi.so.1.2.0 sbin/tcsd +sbin/tcsd_emu man/man3/Tspi_ChangeAuth.3.gz man/man3/Tspi_ChangeAuthAsym.3.gz man/man3/Tspi_Context_Close.3.gz @@ -48,12 +52,6 @@ man/man3/Tspi_Context_LoadKeyByBlob.3.gz man/man3/Tspi_Context_LoadKeyByUUID.3.gz man/man3/Tspi_Context_RegisterKey.3.gz man/man3/Tspi_Context_UnregisterKey.3.gz -man/man3/Tspi_DAA_IssueCredential.3.gz -man/man3/Tspi_DAA_IssueInit.3.gz -man/man3/Tspi_DAA_IssueSetup.3.gz -man/man3/Tspi_DAA_IssuerKeyVerification.3.gz -man/man3/Tspi_DAA_VerifyInit.3.gz -man/man3/Tspi_DAA_VerifySignature.3.gz man/man3/Tspi_Data_Bind.3.gz man/man3/Tspi_Data_Seal.3.gz man/man3/Tspi_Data_Unbind.3.gz @@ -92,10 +90,6 @@ man/man3/Tspi_TPM_ClearOwner.3.gz man/man3/Tspi_TPM_CollateIdentityRequest.3.gz man/man3/Tspi_TPM_CreateEndorsementKey.3.gz man/man3/Tspi_TPM_CreateMaintenanceArchive.3.gz -man/man3/Tspi_TPM_DAA_JoinCreateDaaPubKey.3.gz -man/man3/Tspi_TPM_DAA_JoinInit.3.gz -man/man3/Tspi_TPM_DAA_JoinStoreCredential.3.gz -man/man3/Tspi_TPM_DAA_Sign.3.gz man/man3/Tspi_TPM_DirRead.3.gz man/man3/Tspi_TPM_DirWrite.3.gz man/man3/Tspi_TPM_GetAuditDigest.3.gz @@ -113,11 +107,12 @@ man/man3/Tspi_TPM_OwnerGetSRKPubKey.3.gz man/man3/Tspi_TPM_PcrExtend.3.gz man/man3/Tspi_TPM_PcrRead.3.gz man/man3/Tspi_TPM_Quote.3.gz +man/man3/Tspi_TPM_Quote2.3.gz man/man3/Tspi_TPM_SelfTestFull.3.gz man/man3/Tspi_TPM_SetStatus.3.gz man/man3/Tspi_TPM_StirRandom.3.gz man/man3/Tspi_TPM_TakeOwnership.3.gz man/man5/tcsd.conf.5.gz man/man8/tcsd.8.gz -@sample(_tss,_tss,0600) etc/tcsd.conf.dist etc/tcsd.conf -@dir(_tss,_tss,0700) var/lib/tpm +@sample(%%USERS%%,%%GROUPS%%,0600) etc/tcsd.conf.sample +@dir(%%USERS%%,%%GROUPS%%,0700) var/lib/tpm |