
Rust-Krypto mit null Standardabhängigkeiten: BLAKE3, Ed25519/X25519, Hashes, MACs, KDFs, AEADs und Prüfsummen mit vollständiger SIMD/ASM-Beschleunigung
rscrypto vereint kryptografische Primitive, kryptografische und schnelle Hashes, Passwort-Hashing
und Prüfsummen hinter einem einzigen Feature-Modell.
Zielgesteuerte SIMD- und Assembler-Implementierungen beschleunigen portable Rust-Backends ohne
Produktionsabhängigkeit von C/FFI, OpenSSL oder Systembibliotheken.
rscrypto ist eine Primitiv-Crate, kein TLS-Stack, kein PKI-Toolkit, kein Schlüsselspeicher und keine
Protokollimplementierung.
Leistungsaussagen beschränken sich auf exakt beibehaltene Kampagnen und äquivalente Workloads. Die korrigierte Kampagne vom September 2026 enthält 19.614 abgeschlossene Fälle, darunter korrigierte ML-KEM- und Argon2-Vergleiche, aber es wurde keine ersetzende aggregierte Bewertungsübersicht kuratiert. Ältere Aggregate, die Entropie, Schlüsselvorbereitung, Ausgabedarstellung oder Salt-Längen vermischten, bleiben historische Aufzeichnungen und sind keine aktuellen Leistungsaussagen.
Die Benchmark-Übersicht dokumentiert die Kampagnen, zielspezifischen Ergebnisse und verbleibenden Grenzen.
Die Vergleichsverträge definieren äquivalente ML-KEM- und Argon2-Workloads.
Sicherheitsaussagen schlagen geschlossen fehl: fehlende oder veraltete Nachweise entfernen die Aussage, anstatt das Gate abzuschwächen.
ct.toml
und kombiniert optimierte Inspektion gelinkter Binärdateien, BINSEC-Beweise für deklarierte
Fixed-Shape-Kernel und DudeCT-Timing-Tests für deklarierte End-to-End-Fälle.Debug und löschen initialisierten Speicher beim Drop.
Duplikationsregeln variieren je nach Typ: gekeyter BLAKE2/BLAKE3-Zustand unterstützt Clone.
Das Eigentumsinventar listet diese Grenzen auf.
Verifikationsfehler sind undurchsichtig; fehlgeschlagene AEAD-Öffnungen löschen unauthentifizierten Klartext.Eine Constant-Time-Aussage existiert nur, wenn Nachweise für das erforderliche Ziel, Feature, Compiler, Profil und die Operation bestehen. Quellcode, der branchless aussieht, wird nicht als Beweis behandelt.
Prüfen Sie die Testnachweise, das Constant-Time-Modell, den Secret-Lebenszyklus und das Bedrohungsmodell.
Die verbleibende Lücke bei unabhängiger Überprüfung ist ein Sicherheitsaudit durch Dritte.
Das Projekt kann derzeit keines finanzieren.
Automatisierte Nachweise ersetzen diese Überprüfung nicht, daher beansprucht rscrypto nicht, auditiert,
FIPS 140-3-validiert, formal verifiziert oder als gesamte Crate constant time zu sein.
Melden Sie vermutete Schwachstellen über GitHub Private Vulnerability Reporting gemäß dem
SECURITY.md-Prozess, nicht über ein öffentliches Issue.
Minimaler no_std-SHA-2-Build:
[dependencies]
rscrypto = { version = "0.10", default-features = false, features = ["sha2"] }
Vollständiger Primitiv-Stack mit aktivierter OS-Zufälligkeit:
[dependencies]
rscrypto = { version = "0.10", features = ["full", "getrandom"] }
Das Standard-Feature ist std; default-features = false entfernt es.
Aktivieren Sie getrandom nur für APIs, die Salts, Schlüssel, Nonces
oder RSA-Schlüsselerzeugungs-Entropie vom Betriebssystem beziehen.
Der Feature-Leitfaden erklärt die Build-Auswahl; Cargo.toml besitzt den exakten Feature-Graphen.
use rscrypto::Sha256;
let one_shot = Sha256::digest(b"hello world");
let mut hasher = Sha256::new();
hasher.update(b"hello ");
hasher.update(b"world");
assert_eq!(hasher.finalize(), one_shot);
Hash-APIs unterstützen One-Shot- und Streaming-Nutzung.
Ausführbare Workflows für AEAD, Signaturen, RSA, P-256- und P-384-ECDH, X25519, ML-KEM, Passwort-Hashing
und Backend-Introspektion finden Sie in examples/README.md.
| Familie | Enthalten | Aktivieren |
|---|---|---|
| Prüfsummen | CRC-16, CRC-24, CRC-32, CRC-32C, CRC-64/XZ, CRC-64/NVMe | checksums oder Leaf-Features |
| Kryptografische Hashes | SHA-2, SHA-3, SHAKE, cSHAKE, BLAKE2, BLAKE3, Ascon-Hash/XOF/CXOF | crypto-hashes oder Leaf-Features |
| Schnelle Hashes | XXH3-64/128, RapidHash V3-64 | fast-hashes oder Leaf-Features |
| MACs und KDFs | HMAC-SHA-2/SHA-3, KMAC128/256, Poly1305, HKDF-SHA-2, PBKDF2-HMAC-SHA-2 | macs, kdfs oder Leaf-Features |
| Passwort-Hashing | Argon2d/i/id, scrypt, begrenzte PHC-Passwortdatensätze | password-hashing oder Leaf-Features |
| Signaturen und RSA | ECDSA P-256/P-384, Ed25519, ML-DSA-44/65/87, RSA-Signierung, -Verifikation, -Verschlüsselung und -Schlüsselerzeugung | signatures oder Leaf-Features |
| Schlüsselaustausch und KEMs | P-256 ECDH, P-384 ECDH, X25519, ML-KEM-512/768/1024 | key-exchange oder Leaf-Features |
| AEADs | AES-GCM, AES-GCM-SIV, AES-SIV-CMAC, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128 | aead oder Leaf-Features |
Der nur aus Kompatibilitätsgründen vorhandene WebSocket-Accept-Digest erfordert websocket-sha1,
das von full und jedem anderen Umbrella-Feature ausgeschlossen ist.
Verwenden Sie docs.rs für exakte Typen und Methoden.
Die portable Rust-Implementierung ist die byte-genaue Autorität.
Compile-Time-Zielunterstützung und, mit std,
erkannte Laufzeit-CPU-Fähigkeiten wählen geeignete SIMD- oder Assembler-Kernel aus.
Nicht unterstützte Beschleunigung fällt auf portables Rust zurück.
Der Plattform-Leitfaden erklärt den unterstützten Zielkatalog, Dispatch, no_std-Abdeckung
und die Grenzen von portable-only.
Die Leitfäden und Beispiele beschreiben den zugehörigen Quellcode. Verwenden Sie die passende Version der API-Dokumentation für eine veröffentlichte Abhängigkeit.
Lesen Sie CONTRIBUTING.md, bevor Sie Code ändern.
Veröffentlichte Änderungen finden Sie in CHANGELOG.md.
Dual-lizenziert unter Apache-2.0 oder MIT, nach Ihrer Wahl.