RustCrypto
block-ciphers
RustCrypto | block-ciphers | |
---|---|---|
10 | 7 | |
644 | 636 | |
2.6% | 1.9% | |
7.6 | 7.6 | |
12 days ago | 2 months ago | |
Rust | Rust | |
MIT License | - |
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.
RustCrypto
-
(Why) is a toy password manager a too complex summer project?
I would say a toy (or personal-use-only) password manager is a relatively simple project. If we are to forget about the GUI parts, you need to determine serialization of your password database (bincode + serde should be enough) and how to encrypt it. For the latter you need only two algorithms: a password hash for deriving encryption key from password and optional salt (the latter is usually randomly generated and stored as a "key file"), and an AEAD algorithm for encrypting and decrypting serialized database. There are certain pitfalls with encryption (e.g. you should not reuse nonce with the same key, especially with modes like GCM) and with properly erasing sensitive data from memory, as well as preventing it from leaking to things like swap, but learning about those is part of the learning experience.
-
Announcing street-cred 0.1.1 - My first Rust crate
FYI: the rust-crypto crate is unmaintained. Take a look at https://github.com/RustCrypto/AEADs instead
-
Help using ring to decrypt encrypted bytes using AES key (using AEAD).
For AEAD with AES, you may want to use RustCrypto (https://github.com/RustCrypto/AEADs.git) instead
-
Dexios - a secure command-line encryption tool.
Dexios is a secure command-line encryption tool, that uses audited crates provided by the RustCrypto Team.
-
Idiomatically initializing and using a variable with two different types
This is in relation to RustCrypto/AEADs#421 - myself and another user are having the exact same issue.
-
SafeCloset, a Secret Safe - Why and how I made it in Rust
I choose an AEDS crate from the RustCrypto group: AES-GCM in its SIV variant (the SIV variant isn't really needed but it doesn't cost much).
-
Crate for AES256 - which one to choose? Questions about block cipher modes and AEAD too.
Use RustCrypto's aes with one of its block modes (https://docs.rs/block-modes/latest/block_modes/) or AEAD algorithms (https://github.com/RustCrypto/AEADs). There's a lot of modular stuff in RustCrypto, just need to browse a little 😉.
-
Sodiumoxide has been deprecated
crypto_secretbox: https://github.com/RustCrypto/AEADs/tree/master/xsalsa20poly1305
-
What encryption crates do you guys recommend, especially one with support for streams
I'd recommend https://github.com/RustCrypto/AEADs. RustCrypto's crates are high quality, widely used and some have even been audited. Unfortunately they don't provide a read/write interface.
- How to implement a simple password-based encryption with ring?
block-ciphers
-
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?
ring - Safe, fast, small crypto using Rust
rust-crypto - A (mostly) pure-Rust implementation of various cryptographic algorithms.
rustls - A modern TLS library in Rust
RCIG_Coordination_Repo - A Coordination repo for all things Rust Cryptography oriented
sodiumoxide - [DEPRECATED] Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium)
tailscale - The easiest, most secure way to use WireGuard and 2FA.
utils - Utility crates used in RustCrypto
orion - Usable, easy and safe pure-Rust crypto [Moved to: https://github.com/orion-rs/orion]
dsvpn - A Dead Simple VPN.
Ockam - Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale.
crates.io - The Rust package registry