bytecodealliance / bytecodealliance/StarlingMonkey

WebCrypto's `importKey` is incomplete and emits misleading exceptions

Aperta
#246 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
C
Stelle
288
Fork
57
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

The implementation of `importKey` [claims](https://github.com/bytecodealliance/StarlingMonkey/blob/4051ee1e72b8c9ae49cc78140529fb6198992760/builtins/web/crypto/crypto-algorithm.cpp#L1859) to support a number of key formats. In practice, that support is [incomplete](https://github.com/bytecodealliance/StarlingMonkey/blob/4051ee1e72b8c9ae49cc78140529fb6198992760/builtins/web/crypto/crypto-algorithm.cpp#L1615-L1621) in at least [two](https://github.com/bytecodealliance/StarlingMonkey/blob/4051ee1e72b8c9ae49cc78140529fb6198992760/builtins/web/crypto/crypto-algorithm.cpp#L1841-L1845) places, maybe more.

Additionally, the implementation raises an exception listing an [incorrect set of supported formats](https://github.com/bytecodealliance/StarlingMonkey/blob/4051ee1e72b8c9ae49cc78140529fb6198992760/builtins/web/crypto/subtle-crypto.cpp#L105-L108).

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia in builtins/web/crypto/crypto-algorithm.cpp, nella gestione del formato di importKey intorno alle righe 1615-1621 e 1841-1845, quindi confrontala con i formati dichiarati vicino alla riga 1859. Controlla nelle righe 105-108 di builtins/web/crypto/subtle-crypto.cpp il testo dell’eccezione. Il lavoro è completato quando i formati supportati e quelli riportati corrispondono accuratamente all’implementazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp, javascript, wasm
Ambito
cryptography
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.