2017-10-04 78 views
0

Outlook for Mac和Safari 11上出现键操作问题。当我在Mac上试用Chrome/Firefox时,它运行良好。importKeyKey RSA-OAEP和SHA-1无法在safari上工作11

我用js的webCrypto库: https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

而且除了加密的另一个库,需要修复Safari上的问题: https://github.com/vibornoff/webcrypto-shim

它停留在“importKey”功能级别:

    window.crypto.subtle.importKey(
        "jwk", 
        { 
         "kty": "RSA", 
         "e": E VALUE, 
         "n": N VALUE, 
         "alg": "RSA-OAEP", 
         "ext": true 
        }, 
        { 
         name: "RSA-OAEP", 
         hash: { name: "SHA-1" }, 
        }, 
        true, 
        ["encrypt"] 
        ).then(function (publicKey) { }) 

的错误,我得到: OpeartionTypeError:会员JsonWebKey.kty是必需的,并且必须是DOMString的一个实例。

我读到这个问题:Safari WebCrypto API RSA-OAEP encryption和解决方案接受使用'RSA-OAEP'alg和哈希'SHA-1',但我总是得到同样的错误,无论我尝试改变。

我不确定webcrypto的所有其他功能在safari 11上都能正常工作,但是我不会在这个问题上出现问题。

非常感谢。

回答

0

我们已经创建了一个名为https://github.com/PeculiarVentures/webcrypto-liner的匀场层,它将各种浏览器的行为统一起来,并为下层浏览器提供JS实现。

您可以使用https://peculiarventures.github.io/pv-webcrypto-tests/来测试每个浏览器在使用和不使用此插件时的预期支持。

就是说,在Safari 11.0(13604.1.38.1.6)上,我似乎能够在不使用该匀场层的情况下导入RSA-OAEP/w SHA1。如果没有一个更完整的例子(样本值和浏览器版本),我不认为我或其他人能够提供什么帮助。

+0

感谢您的帮助,伟大的图书馆很好的工作。您的图书馆与'webcrypto-shim'图书馆有什么不同?关于我的情况,突然之间的Safari浏览器的原始代码,奇怪的行为后,它不工作了一段时间。 – OriEng

+0

'webcrypto-shim'只尝试在一些狭窄的情况下规范化行为,我这样做,并增加了算法不存在的支持。至于你的代码的随机行为,抱歉不能没有更多的数据。 – rmhrisk

+0

我刚刚尝试了webcrypto-liner,因为我无法使PBKDF2在Safari上工作。但在愚蠢地试图让它工作一段时间后,我发现webcrypto-liner无法帮助解决这个问题,文档也说它不起作用。这真是令人沮丧。这有点奇怪,因为Webkit显然具有此功能https://webkit.org/blog/7790/update-on-web-cryptography/这是否意味着在Safari上执行任何类型的密钥派生是完全不可能的? (这意味着我无法在iOS上执行此操作) – Vlad

相关问题