Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

216
Views
Cómo usar Web Crypto API para importar clave privada usando ECDSA

Tengo una ECDSA privateKey/publicKey y quiero convertirla en JWK usando node.js y estoy usando WebCrypto API.

 class KeyPair { constructor(privateKey, publicKey) { const algorithm = { name: "ECDSA", namedCurve: "P-256", }; subtle .importKey( "jwk", this.getPrivateKeyJWK(privateKey, publicKey), algorithm, false, ["sign"] ) .then((res) => (this._privateKey = res)); subtle .importKey("raw", publicKey, algorithm, false, ["verify"]) .then((res) => (this._publicKey = res)); } getPrivateKeyJWK(privateKey, publicKey) { let jwk = { // this is an example jwk key, other key types are Uint8Array objects kty: "EC", crv: "P-256", d: Buffer.from(privateKey) .toString("base64") .replace("+", "-") .replace("/", "_"), x: Buffer.from(publicKey.slice(1, 33)) .toString("base64") .replace("+", "-") .replace("/", "_"), y: Buffer.from(publicKey.slice(33, 66)) .toString("base64") .replace("+", "-") .replace("/", "_"), ext: true, }; return jwk; } }

Sin embargo, cuando se llama a sutil.importKey, recibo el siguiente error:

 node:internal/per_context/domexception:70 ErrorCaptureStackTrace(this); ^ DOMException [NotSupportedError]: Unrecognized name. at new DOMException (node:internal/per_context/domexception:70:5) at __node_internal_ (node:internal/util:477:10) at normalizeAlgorithm (node:internal/crypto/util:235:9) at SubtleCrypto.importKey (node:internal/crypto/webcrypto:471:15) at new EcdsaWallet (./EcdsaWallet.js:<line of first subtle.importKey call>:14) at Object.<anonymous> (./EcdsaWallet.js:<line of object creation>:14) at Module._compile (node:internal/modules/cjs/loader:1097:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10) at Module.load (node:internal/modules/cjs/loader:975:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12)

La clave que quiero importar es un par de claves públicas y privadas que se proporcionan como cadenas.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!