How to Set or Remove the critical Flag on Key Usage or Extended Key Usage Extensions
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- cryptography, security
Línea de trabajo
Comienza con CertificateParams y la ruta serialize_request mostrada en el issue; después, inspecciona cómo key_usages y extended_key_usages se convierten en extensiones X.509 solicitadas. Confirma que el diseño puede establecer de forma independiente la criticidad de cada extensión y verifica que los CSRs generados marquen Key Usage como no crítica y Extended Key Usage como crítica.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi
I've the following function that I'm using to generate a CSR,
pub fn generate_csr(config: &CommonConfig) -> Result<model::CsrBundle> {
let mut params: CertificateParams = CertificateParams::new(config.dns_array())?;
params.is_ca = IsCa::NoCa;
let mut dn = DistinguishedName::new();
// dn information....
params.distinguished_name = dn;
let now = time::OffsetDateTime::now_utc();
params.not_before = now;
params.not_after = now + time::Duration::days(365);
// key usage attributes
params.key_usages = vec![
KeyUsagePurpose::DigitalSignature,
KeyUsagePurpose::KeyEncipherment,
KeyUsagePurpose::KeyAgreement,
];
params.extended_key_usages = vec![ExtendedKeyUsagePurpose::ServerAuth];
// CSR creation and signing
let key = generate_private_key();
let csr = params.serialize_request(&key)?;
Ok(model::CsrBundle { csr, key })
}
The resulting CSR contains:
Attributes:
Requested Extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage:
TLS Web Server Authentication
However, I would like to configure the CSR so that:
- Key Usage is marked non-critical
- Extended Key Usage is marked critical
Is there a way to configure this in rcgen? I couldn’t find any options in CertificateParams to change the criticality of individual extensions.
Thanks in advance for any help!
- Lenguaje dominante
- Rust
- Estrellas
- 516
- Forks
- 160
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rustls/rcgen
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
-
CertificateSigningRequestParams::from_der can parse the wrong key typePosiblemente ocupada @jgreeer la tomó hace 47 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
0.15 release planningAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
Todos los issues de rustls/rcgen
Issues similares
-
enhancement good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
area:ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
openfootmanager/openfootmanager#1365 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
JackMechem/marbble#305 ·
Los mantenedores suelen responder en 1 día
-
ci:stability
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 5 días
-
antora bug review-2026-11-11
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
bovinemagnet/AdocFoundry#546 ·
Los mantenedores suelen responder en 1 día