# nm ntd_mem_allocator.o | grep " [T|B|D] " # nm ntd_crypto_ecdsa.o | grep " [T|B|D] " # nm ntd_crypto_rsa.o | grep " [T|B|D] " # nm generate_id.o | grep " [T|B|D] " # nm ../rsa_keysrcgen/rsa1_key.o | grep " [T|B|D] " # 最終的なビルドスイッチの設定は、以下の通り。 # DEV_CYGWIN = FALSE # DEBUG_PRINT = FALSE # DEBUG_OUTPUT = FALSE # ECDSA_SHA256 = TRUE # USE_HSM = TRUE # RESET_HSM = TRUE DEV_CYGWIN = FALSE DEBUG_PRINT = TRUE DEBUG_OUTPUT = FALSE ECDSA_SHA256 = TRUE USE_HSM = TRUE RESET_HSM = FALSE ifeq ($(USE_HSM),TRUE) # HSM使用時は強制的にDUMMY_KEYは未使用にする。 USE_DUMMY_KEY = FALSE # nFast Path NFAST_PATH = /opt/nfast # nFast Developer tools installation NFAST_DEV_PATH = $(NFAST_PATH)/c/ctd/gcc NFAST_EXAMPLES = $(NFAST_PATH)/c/ctd/examples # nFast Developer tools library NFAST_LIBPATH = $(NFAST_DEV_PATH)/lib # nFast Developer tools include NFAST_INC = $(NFAST_DEV_PATH)/include # nFast CPPFLAGS NFAST_CPPFLAGS = \ -I$(NFAST_INC)/sworld \ -I$(NFAST_INC)/hilibs \ -I$(NFAST_INC)/nflog \ -I$(NFAST_INC)/cutils \ -I$(NFAST_EXAMPLES)/sworld \ -I$(NFAST_EXAMPLES)/hilibs \ -I$(NFAST_EXAMPLES)/nflog \ -I$(NFAST_EXAMPLES)/cutils \ # nFast LDLIBS NFAST_LDLIBS = \ $(NFAST_LIBPATH)/libnfkm.a \ $(NFAST_LIBPATH)/libnfstub.a \ $(NFAST_LIBPATH)/libnflog.a \ $(NFAST_LIBPATH)/libcutils.a \ else # !USE_HSM # HSMが使用できない場合は、DUMMY_KEYを使ってテストする。 USE_DUMMY_KEY = TRUE endif # USE_HSM ifeq ($(USE_DUMMY_KEY),TRUE) DEV_DER_KEY_DIR = ./dummyKey/dev PROD_DER_KEY_DIR = ./dummyKey/prod else # !USE_DUMMY_KEY DEV_DER_KEY_DIR = ./realKey/dev PROD_DER_KEY_DIR = ./realKey/prod endif # USE_DUMMY_KEY PACKAGE_DIR = ./package OPENSSL_DIR = ./openssl-1.0.0-beta5 # OPENSSL_DIR = ./openssl-0.9.8k TARGET_LIB = libgenid.a TARGET = outputSharpID KEYS_C = cr_eFuse_iv_prod.c \ cr_eFuse_iv_dev.c \ cr_NCT2_pub_prod.c \ cr_NCT2_pub_dev.c ifeq ($(USE_DUMMY_KEY),TRUE) KEYS_C += cr_eFuse_privKey_prod.c cr_eFuse_pubKey_prod.c \ cr_eFuse_privKey_dev.c cr_eFuse_pubKey_dev.c \ cr_eFuse_aesKey_prod.c \ cr_eFuse_aesKey_dev.c \ cr_NCT2_priv_prod.c \ cr_NCT2_priv_dev.c endif # USE_DUMMY_KEY SRCS = main3.c OBJS = $(notdir $(SRCS:.c=.o)) LIB_SRCS = cr_generate_id.c cr_id_util.c cr_keyPair.c \ cr_device_cert.c cr_enc_id.c cr_alloc.c \ cr_hsm_code.c cr_hsm_alloc.c cr_hsm_bignum.c LIB_OBJS = $(notdir $(LIB_SRCS:.c=.o)) CFLAGS = -Wall -DMEXP=216091 -msse2 -DHAVE_SSE2 CPPFLAGS= -I. -I$(OPENSSL_DIR)/include -I$(OPENSSL_DIR)/crypto/ec LDFLAGS = -mwindows -L$(OPENSSL_DIR) LDLIBS = -lcrypto -lssl MERGE_PROG = merge_lib_objs.plx ifeq ($(DEV_CYGWIN),TRUE) CC := C:/Cygwin/bin/gcc-3 LD = C:/Cygwin/bin/gcc-3 CFLAGS += -mno-cygwin -DDEV_CYGWIN LDFLAGS += -Wl,--subsystem,console -mno-cygwin TARGET_DEL = $(TARGET).exe else # DEV_CYGWIN CC := /usr/bin/gcc LD = /usr/bin/gcc LDFLAGS += -Wl LDLIBS += -ldl -lnsl TARGET_DEL = $(TARGET) endif # DEV_CYGWIN ifeq ($(USE_DUMMY_KEY),TRUE) CFLAGS += -DUSE_DUMMY_KEY endif ifeq ($(DEBUG_PRINT),TRUE) CFLAGS += -DDEBUG_PRINT endif ifeq ($(DEBUG_OUTPUT),TRUE) CFLAGS += -DDEBUG_OUTPUT_FILE endif ifeq ($(ECDSA_SHA256),TRUE) CFLAGS += -DECDSA_SHA256 endif ifeq ($(USE_HSM),TRUE) CFLAGS += -DUSE_HSM CPPFLAGS+= $(NFAST_CPPFLAGS) LDLIBS += $(NFAST_LDLIBS) MERGE_PROG = merge_lib_objs_hsm.plx endif ifeq ($(RESET_HSM),TRUE) CFLAGS += -DRESET_HSM endif .SUFFIXES: all: package_build $(KEYS_C) $(TARGET_LIB) $(TARGET) # install: $(TARGET) # install -c -m 777 $(TARGET) ../bin ifeq ($(DEV_CYGWIN),TRUE) package_build : cd $(PACKAGE_DIR);make DEV_CYGWIN=TRUE else package_build : cd $(PACKAGE_DIR);make endif $(TARGET): $(OBJS) $(TARGET_LIB) $(LD) $(LDFLAGS) $(OBJS) -o $@ $(TARGET_LIB) $(TARGET_LIB): $(LIB_OBJS) ar rcs $@ $(LIB_OBJS) perl tools/$(MERGE_PROG) %.o:%.c $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ #%.c:$(DER_KEY_DIR)/%.der # perl tools/bin2c.plx $< cr_eFuse_privKey_prod.c : $(PROD_DER_KEY_DIR)/eFuse_privKey.der perl tools/bin2c.plx $< prod cr_eFuse_pubKey_prod.c : $(PROD_DER_KEY_DIR)/eFuse_pubKey.der perl tools/bin2c.plx $< prod cr_eFuse_aesKey_prod.c : $(PROD_DER_KEY_DIR)/eFuse_aesKey.bin perl tools/bin2c.plx $< prod cr_eFuse_iv_prod.c : $(PROD_DER_KEY_DIR)/eFuse_iv.bin perl tools/bin2c.plx $< prod cr_NCT2_priv_prod.c : $(PROD_DER_KEY_DIR)/NCT2_priv.der perl tools/bin2c.plx $< prod cr_NCT2_pub_prod.c : $(PROD_DER_KEY_DIR)/NCT2_pub.der perl tools/bin2c.plx $< prod cr_eFuse_privKey_dev.c : $(DEV_DER_KEY_DIR)/eFuse_privKey.der perl tools/bin2c.plx $< dev cr_eFuse_pubKey_dev.c : $(DEV_DER_KEY_DIR)/eFuse_pubKey.der perl tools/bin2c.plx $< dev cr_eFuse_aesKey_dev.c : $(DEV_DER_KEY_DIR)/eFuse_aesKey.bin perl tools/bin2c.plx $< dev cr_eFuse_iv_dev.c : $(DEV_DER_KEY_DIR)/eFuse_iv.bin perl tools/bin2c.plx $< dev cr_NCT2_priv_dev.c : $(DEV_DER_KEY_DIR)/NCT2_priv.der perl tools/bin2c.plx $< dev cr_NCT2_pub_dev.c : $(DEV_DER_KEY_DIR)/NCT2_pub.der perl tools/bin2c.plx $< dev .PHONY: clean clobber clean: $(RM) $(LIB_OBJS) $(OBJS) $(TARGET_DEL) $(TARGET_LIB) $(KEYS_C) $(KEYS_H) clobber: $(RM) $(LIB_OBJS) $(OBJS) $(TARGET_DEL) $(TARGET_LIB) $(KEYS_C) $(KEYS_H) cd $(PACKAGE_DIR);make clobber