Support different MAC Algorithms to generate PKCS12 wrapper

Abierto
#1,061 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

  • #1062 de @leninmehedy — cerrado sin fusionar

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
javascript
Área
cryptography

Línea de trabajo

Start in lib/pkcs12.js at p12.toPkcs12Asn1 and inspect the existing algorithm and MAC-detection paths. Trace how the MAC is generated, then verify that the requested option is configurable, defaults to SHA1 for compatibility, and produces output usable with the stated OpenSSL MAC algorithm example.

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

Descripción

Background

Currently openssl or keytool uses SHA256 to generate MAC data for pkcs12. However, node-forge uses SHA1 as here

openssl also allows specifying the macAlgorithm using parameter below:

-macalg val Digest algorithm to use in MAC (default SHA256)

node-forge currently allows reading pkcs12 files generated by other tool and supports detecting the MAC algorithm used as you can find here

Proposal

We should allow passing a new option called options.macAlgorithm for function p12.toPkcs12Asn1.

Here:

  • macAlgorithm should be a string similar to options.algorithm or options.encAlgorithm parameter.
  • macAlgorithm must default to sha1 for backward compatibility.

For example, someone should be allowed to generate pkcs12 using node-forge as below that essentially generates similar to openssl:

const pkcs12Asn1 = forge.pkcs12.toPkcs12Asn1(keypair.privateKey, cert, constants.PFX_DUMMY_PASSWORD, {
       count: 10000,
       saltSize: 20,
       algorithm: `aes256`
       macAlgorithm: 'sha256'
       friendlyName: `my-node0`,
})

# generate pkcs12 file using openssl
openssl pkcs12 -export -out private-node0-openssl.p12 -inkey myKey.pem -in cert.pem -iter 10000 -name my-node0 -macsaltlen 20

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.