KeyPair::from_pem detects incorrect algorithm?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- cryptography
Direzione di ricerca
Riproduci il problema con i comandi OpenSSL e l'esempio Rust forniti, quindi esamina KeyPair::from_pem e CertificateParams::from_ca_cert_pem per confrontare i valori degli algoritmi SHA-256 e SHA-512. Il lavoro è completato quando è stato stabilito se gli algoritmi differenti sono previsti e il comportamento corretto di compatibilità è stato documentato o coperto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
How to reproduce
Test certificates
Working certificates (-sha256 option)
openssl req -x509 \
-sha256 -days 356 \
-nodes \
-newkey rsa:4096 \
-subj "/CN=example.com" \
-keyout rootCA.key -out rootCA.crt
Failing certificates (-sha512 option)
openssl req -x509 \
-sha512 -days 356 \
-nodes \
-newkey rsa:4096 \
-subj "/CN=example.com" \
-keyout rootCA.key -out rootCA.crt
Code
use std::fs::read_to_string;
fn main() {
let private_key = read_to_string("rootCA.key").unwrap();
let private_key = rcgen::KeyPair::from_pem(&private_key).unwrap();
println!("KeyPair alg: {:?}", private_key.algorithm());
let cert = read_to_string("rootCA.crt").unwrap();
let params = rcgen::CertificateParams::from_ca_cert_pem(&cert, private_key).unwrap();
println!("Params alg: {:?}", params.alg);
if let Err(e) = rcgen::Certificate::from_params(params) {
println!("Error: {:#}", e);
} else {
println!("All good :-)")
};
}
Test results
If using the -sha256 certificate files, the output is:
KeyPair alg: PKCS_RSA_SHA256
Params alg: PKCS_RSA_SHA256
All good :-)
If using the -sha512 certificate files, the output is:
KeyPair alg: PKCS_RSA_SHA256
Params alg: PKCS_RSA_SHA512
Error: The provided certificate's signature algorithm is incompatible with the given key pair
Is this expected?
- Lingua principale
- Rust
- Stelle
- 516
- Fork
- 160
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rustls/rcgen
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
-
CertificateSigningRequestParams::from_der can parse the wrong key typeForse già presa @jgreeer l’ha presa 47 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
-
0.15 release planningAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
Tutte le issue di rustls/rcgen
Issue simili
-
agent-self
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
yologdev/yoyo-evolve#1176 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
Richard-Zhang1019/Crossbow#431 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
saschanaz/jxl-winthumb#69 ·
-
ready
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
TusanHomichi/PSIV#504 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno