blob: 5c98dda0cd508d60fc58d793f57994abd1683b7e [file] [log] [blame]
Alexander Afanasyev9944ebc2012-08-20 18:40:12 -07001diff --git csrc/configure csrc/configure
2index 962d76a..43ec3ea 100755
3--- csrc/configure
4+++ csrc/configure
5@@ -39,7 +39,7 @@ TryAppend "`uname -sr | sed -e 's/ /-/g'`"
6 TryAppend "local"
7 TryScript "`uname`" "$@"
8 TryScript "local" "$@"
9-ProvideDefault CPREFLAGS = -I../include
10+ProvideDefault CPREFLAGS = -I../include ${CFLAGS:-}
11 ProvideDefault PCAP_PROGRAMS = ccndumppcap
12 ProvideDefault RESOLV_LIBS = -lresolv
13 ProvideDefault INSTALL_BASE = ${INSTALL_BASE:-/usr/local}
14diff --git csrc/lib/ccn_client.c csrc/lib/ccn_client.c
Alexander Afanasyev196c6722012-08-20 18:49:33 -070015index 606fd36..a3392fc 100644
Alexander Afanasyev9944ebc2012-08-20 18:40:12 -070016--- csrc/lib/ccn_client.c
17+++ csrc/lib/ccn_client.c
Alexander Afanasyev196c6722012-08-20 18:49:33 -070018@@ -2607,23 +2607,58 @@ ccn_chk_signing_params(struct ccn *h,
Alexander Afanasyev9944ebc2012-08-20 18:40:12 -070019 temp = ccn_charbuf_create();
20 if (default_pubid == NULL || temp == NULL)
21 return(NOTE_ERRNO(h));
22- ccnx_dir = getenv("CCNX_DIR");
23- if (ccnx_dir == NULL || ccnx_dir[0] == 0) {
24- home = getenv("HOME");
25- if (home == NULL)
26- home = "";
27- ccn_charbuf_putf(temp, "%s/.ccnx/.ccnx_keystore", home);
28+
29+ res = -1;
30+#ifdef CCNX_DIR
31+ if (res < 0 || default_pubid->length != sizeof(result->pubid)) {
32+ // check preconfigured directory
33+ ccnx_dir = CCNX_DIR;
34+ if (ccnx_dir != NULL && ccnx_dir[0] != 0) {
35+ ccn_charbuf_reset(temp);
36+ ccn_charbuf_putf(temp, "%s/.ccnx_keystore", ccnx_dir);
37+
38+ res = ccn_load_private_key(h,
39+ ccn_charbuf_as_string(temp),
40+ "Th1s1sn0t8g00dp8ssw0rd.",
41+ default_pubid);
42+ }
43 }
44- else
45+#endif
46+
47+ if (res < 0 || default_pubid->length != sizeof(result->pubid)) {
48+ // check CCNX_DIR
49+ ccnx_dir = getenv("CCNX_DIR");
50+ if (ccnx_dir != NULL && ccnx_dir[0] != 0) {
51+ ccn_charbuf_reset(temp);
52 ccn_charbuf_putf(temp, "%s/.ccnx_keystore", ccnx_dir);
53- res = ccn_load_private_key(h,
54- ccn_charbuf_as_string(temp),
55- "Th1s1sn0t8g00dp8ssw0rd.",
56- default_pubid);
57+
58+ res = ccn_load_private_key(h,
59+ ccn_charbuf_as_string(temp),
60+ "Th1s1sn0t8g00dp8ssw0rd.",
61+ default_pubid);
62+ }
63+ }
64+
65+ if (res < 0 || default_pubid->length != sizeof(result->pubid)) {
66+ // check HOME
67+ home = getenv("HOME");
68+ if (home != NULL) {
69+ ccn_charbuf_reset(temp);
70+ ccn_charbuf_putf(temp, "%s/.ccnx/.ccnx_keystore", home);
71+ res = ccn_load_private_key(h,
72+ ccn_charbuf_as_string(temp),
73+ "Th1s1sn0t8g00dp8ssw0rd.",
74+ default_pubid);
75+ }
76+ }
77+
78 if (res == 0 && default_pubid->length == sizeof(result->pubid)) {
79 h->default_pubid = default_pubid;
80 default_pubid = NULL;
81 }
82+ else {
83+ ccn_perror(h, ccn_charbuf_as_string(temp));
84+ }
85 }
86 if (h->default_pubid == NULL)
87 res = NOTE_ERRNO(h);
88diff --git csrc/lib/ccn_initkeystore.sh csrc/lib/ccn_initkeystore.sh
89index 12bc9e3..a171a0e 100755
90--- csrc/lib/ccn_initkeystore.sh
91+++ csrc/lib/ccn_initkeystore.sh
92@@ -15,6 +15,7 @@
93 # Create a ccn keystore without relying on java
94 : ${RSA_KEYSIZE:=1024}
95 : ${CCN_USER:=`id -n -u`}
96+: ${CCNX_HOME:=.ccnx}
97 Fail () {
98 echo '*** Failed' "$*"
99 exit 1
100@@ -37,6 +38,7 @@ countryName_default = AU
101 countryName_min = 2
102 countryName_max = 2
103 EOF
104+RANDFILE=.rnd
105 openssl req -config openssl.cnf \
106 -newkey rsa:$RSA_KEYSIZE \
107 -x509 \
Alexander Afanasyev9944ebc2012-08-20 18:40:12 -0700108diff --git csrc/lib/dir.mk csrc/lib/dir.mk
109index 6489299..145eec7 100644
110--- csrc/lib/dir.mk
111+++ csrc/lib/dir.mk
112@@ -78,7 +78,7 @@ shlib: $(SHLIBNAME)
113 lib: libccn.a
114
115 test: default keystore_check encodedecodetest ccnbtreetest
116- ./encodedecodetest -o /dev/null
117+ ./encodedecodetest -k $(CCNX_DIR)/.ccnx_keystore -o /dev/null
118 ./ccnbtreetest
119 ./ccnbtreetest - < q.dat
120 rm -R _bt_*
121@@ -87,12 +87,12 @@ dtag_check: _always
122 @./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' || :
123
124 keystore_check: ccn_initkeystore.sh
125- test -f "$$HOME/.ccnx/.ccnx_keystore" || $(MAKE) -f dir.mk new_keystore
126+ test -f "$(CCNX_DIR)/.ccnx_keystore" || $(MAKE) -f dir.mk new_keystore
127
128 new_keystore:
129 @echo === CCNx Keystore not found in your home directory
130 @echo === I will create one for you now '(^C to abort)'
131- sleep 1 && sh ccn_initkeystore.sh && sleep 3 && mv .ccnx "$$HOME"
132+ sleep 1 && sh ccn_initkeystore.sh && sleep 3 && mkdir -p "$(CCNX_DIR)/" && mv .ccnx/.ccnx_keystore "$(CCNX_DIR)/"
133
134 libccn.a: $(LIB_OBJS)
135 ar crus $@ $(LIB_OBJS)
136@@ -113,7 +113,7 @@ skel_decode_test: skel_decode_test.o
137 basicparsetest: basicparsetest.o libccn.a
138 $(CC) $(CFLAGS) -o $@ basicparsetest.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto
139
140-encodedecodetest: encodedecodetest.o
141+encodedecodetest: encodedecodetest.o libccn.a
142 $(CC) $(CFLAGS) -o $@ encodedecodetest.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto
143
144 ccn_digest.o:
145@@ -149,16 +149,16 @@ ccn_fetch.o:
146 ccn_verifysig.o:
147 $(CC) $(CFLAGS) $(OPENSSL_CFLAGS) -c ccn_verifysig.c
148
149-ccn_verifysig: ccn_verifysig.o
150+ccn_verifysig: ccn_verifysig.o libccn.a
151 $(CC) $(CFLAGS) -o $@ ccn_verifysig.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto
152
153 signbenchtest.o:
154 $(CC) $(CFLAGS) $(OPENSSL_CFLAGS) -c signbenchtest.c
155
156-signbenchtest: signbenchtest.o
157+signbenchtest: signbenchtest.o libccn.a
158 $(CC) $(CFLAGS) -o $@ signbenchtest.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto
159
160-ccndumppcap: ccndumppcap.o
161+ccndumppcap: ccndumppcap.o libccn.a
162 $(CC) $(CFLAGS) -o $@ ccndumppcap.o $(LDLIBS) $(OPENSSL_LIBS) -lcrypto -lpcap
163
164 ccnbtreetest.o: