stronghold-runtime 0.3.0

Runtime and allocation primitives for stronghold
Documentation
# Changelog

## \[0.3.0]

- Added zeroing allocator to the runtime.\
  Placed zeroing allocator in the vualt.
  - [a960e50]https://www.github.com/iotaledger/stronghold.rs/commit/a960e50a591e82e74df12093513a136594a5f8e6 add changes. on 2021-03-12
- Add documentation and cleanup the code for these crates and modules in preparation for beta.
  - [dae0457]https://www.github.com/iotaledger/stronghold.rs/commit/dae04579cb20ad69a7aecdf102fb66ecac4aaf46 Beta Cleanup ([#166]https://www.github.com/iotaledger/stronghold.rs/pull/166) on 2021-03-19
- Add functionality to enable the guarded memory allocator in the zone when
  running on POSIX (Linux, MacOS targets). The major contribution is a toggleable
  memory allocator that can be used to work around rust's enforcement of only
  one `#[global_allocator]`.
  - [7e68346]https://www.github.com/iotaledger/stronghold.rs/commit/7e6834669e0d458bbf152d0b8a0c18791b2a856e Add a changelog message on 2021-01-04
  - [42ed9d6]https://www.github.com/iotaledger/stronghold.rs/commit/42ed9d6b5fe93f7cf7ecb1b9591bd10de9c35e58 fix(covector) ([#162]https://www.github.com/iotaledger/stronghold.rs/pull/162) on 2021-03-12
- Address two new clippy warnings: `needless_lifetimes` (addressed in the vault)
  and `unnecessary_cast` (ignored in the runtime since they are necessary for
  portability: `0 as libc::c_char` is not necessarily the same as `0_u8`).
  - [1614243]https://www.github.com/iotaledger/stronghold.rs/commit/161424322af84bd4626aac5a3f96b0c529d7b39a Add a changelog message on 2021-01-04
  - [42ed9d6]https://www.github.com/iotaledger/stronghold.rs/commit/42ed9d6b5fe93f7cf7ecb1b9591bd10de9c35e58 fix(covector) ([#162]https://www.github.com/iotaledger/stronghold.rs/pull/162) on 2021-03-12
- Remove Crypto, Random and Primitives libraries in favor of Crypto.rs
  Moved Runtime into the engine.
  Add new guarded types for Runtime and remove old logic.

## Features:

- Causes segfault upon access without borrow
- Protects using mprotect
- Adds guard pages proceeding and following the allocated memory.
- Adds a canary pointer to detect underflows.
- Locks memory with mlock.
- Frees memory using munlock
- Memory is zeroed when no longer in use through sodium_free
- Can be compared in constant time
- Can not be printed using debug
- Can not be cloned using the Clone trait.

Implement guarded types in Vault to protect the data and the keys.
Clean up logic inside of the Client library.

- [dd65b67]https://www.github.com/iotaledger/stronghold.rs/commit/dd65b67f42718150c7c7dbab9606ee2167cf11ce add changes. on 2021-03-11
- [829ecac]https://www.github.com/iotaledger/stronghold.rs/commit/829ecac2e8090d478706c673cd45f1b91a60b2de fix(covector) ([#164]https://www.github.com/iotaledger/stronghold.rs/pull/164) on 2021-03-12

## \[0.2.0]

- Add `arm` architecture mmap and linker for USB Armory.
  - [2b20e85]https://www.github.com/iotaledger/stronghold.rs/commit/2b20e85fee1997a1739c66a12df14e4573eae60a feat(target): arm-unknown-linux-gnueabihf target for usbarmory ([#90]https://www.github.com/iotaledger/stronghold.rs/pull/90) on 2020-12-20
- Alpha release of Stronghold: "Saint-Malo"
  - [4b6f4af]https://www.github.com/iotaledger/stronghold.rs/commit/4b6f4af29f6c21044f5063ec4a8d8aff643f81a7 chore(release) ([#105]https://www.github.com/iotaledger/stronghold.rs/pull/105) on 2020-12-24
  - [06c6d51]https://www.github.com/iotaledger/stronghold.rs/commit/06c6d513dfcd1ba8ed6379177790ec6db28a6fea fix(changelog): Alpha Release ([#106]https://www.github.com/iotaledger/stronghold.rs/pull/106) on 2020-12-24