t-rust-less-lib

Crates.iot-rust-less-lib
lib.rst-rust-less-lib
version0.2.18
sourcesrc
created_at2020-07-04 13:34:33.389112
updated_at2024-06-02 09:05:51.15495
descriptionPassword manager library
homepage
repositoryhttps://github.com/untoldwind/t-rust-less
max_upload_size
id261307
size682,945
Bodo Junglas (untoldwind)

documentation

README

t-rust-less

Build Status

Spritual successor of https://github.com/untoldwind/trustless taking over the concepts that worked, improving those that did not turned out so well and avoiding all the quirky stuff (potentially by replacing it with new quirky stuff).

Some major changes:

  • t-rust-less is a ground up rewrite in rust (as the name suggests)
  • ... which allows a much better control over memory and protecting/cleaning up sensitive data.
  • For the most part trustless tried to be compatible with gpg, t-rust-less drops this idea entirely in favor of adding some modern ciphers and key-derivations to the mix.
  • ... which essentially means that a trustless store will not be compatible with a t-rust-less whatsoever. Sorry, but an export -> import will be required.

Building

Best use the ./build-release.sh script with will bootstrap a docker container containing all the relevant dependencies.

Otherwise you need:

  • Rust version >=1.34
  • If you want to make changes to api.capnp or secret_store.capnp you also need the Capn Proto compiler (capnpc), i.e. install capnproto package.
  • For openssl-sys perl is required

Cross-Compile

To windows (library only atm)

Building (on Archlinux)

On one needs AUR mingw-w64-gcc, mingw-w64-crt (or mingw-w64-gcc-bin, mingw-w64-crt-bin).

Add ~/.cargo/config:

[target.x86_64-pc-windows-gnu]
linker = "/usr/bin/x86_64-w64-mingw32-gcc"
ar = "/usr/x86_64-w64-mingw32/bin/ar"
cd cli; cargo build --target x86_64-pc-windows-gnu --features crossterm_backend --no-default-features --release

(unluckily we cannot automatically toggle features based on target)

If you get an linkage error with __onexitbegin, __onexitend, most likely the crt2.o does not match:

mv ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/crt2.o  ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/crt2.o.bak
cp /usr/x86_64-w64-mingw32/lib/crt2.o ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/crt2.o

To wasm (library only)

Prepare

Requires emscripten.

Building

cargo build --release --target=wasm32-unknown-emscripten

Tests

Some tests are pretty slow and will be ignored during a regular development cycle with cargo test. To run the full suit for regression:

cargo test --release
Commit count: 308

cargo fmt