Dexus / pem

Create private keys and certificates with node.js
Other
569 stars 133 forks source link

Feature Request - Support for pkcs8 #174

Open Gazza7205 opened 6 years ago

Gazza7205 commented 6 years ago

Simple read function for pkcs8 files - I've built something for this (in the process of.. simple as), will push for review if successful. Additional function in pem.js

Use case: Verify/Read any pkcs8 file

Openssl steps

1.) Create a private key pair openssl req -x509 -newkey rsa:4096 -keyout test.pem -out test.crt -days 365 -subj "/C=Test/ST=Test/L=London/O=Pemjs/OU=Pemjs/CN=Pemjs.com" -passout pass:Password

2.) Convert to PKCS8 format openssl pkcs8 -inform pem -in test.pem -topk8 -outform der -out test.p8 -v1 PBE-SHA1-3DES -passin pass:Password -passout pass:Password

3.) Extract private key from pkcs8 file. openssl pkcs8 -in test.p8 -inform DER -v1 PBE-SHA1-3DES -passin pass:Password

4.) Do something with it....

Considerations 1.) Inform could be an unknown, check DER, check PEM 2.) Encryption alg could be an unknown, explicit support for strong algs only?

Dexus commented 6 years ago

You are welcome to open a PR when you need it fast...

ljfio commented 6 years ago

I've added in a simple function to convert a private key from RSA to PKCS8 in my fork

This works for my use case: openssl pkcs8 -topk8 -in private_key.pem -nocrypt

Before I make a pull request, would we prefer having support for all the other options like: -v1 alg and -outform DER?

Dexus commented 6 years ago

Yes it would be a nice to have of all other options.

Regards

Von meinem iPhone gesendet

Am 11.04.2018 um 21:59 schrieb Luke Fisher notifications@github.com:

I've added in a simple function to convert a private key from RSA to PKCS8 in my fork

This works for my use case: openssl pkcs8 -topk8 -in private_key.pem -nocrypt

Before I make a pull request, would we prefer having support for all the other options like: -v1 alg and -outform DER?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.