Added KeyChain and link to libssl
diff --git a/Makefile.am b/Makefile.am
index 3ee6529..8c688ba 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,6 +44,7 @@
ndn-cpp/common.hpp ndn-cpp/common.cpp \
ndn-cpp/data.cpp ndn-cpp/c/data.h ndn-cpp/data.hpp \
ndn-cpp/interest.cpp ndn-cpp/c/interest.h ndn-cpp/interest.hpp \
+ ndn-cpp/key-chain.cpp ndn-cpp/key-chain.hpp \
ndn-cpp/key.cpp ndn-cpp/c/key.h ndn-cpp/key.hpp \
ndn-cpp/face.cpp ndn-cpp/face.hpp \
ndn-cpp/name.cpp ndn-cpp/c/name.h ndn-cpp/name.hpp \
@@ -63,7 +64,7 @@
bin_test_encode_decode_interest_LDADD = libndn-cpp.la libndn-c.la
bin_test_encode_decode_data_SOURCES = tests/test-encode-decode-data.cpp
-bin_test_encode_decode_data_LDADD = libndn-cpp.la libndn-c.la
+bin_test_encode_decode_data_LDADD = libndn-cpp.la libndn-c.la $(OPENSSL_LIBS)
bin_test_get_async_SOURCES = tests/test-get-async.cpp
bin_test_get_async_LDADD = libndn-cpp.la libndn-c.la
diff --git a/Makefile.in b/Makefile.in
index 860a24f..1c6e2fc 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -152,8 +152,9 @@
am__v_lt_1 =
libndn_cpp_la_LIBADD =
am_libndn_cpp_la_OBJECTS = ndn-cpp/common.lo ndn-cpp/data.lo \
- ndn-cpp/interest.lo ndn-cpp/key.lo ndn-cpp/face.lo \
- ndn-cpp/name.lo ndn-cpp/encoding/binary-xml-element-reader.lo \
+ ndn-cpp/interest.lo ndn-cpp/key-chain.lo ndn-cpp/key.lo \
+ ndn-cpp/face.lo ndn-cpp/name.lo \
+ ndn-cpp/encoding/binary-xml-element-reader.lo \
ndn-cpp/encoding/binary-xml-wire-format.lo \
ndn-cpp/encoding/wire-format.lo \
ndn-cpp/transport/tcp-transport.lo \
@@ -165,7 +166,9 @@
tests/test-encode-decode-data.$(OBJEXT)
bin_test_encode_decode_data_OBJECTS = \
$(am_bin_test_encode_decode_data_OBJECTS)
-bin_test_encode_decode_data_DEPENDENCIES = libndn-cpp.la libndn-c.la
+am__DEPENDENCIES_1 =
+bin_test_encode_decode_data_DEPENDENCIES = libndn-cpp.la libndn-c.la \
+ $(am__DEPENDENCIES_1)
am_bin_test_encode_decode_interest_OBJECTS = \
tests/test-encode-decode-interest.$(OBJEXT)
bin_test_encode_decode_interest_OBJECTS = \
@@ -356,6 +359,9 @@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
@@ -366,6 +372,7 @@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -483,6 +490,7 @@
ndn-cpp/common.hpp ndn-cpp/common.cpp \
ndn-cpp/data.cpp ndn-cpp/c/data.h ndn-cpp/data.hpp \
ndn-cpp/interest.cpp ndn-cpp/c/interest.h ndn-cpp/interest.hpp \
+ ndn-cpp/key-chain.cpp ndn-cpp/key-chain.hpp \
ndn-cpp/key.cpp ndn-cpp/c/key.h ndn-cpp/key.hpp \
ndn-cpp/face.cpp ndn-cpp/face.hpp \
ndn-cpp/name.cpp ndn-cpp/c/name.h ndn-cpp/name.hpp \
@@ -501,7 +509,7 @@
bin_test_encode_decode_interest_SOURCES = tests/test-encode-decode-interest.cpp
bin_test_encode_decode_interest_LDADD = libndn-cpp.la libndn-c.la
bin_test_encode_decode_data_SOURCES = tests/test-encode-decode-data.cpp
-bin_test_encode_decode_data_LDADD = libndn-cpp.la libndn-c.la
+bin_test_encode_decode_data_LDADD = libndn-cpp.la libndn-c.la $(OPENSSL_LIBS)
bin_test_get_async_SOURCES = tests/test-get-async.cpp
bin_test_get_async_LDADD = libndn-cpp.la libndn-c.la
dist_noinst_SCRIPTS = autogen.sh
@@ -672,6 +680,8 @@
ndn-cpp/$(DEPDIR)/$(am__dirstamp)
ndn-cpp/interest.lo: ndn-cpp/$(am__dirstamp) \
ndn-cpp/$(DEPDIR)/$(am__dirstamp)
+ndn-cpp/key-chain.lo: ndn-cpp/$(am__dirstamp) \
+ ndn-cpp/$(DEPDIR)/$(am__dirstamp)
ndn-cpp/key.lo: ndn-cpp/$(am__dirstamp) \
ndn-cpp/$(DEPDIR)/$(am__dirstamp)
ndn-cpp/face.lo: ndn-cpp/$(am__dirstamp) \
@@ -809,6 +819,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/data.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/face.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/interest.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/key-chain.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/key.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/$(DEPDIR)/name.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ndn-cpp/c/$(DEPDIR)/errors.Plo@am__quote@
diff --git a/configure b/configure
index 26ca5d1..d786058 100755
--- a/configure
+++ b/configure
@@ -678,6 +678,10 @@
DX_DOCDIR
DX_CONFIG
DX_PROJECT
+OPENSSL_LDFLAGS
+OPENSSL_LIBS
+OPENSSL_INCLUDES
+PKG_CONFIG
HAVE_CXX11
CXXCPP
am__fastdepCXX_FALSE
@@ -814,6 +818,7 @@
with_gnu_ld
with_sysroot
enable_libtool_lock
+with_openssl
enable_doxygen_doc
enable_doxygen_dot
enable_doxygen_man
@@ -1491,6 +1496,7 @@
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot=DIR Search for dependent libraries within DIR
(or the compiler's sysroot if not specified).
+ --with-openssl=DIR root of the OpenSSL directory
Some influential environment variables:
CC C compiler command
@@ -15511,6 +15517,157 @@
fi
+ found=false
+
+# Check whether --with-openssl was given.
+if test "${with_openssl+set}" = set; then :
+ withval=$with_openssl;
+ case "$withval" in
+ "" | y | ye | yes | n | no)
+ as_fn_error $? "Invalid --with-openssl value" "$LINENO" 5
+ ;;
+ *) ssldirs="$withval"
+ ;;
+ esac
+
+else
+
+ # if pkg-config is installed and openssl has installed a .pc file,
+ # then use that information and don't search ssldirs
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test x"$PKG_CONFIG" != x""; then
+ OPENSSL_LDFLAGS=`$PKG_CONFIG openssl --libs-only-L 2>/dev/null`
+ if test $? = 0; then
+ OPENSSL_LIBS=`$PKG_CONFIG openssl --libs-only-l 2>/dev/null`
+ OPENSSL_INCLUDES=`$PKG_CONFIG openssl --cflags-only-I 2>/dev/null`
+ found=true
+ fi
+ fi
+
+ # no such luck; use some default ssldirs
+ if ! $found; then
+ ssldirs="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr"
+ fi
+
+
+fi
+
+
+
+ # note that we #include <openssl/foo.h>, so the OpenSSL headers have to be in
+ # an 'openssl' subdirectory
+
+ if ! $found; then
+ OPENSSL_INCLUDES=
+ for ssldir in $ssldirs; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ssl.h in $ssldir" >&5
+$as_echo_n "checking for openssl/ssl.h in $ssldir... " >&6; }
+ if test -f "$ssldir/include/openssl/ssl.h"; then
+ OPENSSL_INCLUDES="-I$ssldir/include"
+ OPENSSL_LDFLAGS="-L$ssldir/lib"
+ OPENSSL_LIBS="-lssl -lcrypto"
+ found=true
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ break
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ done
+
+ # if the file wasn't found, well, go ahead and try the link anyway -- maybe
+ # it will just work!
+ fi
+
+ # try the preprocessor and linker with our new flags,
+ # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiling and linking against OpenSSL works" >&5
+$as_echo_n "checking whether compiling and linking against OpenSSL works... " >&6; }
+ echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \
+ "OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&5
+
+ save_LIBS="$LIBS"
+ save_LDFLAGS="$LDFLAGS"
+ save_CPPFLAGS="$CPPFLAGS"
+ LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
+ LIBS="$OPENSSL_LIBS $LIBS"
+ CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <openssl/ssl.h>
+int
+main ()
+{
+SSL_new(NULL)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for std::shared_ptr" >&5
$as_echo_n "checking for std::shared_ptr... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
diff --git a/configure.ac b/configure.ac
index 205cffd..4bcfd0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,6 +12,7 @@
AC_LANG([C++])
AX_CXX_COMPILE_STDCXX_11(, optional)
+AX_CHECK_OPENSSL
AC_MSG_CHECKING([for std::shared_ptr])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(