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

89
Views
Problema con crypto.importKey en Safari

Estoy desarrollando una página web, que también debe tener una función de chat, para que los usuarios puedan comunicarse entre sí a través de la plataforma. Los mensajes deben cifrarse con cifrado de extremo a extremo. Por lo tanto, uso la biblioteca criptográfica incorporada de Web-API. Al final del proceso de registro, cada usuario obtiene un par de claves generado. Cuando un usuario inicia sesión, su clave privada (en formato jwk) se cargará con:
crypto.subtle.importKey("jwk", data, { name: 'ECDH', namedCurve : 'P-256' }, true, ["deriveKey", "deriveBits"]).then(...) .
Cuando el usuario intenta iniciar una conversación con otro usuario, la clave pública del otro usuario se cargará con:
crypto.subtle.importKey("jwk", jwkData, { name: 'ECDH', namedCurve : 'P-256' }, true, ["deriveKey", "deriveBits"]).then(...) o
crypto.subtle.importKey("spki", base64data, { name: 'ECDH', namedCurve : 'P-256' }, true, ["deriveKey", "deriveBits"]).then(...) .

Todo el proceso de cifrado/descifrado funciona perfectamente en Firefox. Pero si pruebo el mismo código con Safari, la carga de la clave pública falla con: SyntaxError: A required parameter was missing or out-of-range. . Recibo este mismo error si trato de cargar la clave desde base64 o datos jwk. Logré averiguar qué parámetro falta, es el componente "d" en el jwk, pero esto solo debería incluirse en la clave privada, ¿no? La clave privada se puede cargar como se esperaba también en Safari, solo que la clave pública no.

Busqué en la lista de errores de Safari con criptografía, hay un montón de ellos, pero no especialmente este. ¿Alguien tiene experiencia con este error o alguna idea de cómo solucionarlo?

Gracias y un saludo Atila

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!