
rscrypto v0.9.0
रस्ट क्रिप्टो जिसमें शून्य डिफ़ॉल्ट निर्भरताएँ हैं: BLAKE3, Ed25519/X25519, हैशेज़, MACs, KDFs, AEADs, और चेकसम, पूर्ण SIMD/ASM त्वरण के साथ।
rscrypto
rscrypto क्रिप्टोग्राफ़िक प्रिमिटिव, क्रिप्टोग्राफ़िक और तेज़ हैश, पासवर्ड हैशिंग और चेकसम को एक फीचर मॉडल के पीछे रखता है। टारगेट-गेटेड SIMD और असेंबली पोर्टेबल Rust बैकएंड को बिना प्रोडक्शन C/FFI, OpenSSL या सिस्टम-लाइब्रेरी निर्भरता के तेज़ करते हैं।
rscrypto एक प्रिमिटिव क्रेट है, न कि TLS स्टैक, PKI टूलकिट, की स्टोर या प्रोटोकॉल इम्प्लीमेंटेशन।
मापा गया प्रदर्शन
2026-08-18 स्नैपशॉट कमिट 7eb44e9 की तुलना आठ Linux CI रनरों पर प्रत्येक प्लेटफ़ॉर्म, प्रिमिटिव, ऑपरेशन और इनपुट आकार के लिए सबसे तेज़ मिलान वाले बाहरी इम्प्लीमेंटेशन से करता है। बाहरी बेसलाइन का चयन केस-दर-केस किया जाता है, प्रतिस्पर्धियों के औसत के रूप में नहीं। अनुपात external / rscrypto हैं; अधिक बेहतर है।
6,144 सटीक-केस तुलनाओं में, rscrypto 3,780 में 5% से अधिक तेज़ था, 1,695 में 5% के भीतर, और 669 में धीमा। ज्यामितीय-माध्य गति 1.62x समग्र थी, जिसमें चेकसम के लिए 6.18x, RSA के लिए 1.65x, AEAD के लिए 1.61x और ML-KEM के लिए 1.55x शामिल है।
चार्ट में Apple Silicon परिणाम एक अलग 2026-07-04 स्थानीय स्नैपशॉट है; यह Linux समग्र में शामिल नहीं है।
यह समग्र सूट की बढ़त है, यह दावा नहीं कि हर ऑपरेशन जीतता है। वही स्नैपशॉट s390x ECDSA रिग्रेशन और धीमे rapidhash-stream/one-write पथ को हर कच्ची पंक्ति के साथ प्रकाशित करता है। पूर्ण स्कोरकार्ड के लिए benchmark overview और डिप्लॉयमेंट वर्कलोड पर परिणाम लागू करने से पहले benchmarking guide पढ़ें।
आश्वासन
सुरक्षा दावे विफल-बंद होते हैं: गायब या पुराना सबूत दावे को हटा देता है, गेट को कमज़ोर करने के बजाय।
- शुद्धता सबूत NIST, RFC, अपस्ट्रीम और Wycheproof वेक्टर को अलग इम्प्लीमेंटेशन, गुण, नकारात्मक परीक्षण और Miri के साथ जोड़ता है।
- फ़ज़ टारगेट प्रिमिटिव, पार्सर, स्टेट-मशीन और ट्रेट सीमाओं पर प्रोडक्शन इम्प्लीमेंटेशन का अभ्यास करते हैं। न्यूनतम किए गए सीड रीप्ले परीक्षण के रूप में, एक अलग सैनिटाइज़र लेन के साथ।
- पोर्टेबल-बनाम-त्वरित डिफरेंशियल परीक्षण नेटिव टारगेट पर लंबाई, संरेखण, टेल, स्टेट ट्रांज़िशन, डिस्पैच और फ़ॉलबैक व्यवहार को कवर करते हैं।
- कॉन्स्टेंट-टाइम हार्नेस
ct.tomlमें सटीक ऑपरेशनों की सूची बनाता है और अनुकूलित लिंक्ड-बाइनरी निरीक्षण, घोषित फिक्स्ड-शेप कर्नेल के लिए BINSEC प्रूफ़ और घोषित एंड-टू-एंड मामलों के लिए DudeCT टाइमिंग परीक्षणों को जोड़ता है। - फिक्स्ड-साइज़ सीक्रेट मालिक
Debugको मास्क करते हैं, सामान्य समानता को छोड़ देते हैं, और ड्रॉप पर स्वामित्व वाले बाइट्स को अधिलेखित करते हैं। सत्यापन विफलताएँ अपारदर्शी हैं; विफल AEAD ओपन कॉलर आउटपुट बफ़र को साफ़ करते हैं।
कॉन्स्टेंट-टाइम दावा केवल तभी मौजूद होता है जब मिलान किए गए हस्ताक्षरित रिलीज़ में एक प्रमाणित सबूत बंडल शामिल होता है जिसके आवश्यक टारगेट, फीचर, कंपाइलर, प्रोफ़ाइल और ऑपरेशन गेट पास होते हैं। स्रोत जो ब्रांचलेस दिखता है उसे प्रमाण नहीं माना जाता। रिलीज़ आर्टिफैक्ट साइन्ड-टैग गेटेड हैं, crates.io Trusted Publishing के माध्यम से प्रकाशित होते हैं, और GitHub build-provenance प्रमाणपत्रों द्वारा कवर किए जाते हैं।
test evidence, constant-time model, secret lifecycle, threat model और release contract का निरीक्षण करें।
शेष स्वतंत्र-समीक्षा अंतर एक तृतीय-पक्ष सुरक्षा ऑडिट है। परियोजना वर्तमान में इसे वित्तपोषित नहीं कर सकती। स्वचालित सबूत उस समीक्षा को प्रतिस्थापित नहीं करता, इसलिए rscrypto ऑडिटेड, FIPS 140-3 मान्य, औपचारिक रूप से सत्यापित या पूरे क्रेट के रूप में कॉन्स्टेंट-टाइम होने का दावा नहीं करता।
संदिग्ध कमज़ोरियों की रिपोर्ट SECURITY.md प्रक्रिया के तहत GitHub Private Vulnerability Reporting के माध्यम से करें, सार्वजनिक मुद्दे के रूप में नहीं।
केवल वही इंस्टॉल करें जो आप उपयोग करते हैं
न्यूनतम no_std SHA-2 बिल्ड:
[dependencies]
rscrypto = { version = "0.9", default-features = false, features = ["sha2"] }
OS रैंडमनेस सक्षम के साथ पूर्ण प्रिमिटिव स्टैक:
[dependencies]
rscrypto = { version = "0.9", features = ["full", "getrandom"] }
डिफ़ॉल्ट फीचर std है; default-features = false इसे हटा देता है। getrandom को केवल उन APIs के लिए सक्षम करें जो ऑपरेटिंग सिस्टम से सॉल्ट, की, नॉनस या RSA की-जनरेशन एंट्रॉपी प्राप्त करते हैं। feature guide सटीक निर्भरताओं और डिप्लॉयमेंट नियंत्रणों का स्वामी है।
त्वरित प्रारंभ
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);
हैश APIs वन-शॉट और स्ट्रीमिंग उपयोग का समर्थन करते हैं। AEAD, सिग्नेचर, RSA, X25519, ML-KEM, पासवर्ड हैशिंग और बैकएंड इंट्रोस्पेक्शन के लिए रननेबल वर्कफ़्लो examples/README.md में हैं।
प्रिमिटिव और फीचर मैप
| परिवार | शामिल | सक्षम करें |
|---|---|---|
| चेकसम | CRC-16, CRC-24, CRC-32, CRC-32C, CRC-64/XZ, CRC-64/NVMe | checksums या लीफ फीचर |
| क्रिप्टोग्राफ़िक हैश | SHA-2, SHA-3, SHAKE, cSHAKE, BLAKE2, BLAKE3, Ascon-Hash/XOF/CXOF | crypto-hashes या लीफ फीचर |
| तेज़ हैश | XXH3-64/128, RapidHash V3-64 | fast-hashes या लीफ फीचर |
| MAC और KDF | HMAC-SHA-2/SHA-3, KMAC128/256, Poly1305, HKDF-SHA-2, PBKDF2-HMAC-SHA-2 | macs, kdfs, या लीफ फीचर |
| पासवर्ड हैशिंग | Argon2d/i/id, scrypt, बाउंडेड PHC पासवर्ड रिकॉर्ड | password-hashing या लीफ फीचर |
| सिग्नेचर और RSA | ECDSA P-256/P-384, Ed25519, RSA साइनिंग, सत्यापन, एन्क्रिप्शन और की जनरेशन | signatures या लीफ फीचर |
| की एक्सचेंज और KEM | X25519, ML-KEM-512/768/1024 | key-exchange या लीफ फीचर |
| AEAD | AES-GCM, AES-GCM-SIV, AES-SIV-CMAC, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128 | aead या लीफ फीचर |
सटीक प्रकारों और विधियों के लिए docs.rs का उपयोग करें। किसी अन्य लाइब्रेरी को प्रतिस्थापित करते समय migration guide का उपयोग करें।
प्लेटफ़ॉर्म और डिस्पैच
पोर्टेबल Rust इम्प्लीमेंटेशन बाइट-दर-बाइट प्राधिकरण है। कंपाइल-टाइम टारगेट समर्थन और, std के साथ, पता लगाए गए रनटाइम CPU क्षमताएँ पात्र SIMD या असेंबली कर्नेल का चयन करती हैं। असमर्थित त्वरण पोर्टेबल Rust पर वापस आ जाता है।
platform guide टारगेट मैट्रिक्स, डिस्पैच मॉडल, no_std कवरेज और portable-only की सीमाओं का स्वामी है।
परियोजना
कोड बदलने से पहले CONTRIBUTING.md पढ़ें। प्रकाशित परिवर्तन CHANGELOG.md में रहते हैं।
लाइसेंस
आपके विकल्प पर Apache-2.0 या MIT के तहत द्वि-लाइसेंस।