Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
RSA — Libreria Rust pura per la crittografia a chiave pubblica RSA: generazione di chiavi, cifratura/decifratura PKCS#1 v1.5 e OAEP, firme PSS, più importazione/esportazione di chiavi. | Kitploit
Strumenti/GitHubGitHub/rustcrypto/rsa
Strumenti di Crittografia/DecrittografiaCrittografiaAutenticazioneTop in Crittografia n.19Top in Strumenti di Crittografia/Decrittografia n.20
GitHubrustcrypto/rsa

RSA

Libreria Rust pura per la crittografia a chiave pubblica RSA: generazione di chiavi, cifratura/decifratura PKCS#1 v1.5 e OAEP, firme PSS, più importazione/esportazione di chiavi.

Vedi Repository
672194884 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

RustCrypto: RSA

crates.io Documentation Build Status Dependency Status Apache2/MIT licensed MSRV Project Chat

Un'implementazione RSA portabile in puro Rust, con schemi di cifratura e firma specificati in PKCS#1 v2.2 (RFC8017).

SchemaScopoSpecifica
RSAES-OAEPCifraturaRFC8017 §7.1
RSAES-PKCS1-v1_5CifraturaRFC8017 §7.2
RSASSA-PSSFirmeRFC8017 §8.1
RSASSA-PKCS1-v1_5FirmeRFC8017 §8.2

La cifratura PKCS#1 v1.5 è fornita solo per compatibilità con applicazioni legacy. Preferire OAEP e PSS per le nuove applicazioni di cifratura.

Vedere l'avviso di sicurezza di seguito per le vulnerabilità note dell'implementazione.

Esempio

use rsa::{Oaep, RsaPrivateKey, RsaPublicKey};
use sha2::Sha256;

let mut rng = rand::rng();
let bits = 2048;
let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
let pub_key = RsaPublicKey::from(&priv_key);

// Encrypt
let data = b"hello world";
let enc_data = pub_key.encrypt(&mut rng, Oaep::<Sha256>::new(), &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt_blinded(&mut rng, Oaep::<Sha256>::new(), &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

Nota: Se si riscontra un tempo di generazione delle chiavi insolitamente lento durante l'uso di RsaPrivateKey::new, è possibile provare a compilare in modalità release o aggiungere quanto segue al proprio Cargo.toml. La generazione delle chiavi è molto più veloce quando si compila con livelli di ottimizzazione più elevati, ma ciò aumenterà leggermente il tempo di compilazione.

[profile.debug]
opt-level = 3

Stato

Attualmente alla Fase 1 (v) 🚧

Ci saranno tre fasi prima che 1.0 🚢 possa essere rilasciata.

  1. 🚧 Farlo funzionare
    • Generazione dei primi ✅
    • Generazione delle chiavi ✅
    • PKCS1v1.5: Crittografia e Decrittografia ✅
    • PKCS1v1.5: Firma e Verifica ✅
    • PKCS1v1.5 (chiave di sessione): Crittografia e Decrittografia
    • OAEP: Crittografia e Decrittografia
    • PSS: Firma e Verifica
    • Importazione ed esportazione delle chiavi
  2. 🚀 Renderlo veloce
    • Benchmark ✅
    • confronto con altre implementazioni 🚧
    • ottimizzazione 🚧
  3. 🔐 Renderlo sicuro
    • Fuzz testing
    • Audit di sicurezza

⚠️Avvertenza di sicurezza

Questo crate ha ricevuto un audit di sicurezza da Include Security, con un solo rilievo minore che è stato successivamente risolto.

Consultare le [issue di sicurezza aperte] sul nostro issue tracker per altri problemi noti.

In particolare l'implementazione dell'[esponenziazione modulare non è a tempo costante], ma la variabilità temporale è mascherata tramite il [blinding casuale], una tecnica comunemente utilizzata. Questo crate è vulnerabile al Marvin Attack che potrebbe consentire il recupero della chiave privata da parte di un attaccante di rete (vedere RUSTSEC-2023-0071).

È possibile seguire il nostro lavoro sulla mitigazione di questo problema in #390.

Versione minima supportata di Rust (MSRV)

Questo crate supporta Rust 1.85 o superiore.

In futuro la MSRV potrà essere modificata, ma ciò avverrà con un incremento di versione minore.

Licenza

Concesso in licenza secondo una delle seguenti

  • Apache License, Version 2.0
  • MIT license

a propria scelta.

Contributi

Salvo diversa indicazione esplicita, qualsiasi contributo intenzionalmente inviato per l'inclusione nell'opera da parte dell'utente, come definito nella licenza Apache-2.0, sarà concesso in doppia licenza come sopra, senza termini o condizioni aggiuntivi.

Scarica lo strumento