Así que estoy portando una biblioteca de ruby a node.js, y necesito crear una firma PKCS7.¿Cómo hacer esto PKCS7 firmando en node.js?
Esto es lo que la lib rubí está haciendo:
p12_certificate = OpenSSL::PKCS12::new(File.read('some-path.c12'), self.certificate_password)
x509_certificate = OpenSSL::X509::Certificate.new(File.read('some-other-path.pem'))
flag = OpenSSL::PKCS7::BINARY|OpenSSL::PKCS7::DETACHED
signed = OpenSSL::PKCS7::sign(p12_certificate.certificate, p12_certificate.key, File.read('some-manifest'), [x509_certificate], flag)
¿cómo iba a lograr lo mismo en el nodo? Lo que supongo que sería algo así como:
crypto.createCredentials({
pfx : fs.readFileSync('some-cert.p12'),
passphrase : this.certificate_password,
cert : fs.readFileSync('some-path.pem','some-encoding'),
})
Preguntas:
- ¿Es esta la manera correcta de hacer esto?
- ¿Debo especificar una clave, lista de ca, crl list o lista de cifrados?
- ¿qué codificación debo usar para leer el certificado?
- lo que es el nodo equivalente de establecer
signed
- línea de lo que es el nodo equivalente de
signed.to_der
Está escribiendo una biblioteca de libretas de Apple. He luchado tratando de descubrir lo mismo. –
@ChrisF - entonces, ¿te rindiste, o qué? Sé que node puede lograr esto, al menos usando el firmante de muestra de apple escrito en C; sin embargo, me gustaría evitar introducir una dependencia compilada. – Jesse
@Jesse ¿Y usted? Todavía estancado en esto, estoy enfrentando el mismo desafío para un servidor MDM de nodo, ¡pero estoy atrapado antes! cf. http://stackoverflow.com/questions/12956995/pkcs7-data-payload-unpacking-with-nodejs – Olivier