dvsekhvalnov / jose-jwt

Ultimate Javascript Object Signing and Encryption (JOSE), JSON Web Token (JWT) and Json Web Keys (JWK) Implementation for .NET and .NET Core
MIT License
921 stars 183 forks source link

how can i get a es384 JWT TOKEN with only a pem file ? #204

Open bighamx opened 1 year ago

bighamx commented 1 year ago

var payload = new Dictionary<string, object>() { //xxx };

var privateKey = ???; // only got a pem file like //-----BEGIN PRIVATE KEY----- //xxxxxxxxxxxxxxx //-----END PRIVATE KEY-----

//how can i get a key for below jwt token generate

string token = Jose.JWT.Encode(payload, privateKey, JwsAlgorithm.ES384, new Dictionary<string, object>() { { "alg", "ES384" }, { "type", "JWT" }, }); i search for the web serveral hours and i got sth like this c# JWT load ES256 PEM file into CngKey (jose-jwt) but it cant solve my problem,i want to convert the pem file to p12 file,but i dont have a cert file,i only have a pem file. i realy need the solution, thanks.

dvsekhvalnov commented 1 year ago

Hi @bighamx ,

https://www.scottbrady91.com/c-sharp/pem-loading-in-dotnet-core-and-dotnet ?

If you can't use any of those due to different .net version, you have to convert it to .p12, you really don't need cert to do that (or you can create any cert out of your key, cert is just bag of attributes, choose any you like, it doesn't matter for your usecase)

openssl pkcs12 -export -nocerts -inkey your.private.key.pem -out your.private.key.p12