Skip to content
SimonKadel edited this page Apr 7, 2014 · 15 revisions

Welcome to the whisper-library wiki!

You can find information about what you can do with this project and how you can do it. You should start by compiling the library. See Compiling instructions on how this is done.

Contents

Use the library in your own project

Developers can use the library in their own project. To do so you first have to include the library header files in your project, which can be found from the library root in "whisperLibrary/include".

Depending on your environment you can either do this by adding the include directly to your system path, define a cmake variable that includes the path or set the include directory directly in your IDE (e.g. in Visual Studio in your project settings -> C/C++ -> additional include directories).

See How to use the library for information about some important methods

Write your own covert channel

The whisper-library can be extended by adding your own Covert Channels. To do so, you have to implement the interface defined in covertchannel.hpp. Every class implementing this interface can be added to the framework by calling

ChannelManager::addCovertChannel(CovertChannel* channel).

See How to write your own covert channel for more information and an example.

Use the Pidgin plugin

In this project we have written a Pidgin plugin that uses the whisper-library to send your messages over covert channels. When you have successfully build the project, you should find a file called whisperLibraryPidgin (.dll under windows, .so under unix) somewhere in your build directory. Copy this into your plugin folder and restart Pidgin. You should be able to select "Whisper Library" as protocol.

See How to use the Pidgin plugin for detailed information

Further documentation

A full documentation of the library, including all classes and methods, can be found here. In case a rebuild of the documentation is needed you can use the "doc/doxygen/whisperLibraryConfig" with Doxygen ( http://www.stack.nl/~dimitri/doxygen/index.html ) to generate a new documentation based on your local code.

Contributing to the Project

New Contributors to the project are always welcome, however there are some guidelines that should be followed to ensure code quality.

  1. Code Conventions

    As Code Conventions we're using an excerpt of the Google C++ Style Guide (http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml). You can find the excerpt here: Code Conventions.

  2. Documentation rules

    The code is commented with markings for doxygen, which we use to generate a full documentation of our code. You can find a documentation of documenting with doxygen here: http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html

  3. Commitment Rules

    3.1 Try to prevent overly big commits where you edited multiple files for a multiple of reasons. If possible make topic-based commits (e.g. "Added Documentation to classes x, y and z.")

    3.2 Push files only with unix new line characters (git on windows has an automatic conversion option that you can use).