CaStore fails if certificates use anything other than RSA

Abierto
#1,119 0 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
javascript, node.js

Línea de trabajo

Reproduce the example with pki.createCaStore and trace the path through certificateFromPem, addCertificate, and certificateFromAsn1 in node_modules/node-forge/lib/x509.js. Check how the non-RSA public-key OID is handled and add a regression test for the Windows system certificate case. Done means the CA store is created successfully without the reported error.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Issue

CaStore expects all certificates to use RSA. If this is not the case, as on some Windows machines, it breaks.

Code

Run this in the node interactive interpreter.

const { getCACertificates } = await import("tls");
const forge = require('node-forge');
const pki = forge.pki;
let caStore = pki.createCaStore(getCACertificates("system"));

Expected Behavior

caStore is successfully created.

Actual Behavior

Received the following Error:

Uncaught Error: Cannot read public key. OID is not RSA.
    at pki.certificateFromAsn1 (...\node_modules\node-forge\lib\x509.js:1316:11)
    at pki.certificateFromPem (...\node_modules\node-forge\lib\x509.js:822:14)
    at caStore.addCertificate (...\node_modules\node-forge\lib\x509.js:2694:24)
    at pki.createCaStore (...\node_modules\node-forge\lib\x509.js:2834:15)

Additional information

node --version

v22.16.0

systeminfo

OS Name: Microsoft Windows 10 Enterprise LTSC
OS Version: 10.0.19044 N/A Build 19044
OS Manufacturer: Microsoft Corporation
OS Configuration: Member Workstation
OS Build Type: Multiprocessor Free

Lenguaje dominante
JavaScript
Estrellas
5.4k
Forks
875
Merge medio
3 min
PR fusionados (30 d)
6

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de digitalbazaar/forge

Todos los issues de digitalbazaar/forge

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.