open-eid / libdigidocpp

Libdigidocpp library offers creating, signing and verification of digitally signed documents, according to XAdES and XML-DSIG standards. Documentation http://open-eid.github.io/libdigidocpp
Other
97 stars 45 forks source link
asice c-plus-plus linux osx signature signing ubuntu windows xades xmldsig

libdigidocpp

European Regional Development Fund

Building

Build Status Coverity Scan Build Status

Ubuntu, Fedora

  1. Install dependencies

    # Ubuntu
    sudo apt install cmake libxml2-dev libxmlsec1-dev zlib1g-dev
    # Fedora
    sudo dnf install cmake gcc-c++ openssl-devel libxml2-devel xmlsec1-openssl-devel zlib-devel
    • doxygen - Optional, for API documentation
    • libboost-test-dev - Optional, for unittests
    • swig - Optional, for C#, Java and python bindings
    • libpython3-dev, python3-setuptools - Optional, for python bindings
    • openjdk-17-jdk-headless - Optional, for Java bindings
  2. Fetch the source

    git clone --recursive https://github.com/open-eid/libdigidocpp
    cd libdigidocpp
  3. Configure

    cmake -B build -S .
  4. Build

    cmake --build build
  5. Install

    sudo cmake --build build --target install
  6. Execute

    /usr/local/bin/digidoc-tool

macOS

  1. Install dependencies from

  2. Fetch the source

    git clone --recursive https://github.com/open-eid/libdigidocpp
    cd libdigidocpp
  3. Prepare dependencies (available targets: macos, iphoneos, iphonesimulator, androidarm, androidarm64, androidx86_64)

    sh prepare_osx_build_environment.sh macos all
  4. Install dependencies

    brew install pkg-config ninja
    • doxygen - Optional, for API documentation
    • boost - Optional, for unittests
    • swig - Optional, for C# and Java bindings
    • openjdk - Optional, for Java bindings
  5. Configure, build and install (available presets: macos, iphoneos, iphonessimulator, androidarm, androidarm64, androidx86_64)

    cmake --preset macos
    cmake --build --preset macos
    sudo cmake --build --preset macos --target install
  6. Execute

    /Library/Frameworks/digidocpp.framework/Resources/digidoc-tool

Windows

  1. Install dependencies and necessary tools from

    Toolset:

    • 142 - Visual Studio 2019 (Default)
    • 143 - Visual Studio 2022
  2. Fetch the source

    git clone --recursive https://github.com/open-eid/libdigidocpp
    cd libdigidocpp
  3. Configure

    cmake -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake `
          -DVCPKG_TARGET_TRIPLET=x64-windows `
          -DVCPKG_MANIFEST_FEATURES=tests `
          -B build -S .

    Optional CMake parameters:

    -DSWIG_EXECUTABLE=C:/swigwin-4.2.1/swig.exe

    After running the cmake build, digidoc_csharp.dll along with the C# source files will be created, more info at examples/DigiDocCSharp/README.md.

  4. Build

    cmake --build build
  5. Alternative to steps 4. and 5. -

    powershell -ExecutionPolicy ByPass -File build.ps1 -platform x64

    The build script builds executables and installation media for given platform (Debug and Release with debug symbols)

  6. Execute

    build/src/digidoc-tool.exe

Examples

examples/README.md

Support

Official builds are provided through official distribution point id.ee. If you want support, you need to be using official builds. Contact our support via www.id.ee for assistance.

Source code is provided on "as is" terms with no warranty (see license for more information). Do not file Github issues with generic support requests.