Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
strobe-rs
This is a pure Rust, no_std implementation of the Strobe protocol framework. The designer's description:
Strobe is a new framework for cryptographic protocols. It can also be used for regular encryption. Its goals are to make cryptographic protocols much simpler to develop, deploy and analyze; and to fit into even tiny IoT devices. To that end, it uses only one block function — Keccak-f — to encrypt and authenticate messages.
This implementation currently only supports Keccak-f[1600] (the highest security level) as the internal permutation function.
Example
A simple example that does authenticated encryption and decryption:
use ;
use RngCore;
// NOTE: This is just a simple authenticated encryption scheme. For a robust AEAD construction,
// see the example at https://strobe.sourceforge.io/examples/aead/
Features
Default features flags: none
Feature flag list:
asm— Enables optimized assembly for the Keccak permutation, if available. Assembly currently only exists for ARMv8.serialize_secret_state— Implementsserde'sSerializeandDeserializetraits for theStrobestruct. SECURITY NOTE: Serializing Strobe state outputs security sensitive data that MUST be kept private. Treat the data as you would a private encryption/decryption key.std— Required for running known-answer tests. Use only when testing.
For info on how to omit or include feature flags, see the cargo docs on features.
MSRV
The current minimum supported Rust version (MSRV) is 1.81.0 (2024-09-04).
Tests
To run tests, execute
cargo test --features "std"
This includes known-answer tests, which test against JSON-encoded test vectors in the kat/ directory. To verify these test vectors against the reference Python implementation, cd into kat/, run python2 verify_test_vector.py and follow the included instructions.
Benchmarks
To benchmark, run
cargo bench
This will produce a summary with plots in target/crieteron/report/index.html. These won't be very interesting, since almost every function in STROBE has the same runtime.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Warning
This code has not been audited in any sense of the word. Use at your own discretion.