2017-10-04 36 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

相關問題