4 releases (breaking)

0.15.0 Oct 26, 2024
0.14.0 Aug 2, 2024
0.10.0 Aug 10, 2023
0.8.0 Jun 8, 2023

#2237 in Cryptography

Download history 19/week @ 2024-08-30 3/week @ 2024-09-06 26/week @ 2024-09-13 32/week @ 2024-09-20 47/week @ 2024-09-27 13/week @ 2024-10-04 10/week @ 2024-10-11 8/week @ 2024-10-18 143/week @ 2024-10-25 19/week @ 2024-11-01 8/week @ 2024-11-15 12/week @ 2024-11-22 16/week @ 2024-11-29 29/week @ 2024-12-06 11/week @ 2024-12-13

70 downloads per month
Used in 10 crates (6 directly)

Custom license

36KB
800 lines

Sentc

from Sentclose

An end-to-end encryption sdk for developer with user management.

Available in:

  • Javascript for the web
  • Dart with flutter
  • Rust

Contains

  • User management: Register, login, authentication, authorisation
  • Group management: Invite or add member, role management, group encryption
  • Handling large files in browser and native

Build from source

Requirements:

  • Rust MRV 1.75.0
  • For flutter:
    • flutter_rust_bridge_codegen (cargo install flutter_rust_bridge_codegen)
    • cargo-ndk
    • llvm
    • flutter ffi (dart pub global activate ffigen)
  • For Javascript:
    • wasm-pack
    • node js min. version 14 lts

Build for rust

Build rust in the current workspace.

cargo build --release

Build javascript (wasm)

  1. Build with wasm pack in implementation/js/sentc_wasm
cd ./implementation/js/sentc_wasm
wasm-pack build --target web 
  1. Build typescript code in implementation/js/sentc_wasm
cd ./implementation/js/sentc_wasm
npm run build

Build flutter

Build with flutter rust bridge and cargo-ndk.

  1. In the current workspace, generate the flutter code
flutter_rust_bridge_codegen --rust-input implementation/dart/sentc_flutter_rust/src/sentc.rs --dart-output implementation/dart/sentc/lib/generated.dart --llvm-path <path-to-your-llvm>
  1. build the android code with cargo-ndk in implementation/dart/sentc_flutter_rust
cd ./implementation/dart/sentc_flutter_rust
cargo ndk -t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 -o ../sentc/android/src/main/jniLibs build --release

lib.rs:

Sentclose crypto crate

This create is non_std with alloc

used alg:

  • Password hashing
    • argon2
  • symmetric encryption:
    • aes gcm
  • asymmetric encryption:
    • ecies based on x25519
  • signing
    • ed25519
  • hmac
    • hmac sha256

This create can be used as stand-alone version without the sentclose api

Dependencies

~455–710KB
~14K SLoC