Index: tpm/tpm_deprecated.c =================================================================== --- tpm/tpm_deprecated.c (revision 300) +++ tpm/tpm_deprecated.c (working copy) @@ -444,7 +444,7 @@ buf = ptr = tpm_malloc(len); if (buf == NULL) return TPM_NOSPACE; if (tpm_rsa_decrypt(&ephKey->key, scheme, encNewAuth, newAuthSize, - buf, &size) + buf, (size_t*)&size) || (len = size) == 0 || tpm_unmarshal_TPM_CHANGEAUTH_VALIDATE(&ptr, &len, &a1)) { debug("TPM_ChangeAuthAsymFinish(): tpm_rsa_decrypt() failed."); Index: tpmd/tpm_emulator_config.h =================================================================== --- tpmd/tpm_emulator_config.h (revision 300) +++ tpmd/tpm_emulator_config.h (working copy) @@ -129,6 +129,24 @@ #define BE16_TO_CPU(x) be16toh(x) #define LE16_TO_CPU(x) le16toh(x) +#elif defined (__APPLE__) + +#include + +#define CPU_TO_BE64(x) OSSwapHostToBigInt64(x) +#define CPU_TO_LE64(x) OSSwapHostToLittleInt64(x) +#define CPU_TO_BE32(x) OSSwapHostToBigInt32(x) +#define CPU_TO_LE32(x) OSSwapHostToLittleInt32(x) +#define CPU_TO_BE16(x) OSSwapHostToBigInt16(x) +#define CPU_TO_LE16(x) OSSwapHostToLittleInt16(x) + +#define BE64_TO_CPU(x) OSSwapBigToHostInt64(x) +#define LE64_TO_CPU(x) OSSwapLittleToHostInt64(x) +#define BE32_TO_CPU(x) OSSwapBigToHostInt32(x) +#define LE32_TO_CPU(x) OSSwapLittleToHostInt32(x) +#define BE16_TO_CPU(x) OSSwapBigToHostInt16(x) +#define LE16_TO_CPU(x) OSSwapLittleToHostInt16(x) + #endif #endif /* _TPM_EMULATOR_CONFIG_H_ */ Index: tpmd/tpmd.c =================================================================== --- tpmd/tpmd.c (revision 300) +++ tpmd/tpmd.c (working copy) @@ -43,9 +43,15 @@ static int is_daemon = 0; static int opt_debug = 0; static int opt_foreground = 0; +#if __APPLE__ +static const char *opt_socket_name = "/tmp/tpm/" TPM_DAEMON_NAME "_socket:0"; +static const char *opt_storage_file = "/tmp/tpm/tpm_emulator-1.2." + TPM_STR(VERSION_MAJOR) "." TPM_STR(VERSION_MINOR); +#else static const char *opt_socket_name = "/var/run/tpm/" TPM_DAEMON_NAME "_socket:0"; -static const char *opt_storage_file = "/var/lib/tpm/tpm_emulator-1.2." +static const char *opt_storage_file = "/var/run/tpm/tpm_emulator-1.2." TPM_STR(VERSION_MAJOR) "." TPM_STR(VERSION_MINOR); +#endif static uid_t opt_uid = 0; static gid_t opt_gid = 0; static int tpm_startup = 2; Index: tddl/tddl.c =================================================================== --- tddl/tddl.c (revision 300) +++ tddl/tddl.c (working copy) @@ -27,7 +27,11 @@ /* device and socket names */ static const char *tpm_device_name = "/dev/tpm"; +#if __APPLE__ +static const char *tpmd_socket_name = "/tmp/tpm/tpmd_socket:0"; +#else static const char *tpmd_socket_name = "/var/run/tpm/tpmd_socket:0"; +#endif /* TPM device handle */ static int tddli_dh = -1; Index: tddl/Makefile =================================================================== --- tddl/Makefile (revision 300) +++ tddl/Makefile (working copy) @@ -9,21 +9,40 @@ -Wwrite-strings -Wsign-compare -Wno-multichar #WFLAGS += -Wextra -Wcast-qual -Wmissing-prototypes -Wmissing-declarations -Wstrict-aliasing CFLAGS += $(WFLAGS) -O2 +OSNAME := $(shell uname) +ifeq ($(OSNAME), Darwin) +TDDL_NAME := libtddl +TDDL := $(TDDL_NAME).dylib +TDDLSO1 := $(TDDL_NAME).1.2.dylib +TDDLSO2 := $(TDDL_NAME).1.2.0.dylib + +LIBDIR := /usr/local/lib/ +INCDIR := /usr/local/include/ +else TDDL := libtddl.so TDDLSO1 := $(TDDL).1.2 TDDLSO2 := $(TDDL).1.2.0 LIBDIR := /usr/lib/ INCDIR := /usr/include/ +endif all: $(TDDL) +ifeq ($(OSNAME), Darwin) +$(TDDL): tddl.c tddl.h + $(CC) $(CFLAGS) -c -o tddl.o tddl.c + $(CC) -dynamiclib -o $(TDDLSO2) -install_name $(LIBDIR)/$(TDDLSO1) tddl.o + test -s $(TDDLSO1) || ln -s $(TDDLSO2) $(TDDLSO1) + test -s $(TDDL) || ln -s $(TDDLSO1) $(TDDL) +else $(TDDL): tddl.c tddl.h $(CC) $(CFLAGS) -fPIC -c -o tddl.o tddl.c $(CC) -shared -o $(TDDLSO2) -Wl,-soname,$(TDDLSO1) tddl.o test -s $(TDDLSO1) || ln -s $(TDDLSO2) $(TDDLSO1) test -s $(TDDL) || ln -s $(TDDLSO1) $(TDDL) +endif test_tddl: test_tddl.c $(CC) $(CFLAGS) -I. -L. test_tddl.c -ltddl -o test_tddl @@ -40,8 +59,13 @@ $(INSTALL) -m 644 $(TDDLSO2) $(DESTDIR)/$(LIBDIR) cd $(DESTDIR)/$(LIBDIR); ln -s $(TDDLSO2) $(TDDLSO1); ln -s $(TDDLSO1) $(TDDL); cd - +ifeq ($(OSNAME), Darwin) +test: test_tddl + DYLD_LIBRARY_PATH=. ./test_tddl +else test: test_tddl LD_LIBRARY_PATH=. ./test_tddl +endif .PHONY: all clean install test Index: Makefile =================================================================== --- Makefile (revision 300) +++ Makefile (working copy) @@ -10,7 +10,13 @@ VERSION_BUILD := $(shell date +"%s") VERSION_SUFFIX := .2beta +OSNAME := $(shell uname) + +ifeq ($(OSNAME), Darwin) +SUBDIRS := tpmd tddl +else SUBDIRS := tpmd tpmd_dev tddl +endif all: version all-recursive