Wiki

Clone wiki

libmikey-sakke / Home

Libmikey-sakke

Libmikey-sakke, its associated demonstrator projects—Minisip MIKEY-SAKKE (GTK desktop and Android GUI), PJSIP MIKEY-SAKKE (portable console and BlackBerry 10 and iPhone GUI), BlackBerry Linphone MIKEY-SAKKE (BlackBerry 7 CLDC SIP phone)—and the MIKEY-SAKKE Key Management Service (KMS) server, are the result of a research project to implement the MIKEY-SAKKE key exchange scheme in a range of SIP phone applications across a range of platforms (including, but not limited to, smart-phones).

Contents

Provided libraries

Native C++

Interface is compliant with Standard C++11 (though supported on pre-C++11 compilers and standard libraries)

The above libraries have been built with various standard libraries on various platforms. In particular the following C++ implementations have been recently tested:

  • GCC (>= 4.6) with GNU libstdc++ in C++11 mode.
  • Clang with libc++ in C++11 mode.
  • GCC 4.4 with GNU libstdc++ in C++03/98 mode (uses TR1 for required C++11 interfaces).
  • GCC with Dinkum C++98 library (uses boost as substitute for required C++11 interfaces).

and the following targets:

  • i686 and x86_64 GNU libc / Linux (various versions of GNU libc and Linux kernel).
  • ARM EABI eGlibc / Linux (various versions of GNU libc and Linux kernel).
  • ARM EABI Android newlib / Linux.
  • x86_64 Darwin 12.
  • ARM Darwin 10.
  • i486 and ARM EABI QNX Neutrino (6 and 8)
  • libmscrypto also built for Windows (both 32-bit and 64-bit).

Java 6, Java ME, BlackBerry 6

  • MikeySakke-<Target>.jar (where <Target> is the build variant) Note: the archive is currently named MikeySakkeTest-<Target>.jar for historical reasons and because it contains executable test programs as well as the library code
    • Java 6 reimplementation of the C++ libraries.
    • Byte-code translation used to generate Java ME and BlackBerry specialized versions.
    • Integrates MIKEY4J (a port of Minisip's libmikey) extended with SAKKE support
    • Single API for all targets.

Native C

Provided applications

Provided tools




Building

Each library component may be built individually via GNU make (version 3.82 is required). There are a number of third-party dependencies, each of which are made available to the build system via an environment variable pointing to that library's extracted (or checked-out) directory.

The libmikey-sakke repository provides build scripts for all third-party dependencies and the library itself.

The build system is intended to be invoked in the same manner for all targets. Builds for multiple targets can be done within a single source checkout (that goes for the third-party libraries also). In each case, a target-specific subdirectory is created within the source-tree for that build.

For more details see:




Old Links

Updated