A fork of the sequoia backend for the engine for patches. A backend for the p≡p Engine built on Sequoia. CI: https://pep-security.lu/gitlab/cid/mirrors/pEpEngineSequoiaBackend/-/pipelines
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Neal Walfield 297869b4bd
Add Cargo.lock file.
3 months ago
.cargo Add ci. 1 year ago
.ci Add ci. 1 year ago
src Update chrono to 0.4.23. 3 months ago
.codespellrc Add ci. 1 year ago
.gitignore Add a .gitignore file. 1 year ago
.gitlab-ci.yml Use cargo and rustc 1.60 or later. 4 months ago
COPYING Add a COPYING file. 1 year ago
Cargo.lock Add Cargo.lock file. 3 months ago
Cargo.toml Update chrono to 0.4.23. 3 months ago
README.md Use cargo and rustc 1.60 or later. 4 months ago
build.rs Fix path in build.rs. 1 year ago
pep_engine_sequoia_backend.pc.in Fix the package config template and generate it automatically. 1 year ago

README.md

This library provides an implementation of the p≡p Engine's cryptotech interface using Sequoia.

Building

You need at least version 1.60 of rustc and cargo.

You can build this library as follows:

$ git clone https://gitea.pep.foundation/pEp.foundation/pEpEngineSequoiaBackend.git
$ cd pEpEngineSequoiaBackend
$ mkdir -p /tmp/pep_engine_sequoia_backend
$ CARGO_TARGET_DIR=/tmp/pep_engine_sequoia_backend cargo build # Add --release for a release build
$ CARGO_TARGET_DIR=/tmp/pep_engine_sequoia_backend cargo test

This will generate, among others /tmp/pep_engine_sequoia_backend/debug/pep_engine_sequoia_backend.pc. This can be used to easily link to the library in place. That is, no installation is required.

Hence to build and test the engine, we can do:

$ cd ~/src/pEpEngine
$ export PKG_CONFIG_PATH=/tmp/pep_engine_sequoia_backend/debug${PKG_CONFIG_PATH+:$PKG_CONFIG_PATH}
$ make
$ LD_LIBRARY_PATH=$(for p in $(pkg-config pep_engine_sequoia_backend --libs-only-L); do echo ${p#-L}; done | paste -sd ':')${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH} RUST_BACKTRACE=1 make -C test test

Of course when installing the engine, we'll need to distribute the generated library.

Note: when profiling the library (or doing a release), be sure to build in release mode! That is, build the library with cargo build --release and replace debug with release in the second set of commands.

When built in debug mode, the library always generates trace output. If you encounter problems in release mode, you can get a trace of the library's execution by setting the PEP_TRACE environment variable. For example:

$ cd ~/src/pEpEngine/test
$ PKG_CONFIG_PATH=/tmp/pep_engine_sequoia_backend/debug${PKG_CONFIG_PATH+:$PKG_CONFIG_PATH} LD_LIBRARY_PATH=$(for p in $(pkg-config pep_engine_sequoia_backend --libs-only-L); do echo ${p#-L}; done | paste -sd ':')${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH} PEP_TRACE=1 ./EngineTests -- --gtest_filter=DeleteKeyTest.check_delete_single_pubkey