Skip to content
forked from equalitie/np1sec

A library for off-the-record (deniable authenticated forward secure confidential) multiparty messaging

License

Notifications You must be signed in to change notification settings

florianap/np1sec

 
 

Repository files navigation

np1sec

Build Status

Multiparty communication security implementation of the protocol described by this paper

(n+1)sec

Debug

To debug with gdb

libtool --mode=execute gdb -i=mi xmpp_test

Building

The following instructions describe the steps required to build np1sec from scratch on a freshly installed system running debian 8.1 stable. It is assumed that software such as git and build-essential are already present.

The following process builds all the necessary dependencies to run the np1sec executable test code. Once built, running the tests allows us to verify that the library code works as expected, at which point developers can use the library in their application. Individuals running the tests should not observe any errors.

Commands prefixed with # are to be run as root or a super user. Those prefixed with $ can (should) be run as an unprivileged user.

autoconf

$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
$ tar -xzf autoconf-2.69.tar.gz
$ cd autoconf-2.69
$ ./configure
$ make
# make install
$ cd ..

automake

$ wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
$ tar -xzf automake-1.15.tar.gz
$ cd automake-1.15
$ ./configure
$ make
# make install
$ cd ..

libtool

$ wget http://gnu.mirror.iweb.com/libtool/libtool-2.4.6.tar.gz
$ tar -xzf libtool-2.4.6.tar.gz
$ cd libtool-2.4.6
$ ./configure
$ make
# make install
$ cd ..

libgpg-error

# apt-get install gettext
$ wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.19.tar.bz2
$ tar -xvf libgpg-error-1.19.tar.bz2
$ cd libgpg-error-1.19
$ ./autogen.sh
$ ./configure
$ make
# make install
$ cd ..

libgcrypt

Here we will install Vmon's branch of libgcrypt. np1sec relies on having access to the secret exponent generated by libgcrypt when keys are generted. Vmon's code adds an interface to access the exponent.

# apt-get install libpurple0 libpurple-dev
# apt-get install libglib2.0-0 libglib2.0-dev
# apt-get install libevent-2.0-5 libevent-dev
# apt-get install xfig
$ git clone -b vmon-eddh https://github.com/equalitie/libgcrypt.git
$ cd libgcrypt
$ ./autogen.sh
$ ./configure --enable-maintainer-mode
$ make
# make install
$ cd ..

haveged

Haveged is used to generate entropy more quickly. You may or may not want it.

# apt-get install haveged

np1sec

$ wget https://equalit.ie/public/np1sec.tar.gz
$ tar -xzf np1sec.tar.gz
$ cd np1sec
$ ./configure
$ make

Run the tests

The following session tests will be run. Session tests are responsible for ensuring that encrypted multi-party chat sessions are conducted securely.

test_ression_forward_secrecy
test_cb_ack_not_received
test_cb_send_ack
test_init
test_second_join
test_solitary_talk
test_join_talk
test_three_party_chat
test_solitary_leave
test_leave_from_2p_conv
test_immature_leave_from_2p_conv
test_concurrent_join
test_concurrent_join_leave
$ ./libnp1sec_test

About

A library for off-the-record (deniable authenticated forward secure confidential) multiparty messaging

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 47.1%
  • HTML 37.9%
  • Python 4.9%
  • Shell 4.2%
  • C 4.0%
  • JavaScript 0.9%
  • Other 1.0%