#stronghold #utils #audit #secret

stronghold-utils

Utils for the iota_stronghold library

1 unstable release

0.3.0 Apr 21, 2021
Download history 230/week @ 2021-06-26 321/week @ 2021-07-03 337/week @ 2021-07-10 428/week @ 2021-07-17 233/week @ 2021-07-24 468/week @ 2021-07-31 48/week @ 2021-08-07 232/week @ 2021-08-14 438/week @ 2021-08-21 383/week @ 2021-08-28 133/week @ 2021-09-04 46/week @ 2021-09-11 317/week @ 2021-09-18 121/week @ 2021-09-25 194/week @ 2021-10-02 221/week @ 2021-10-09

354 downloads per month
Used in 3 crates

Apache-2.0

11KB
246 lines

banner

status Audit Test docs coverage dependency status FOSSA Status

Introduction

IOTA Stronghold is a secure software implementation with the sole purpose of isolating digital secrets from exposure to hackers and accidental leaks. It uses encrypted snapshots that can be easily backed up and securely shared between devices. Written in stable rust, it has strong guarantees of memory safety and process integrity.

There are four main components of Stronghold:

  1. Client: The high-level interface to Stronghold (prefers Riker, functional integration also available)
  2. Engine: Combines a persistence store (Snapshot) with an in-memory state interface (Vault), a read/write key:value system (Store) and memory protection services (Runtime).
  3. Communication: Enables Strongholds in different processes or on different devices to communicate with each other securely.

3rd Party Independent Security Audit

In April of 2021, F-Secure performed a security assessment of the core crates of IOTA Stronghold and found nothing of concern. This is not an explicit declaration of fitness or freedom of error, but it is an indicator of the high quality of the code. You may review the audit here.

Roadmap

Here are some of the features and tasks that we are working on.

Components

  • Engine
  • Client (with dual interfaces)
  • peer-to-peer communications
  • Secure runtime zone
  • Integration with crypto.rs

Documentation and Specification

  • User Handbooks
  • Specification Documentation
  • Tutorials

Performance and Testing

  • Unit Tests
  • Lowlevel Library Fuzzing
  • Realworld tests
  • Multiplatform benchmarks
  • Continuous Fuzzing

Applications

  • CLI binary
  • Dynamic high-performance store
  • Standalone Desktop Application
  • Portable Daemon (for nodes, etc)
  • C FFI bindings

Hardware Integrations

  • Works with USB Armory Mk II
  • [ ] Works with Yubikey
  • Works with Ledger Nano X
  • Use Secure Element to generate private keys for decryption
  • Move entirely to FPGA

API Reference

Do it yourself

cargo doc --workspace --no-deps --open

Running Tests

cargo test --all --all-features

Joining the discussion

If you want to get involved in discussions about this technology, or you're looking for support, go to the #stronghold-discussion channel on Discord.

If you wish to join the Stronghold X-Team, please fill out this form.

License

FOSSA Status

Dependencies

~7.5MB
~162K SLoC