| diff --git csrc/configure csrc/configure |
| index 962d76a..43ec3ea 100755 |
| --- csrc/configure |
| +++ csrc/configure |
| @@ -39,7 +39,7 @@ TryAppend "`uname -sr | sed -e 's/ /-/g'`" |
| TryAppend "local" |
| TryScript "`uname`" "$@" |
| TryScript "local" "$@" |
| -ProvideDefault CPREFLAGS = -I../include |
| +ProvideDefault CPREFLAGS = -I../include ${CFLAGS:-} |
| ProvideDefault PCAP_PROGRAMS = ccndumppcap |
| ProvideDefault RESOLV_LIBS = -lresolv |
| ProvideDefault INSTALL_BASE = ${INSTALL_BASE:-/usr/local} |
| diff --git csrc/lib/ccn_client.c csrc/lib/ccn_client.c |
| index 606fd36..a3392fc 100644 |
| --- csrc/lib/ccn_client.c |
| +++ csrc/lib/ccn_client.c |
| @@ -2607,23 +2607,58 @@ ccn_chk_signing_params(struct ccn *h, |
| temp = ccn_charbuf_create(); |
| if (default_pubid == NULL || temp == NULL) |
| return(NOTE_ERRNO(h)); |
| - ccnx_dir = getenv("CCNX_DIR"); |
| - if (ccnx_dir == NULL || ccnx_dir[0] == 0) { |
| - home = getenv("HOME"); |
| - if (home == NULL) |
| - home = ""; |
| - ccn_charbuf_putf(temp, "%s/.ccnx/.ccnx_keystore", home); |
| + |
| + res = -1; |
| +#ifdef CCNX_DIR |
| + if (res < 0 || default_pubid->length != sizeof(result->pubid)) { |
| + // check preconfigured directory |
| + ccnx_dir = CCNX_DIR; |
| + if (ccnx_dir != NULL && ccnx_dir[0] != 0) { |
| + ccn_charbuf_reset(temp); |
| + ccn_charbuf_putf(temp, "%s/.ccnx_keystore", ccnx_dir); |
| + |
| + res = ccn_load_private_key(h, |
| + ccn_charbuf_as_string(temp), |
| + "Th1s1sn0t8g00dp8ssw0rd.", |
| + default_pubid); |
| + } |
| } |
| - else |
| +#endif |
| + |
| + if (res < 0 || default_pubid->length != sizeof(result->pubid)) { |
| + // check CCNX_DIR |
| + ccnx_dir = getenv("CCNX_DIR"); |
| + if (ccnx_dir != NULL && ccnx_dir[0] != 0) { |
| + ccn_charbuf_reset(temp); |
| ccn_charbuf_putf(temp, "%s/.ccnx_keystore", ccnx_dir); |
| - res = ccn_load_private_key(h, |
| - ccn_charbuf_as_string(temp), |
| - "Th1s1sn0t8g00dp8ssw0rd.", |
| - default_pubid); |
| + |
| + res = ccn_load_private_key(h, |
| + ccn_charbuf_as_string(temp), |
| + "Th1s1sn0t8g00dp8ssw0rd.", |
| + default_pubid); |
| + } |
| + } |
| + |
| + if (res < 0 || default_pubid->length != sizeof(result->pubid)) { |
| + // check HOME |
| + home = getenv("HOME"); |
| + if (home != NULL) { |
| + ccn_charbuf_reset(temp); |
| + ccn_charbuf_putf(temp, "%s/.ccnx/.ccnx_keystore", home); |
| + res = ccn_load_private_key(h, |
| + ccn_charbuf_as_string(temp), |
| + "Th1s1sn0t8g00dp8ssw0rd.", |
| + default_pubid); |
| + } |
| + } |
| + |
| if (res == 0 && default_pubid->length == sizeof(result->pubid)) { |
| h->default_pubid = default_pubid; |
| default_pubid = NULL; |
| } |
| + else { |
| + ccn_perror(h, ccn_charbuf_as_string(temp)); |
| + } |
| } |
| if (h->default_pubid == NULL) |
| res = NOTE_ERRNO(h); |
| diff --git csrc/lib/ccn_initkeystore.sh csrc/lib/ccn_initkeystore.sh |
| index 12bc9e3..a171a0e 100755 |
| --- csrc/lib/ccn_initkeystore.sh |
| +++ csrc/lib/ccn_initkeystore.sh |
| @@ -15,6 +15,7 @@ |
| # Create a ccn keystore without relying on java |
| : ${RSA_KEYSIZE:=1024} |
| : ${CCN_USER:=`id -n -u`} |
| +: ${CCNX_HOME:=.ccnx} |
| Fail () { |
| echo '*** Failed' "$*" |
| exit 1 |
| @@ -37,6 +38,7 @@ countryName_default = AU |
| countryName_min = 2 |
| countryName_max = 2 |
| EOF |
| +RANDFILE=.rnd |
| openssl req -config openssl.cnf \ |
| -newkey rsa:$RSA_KEYSIZE \ |
| -x509 \ |
| diff --git csrc/lib/dir.mk csrc/lib/dir.mk |
| index 6489299..145eec7 100644 |
| --- csrc/lib/dir.mk |
| +++ csrc/lib/dir.mk |
| @@ -78,7 +78,7 @@ shlib: $(SHLIBNAME) |
| lib: libccn.a |
| |
| test: default keystore_check encodedecodetest ccnbtreetest |
| - ./encodedecodetest -o /dev/null |
| + ./encodedecodetest -k $(CCNX_DIR)/.ccnx_keystore -o /dev/null |
| ./ccnbtreetest |
| ./ccnbtreetest - < q.dat |
| rm -R _bt_* |
| @@ -87,12 +87,12 @@ dtag_check: _always |
| @./gen_dtag_table 2>/dev/null | diff - ccn_dtag_table.c | grep '^[<]' >/dev/null && echo '*** Warning: ccn_dtag_table.c may be out of sync with tagnames.cvsdict' || : |
| |
| keystore_check: ccn_initkeystore.sh |
| - test -f "$$HOME/.ccnx/.ccnx_keystore" || $(MAKE) -f dir.mk new_keystore |
| + test -f "$(CCNX_DIR)/.ccnx_keystore" || $(MAKE) -f dir.mk new_keystore |
| |
| new_keystore: |
| @echo === CCNx Keystore not found in your home directory |
| @echo === I will create one for you now '(^C to abort)' |
| - sleep 1 && sh ccn_initkeystore.sh && sleep 3 && mv .ccnx "$$HOME" |
| + sleep 1 && sh ccn_initkeystore.sh && sleep 3 && mkdir -p "$(CCNX_DIR)/" && mv .ccnx/.ccnx_keystore "$(CCNX_DIR)/" |
| |
| libccn.a: $(LIB_OBJS) |
| ar crus $@ $(LIB_OBJS) |
| @@ -113,7 +113,7 @@ skel_decode_test: skel_decode_test.o |
| basicparsetest: basicparsetest.o libccn.a |
| $(CC) $(CFLAGS) -o $@ basicparsetest.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto |
| |
| -encodedecodetest: encodedecodetest.o |
| +encodedecodetest: encodedecodetest.o libccn.a |
| $(CC) $(CFLAGS) -o $@ encodedecodetest.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto |
| |
| ccn_digest.o: |
| @@ -149,16 +149,16 @@ ccn_fetch.o: |
| ccn_verifysig.o: |
| $(CC) $(CFLAGS) $(OPENSSL_CFLAGS) -c ccn_verifysig.c |
| |
| -ccn_verifysig: ccn_verifysig.o |
| +ccn_verifysig: ccn_verifysig.o libccn.a |
| $(CC) $(CFLAGS) -o $@ ccn_verifysig.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto |
| |
| signbenchtest.o: |
| $(CC) $(CFLAGS) $(OPENSSL_CFLAGS) -c signbenchtest.c |
| |
| -signbenchtest: signbenchtest.o |
| +signbenchtest: signbenchtest.o libccn.a |
| $(CC) $(CFLAGS) -o $@ signbenchtest.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto |
| |
| -ccndumppcap: ccndumppcap.o |
| +ccndumppcap: ccndumppcap.o libccn.a |
| $(CC) $(CFLAGS) -o $@ ccndumppcap.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto -lpcap |
| |
| ccnbtreetest.o: |