utils
Utility crates used in RustCrypto (by RustCrypto)
block-ciphers
Collection of block cipher algorithms written in pure Rust (by RustCrypto)
utils | block-ciphers | |
---|---|---|
8 | 7 | |
404 | 635 | |
2.5% | 1.7% | |
8.9 | 7.6 | |
11 days ago | about 2 months ago | |
Rust | Rust | |
- | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
utils
Posts with mentions or reviews of utils.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-22.
-
Announcing `compact_str` version 0.7! A small string optimization for Rust
I didn't use any inline asm, instead I wrote the simplest if statement possible, which I confirmed on x86_64, x86, and aarch64 compiles down to use the platform's supported conditional move instructions. If this changes in the future and there's a need to write inline asm, you can do so in a portable way, e.g. the cmov crate.
-
Shoot me straight.
There's also cpufeatures which might suit your use case better (depending on exactly how you want to do it).
-
Crate for AES256 - which one to choose? Questions about block cipher modes and AEAD too.
I have seen that RustCrypto also offers a create for securely zeroing memory with: zeroize
-
`kindly`: a simplistic (and hopefully educational) implementation of a set-user-ID-root program (think mini `sudo`) for Linux
The zeroing routine itself looks fine to me. You might want to compare your code with the (already mentioned) zeroize crate, which does something similar (or maybe identical?).
-
Maybe found a Y2k bug in the rust-crypto DER-encoding util?
To save a few clicks, this was found to be, indeed, a Y2K issue, and der v0.4.1 has just been released to fix it. Citing the comment added to the issue after the fact:
-
Incredibly fast UTF-8 validation
I opened a tracking issue for that.
-
Now that the long-awaited const generics (MVP) have come to stable in 1.51, what crates are going to gain the most from it?
https://github.com/RustCrypto/utils/pull/325#issuecomment-791503136
block-ciphers
Posts with mentions or reviews of block-ciphers.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-04-10.
-
Hey Rustaceans! Got a question? Ask here (15/2023)!
If found this set of crates for other algorithms : https://github.com/RustCrypto/hashes And also found this set of crates that seem to include a lot of block cyphers : https://github.com/RustCrypto/block-ciphers Even if "des" is listed as a crate in this last link, it doesn't seem to provide the DES algorithm entirely.
-
Cargo complains over yanked dependency
If you are trying to use it as a library in your own crate then I would suggest looking at the [patch.crates-io] section of your Cargo.toml. It should allow you to override the dependency and point it to something else. Under that section set aes = { git = 'https://github.com/RustCrypto/block-ciphers', rev = 'e59142b26edcaa5e287c7e5067be8a501b42f9cb' }, changing the rev key to whichever commit has the right version of the crate when it was published. Then do the same for block-cipher and any others that it cannot find the version for but with the correct repository and commit.
-
Crate for AES256 - which one to choose? Questions about block cipher modes and AEAD too.
aes (GitHub: RustCrypto / block-ciphers / aes) good: still maintained as of now - last commit on GitHub is from October 2021 good: examples look easy to use good: has received an audit by NCC Group bad: seems a bit too low level - the example provided only shows usage with data that is exactly block sized - seems there is no padding handling for real world use cases
- Benchmarking symmetric encryption (AEAD) in Rust
-
Encrypting Data Between Raspberry Pi 4s Using PyCryptodome
I have no idea which libraries have the best code for Raspberry Pi 4. I think it doesn't have hardware AES, so an implementation of AES that doesn't leak secret bits through side channels and is fast would be complicated. The code I would trust is this: https://github.com/RustCrypto/block-ciphers but I have no idea whether it has python bindings. I would also sorry about correctly reusing buffers or else the memory allocation would be the bottleneck.
-
How to encrypt text file with Rust?
You should look at this this: https://github.com/rust-cc/awesome-cryptography-rust and you probably need this: https://github.com/RustCrypto/block-ciphers
-
Pure Functional cipher
For example, here is a bitsliced AES S-box written in single assignment form. Granted that's not the entire cipher, but the entire cipher can be implemented that way if you so desire.
What are some alternatives?
When comparing utils and block-ciphers you can also consider the following projects:
reference - The Rust Reference
rust-crypto - A (mostly) pure-Rust implementation of various cryptographic algorithms.
sudo_pair - Plugin for sudo that requires another human to approve and monitor privileged sudo sessions
RCIG_Coordination_Repo - A Coordination repo for all things Rust Cryptography oriented
heapless - Heapless, `static` friendly data structures
tailscale - The easiest, most secure way to use WireGuard and 2FA.
dsvpn - A Dead Simple VPN.
tinyvec - Just, really the littlest Vec you could need. So smol.
RustCrypto - Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers
crates.io - The Rust package registry