Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
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
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda