我真的被困在這!我想要做的事:用小熊座/ webcrypto Node.js和webcrypto之間的RSA加密
- 生成RSA密鑰,並加密一些文本它
- 發回的密文,並使用私鑰
現在不知何故,我得在瀏覽器中使用一個未定義的拋出:DOMException解密它的另一端,如果我試圖用大熊做加密的一部分,或者我得到這個錯誤中的R的Node.js當我在瀏覽器加密:
Missing error handler on `socket`.
Error: error:040A1079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error
at Error (native)
at Object.decrypt (/home/jeroen/projects/crypto-nodebrowser/node_modules/ursa/lib/ursa.js:358:33)
at Socket.<anonymous> (/home/jeroen/projects/crypto-nodebrowser/server.js:34:50)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Socket.onevent (/home/jeroen/projects/crypto-nodebrowser/node_modules/socket.io/lib/socket.js:330:8)
at Socket.onpacket (/home/jeroen/projects/crypto-nodebrowser/node_modules/socket.io/lib/socket.js:290:12)
at Client.ondecoded (/home/jeroen/projects/crypto-nodebrowser/node_modules/socket.io/lib/client.js:193:14)
at Decoder.Emitter.emit (/home/jeroen/projects/crypto-nodebrowser/node_modules/component-emitter/index.js:134:20)
at Decoder.add (/home/jeroen/projects/crypto-nodebrowser/node_modules/socket.io-parser/index.js:247:12)
。我跟https://github.com/jvanveen/crypto-nodebrowser最小的代碼示例顯示了問題。對此有任何幫助,歡迎!
嗨,我有一個最近的Chromium版本測試。當我運行服務器並打開頁面時,會執行一些有點駭人聽聞的測試用例。此時第一個測試用例通過:它能夠在node.js上生成密鑰對,將其轉換爲jwk,將jwk發送到瀏覽器,webcrypto能夠導入jwk並將jwk導出回來,jwk被髮送回服務器和服務器確認jwk/pem仍然相同。 第二個測試用例失敗。它首先測試密鑰是否可用於本地加密/解密,然後將密文發送到服務器。在服務器上,我收到oaep錯誤... – Phrearch
NodeRSA和Ursa都會生成一個關於OAEP填充的類似錯誤: 錯誤:錯誤:040A1079:rsa例程:RSA_padding_check_PKCS1_OAEP_mgf1:oaep解碼錯誤 – Phrearch
從ursa/nodersa導入的webcrypto密鑰具有稍有不同moduluslength比生成的一個: keypair.private.algorithm.modulusLength => 2047 keypair.generated.privateKey.algorithm.modulusLength => 2048 keypair.generated.privateKey.algorithm.publicExponent => [1,0, 1] keypair.private.algorithm.publicExponent => [1,0,1] – Phrearch