Estoy tratando de verificar el token JWT con las herramientas Node.js firmadas conJwtSecurityTokenHandler usando claves generadas por CNG
Probé muchas herramientas Nood.js, por ejemplo, jsonwebtoken
jwt.verify(token, publickey,{ algorithms: ['ES384'], ...Pero obtiene errores de etiqueta incorrectos cada vez
["error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error"],"library":"asn1 encoding routines","function":"asn1_check_tlen","reason":"wrong tag","code":"ERR_OSSL_ASN1_WRONG_TAG"Las claves públicas y privadas generadas con CNG
var key = CngKey.Create(CngAlgorithm.ECDsaP384, "keyName", new CngKeyCreationParameters { KeyCreationOptions = CngKeyCreationOptions.OverwriteExistingKey, KeyUsage = CngKeyUsages.AllUsages, ExportPolicy = CngExportPolicies.AllowPlaintextExport, }); txtPrivateKey = Convert.ToBase64String(key.Export(CngKeyBlobFormat.EccPrivateBlob)); txtPublicKey = Convert.ToBase64String(key.Export(CngKeyBlobFormat.EccPublicBlob));Intenté convertir las claves , pero sigo obteniendo la misma excepción. ¿Cómo puedo generar una clave pública válida para las herramientas de Node.js usando el algoritmo CNG y ES384?
Parece que encontré la solución:
Convert.ToBase64String(key.Export(CngKeyBlobFormat.Pkcs8PrivateBlob));
openssl ec -in pkcs8.pem -pubout -out pkcs8genpubkey.pem