Skip to content
/ cjose Public

C library implementing the Javascript Object Signing and Encryption (JOSE)

License

Notifications You must be signed in to change notification settings

cisco/cjose

Folders and files

NameName
Last commit message
Last commit date
Apr 11, 2018
Apr 25, 2019
Mar 15, 2016
Apr 11, 2018
May 11, 2019
Aug 3, 2018
Nov 14, 2016
Nov 13, 2016
Nov 14, 2016
Apr 11, 2018
Nov 14, 2016
Jun 14, 2016
Nov 14, 2016
Apr 11, 2018
Nov 14, 2016
Apr 11, 2018
Aug 4, 2016
Mar 15, 2016
Mar 15, 2016
Mar 15, 2016
Apr 11, 2018
Apr 11, 2018
Mar 15, 2016
Mar 15, 2016
Mar 14, 2016
Mar 15, 2016
Mar 15, 2016
Mar 15, 2016

Repository files navigation

cjose

Implementation of JOSE for C/C++

Prerequisites

MAC OS X All of the prerequisites can be installed via brew.

Build Tools

  • pkg-config (>= 0.20)
  • GNU Make >= 3.81
  • LLVM >= 5.1 or GCC >= 4.5
  • Autoconf (>= 2.69)
  • Automake (>= 1.14)
  • libtool (>= 2.4)
  • Check (>= 0.9.4) - unit testing (e.g. check-devel)
  • Doxygen (>= 1.8) - documentation
  • clang-format (= 3.9.0)

Libraries

  • OpenSSL >= 1.0.1h (or its API equivalent)
  • Jansson >= 2.3

Getting Started

As with most autoconf/automake projects:

git clone https://github.com/cisco/cjose.git
cd cjose
./configure && make

Common Options

--with-openssl: Specify the location where OpenSSL/CiscoSSL is installed
--with-jansson: Specify the location where Jansson is installed
--disable-shared: Only build static library

Debug Mode

To compile in debug mode (minimal optimization, active asserts, etc), specify the appropriate CFLAGS as a command-line argument when executing configure:

./configure CFLAGS="-g -O0 -DDEBUG"

Tests

To execute the unit tests:

make test

If successful, the list of checks will be displayed on the console. Otherwise, the file "test/test-suite.log" will list the specific test(s) that failed.

API Docs

To generate Doxygen API documentation:

make doxygen

Which will place the generated documentation in "doc/html".

From Scratch

To rebuild all of the project -- including those files generated by autoconf and automake:

autoreconf --force --install

Troubleshooting

Configure can't find check.h header file.

This has been seen on Mac OSX 10.8 and 10.9 when check has been installed via brew. A solution is to explicitly include the /usr/local/include directory in the cflags:

./configure CFLAGS="-I/usr/local/include"

Make fails due to many OpenSSL functions being "deprecated" or missing.

This has been seen on Mac OSX 10.9 when openssl 1.0.1h or newer has been installed via brew. A solution is to explicitly include the openssl directory in the configure command:

./configure --with-openssl=/usr/local/opt/openssl

Make fails due to json_* functions missing.

This has been seen on Mac OSX 10.9 when Jansson has been installed via brew. A solution is to explicitly include the jansson directory in the configure command:

./configure --with-jansson=/usr/local/opt/jansson

Contributing

Before Submitting PR

  • Run make clang-format
  • Run make test

About

C library implementing the Javascript Object Signing and Encryption (JOSE)

Resources

License

Stars

Watchers

Forks

Packages

No packages published