2017-10-04 5 views
0

Das Problem mit der Tastenbedienung erscheint auf Outlook für Mac und auf Safari 11. Wenn ich Chrome/Firefox auf Mac versuche, funktioniert es gut.importKey alg RSA-OAEP mit SHA-1 funktioniert nicht auf Safari 11

Ich benutze webCrypto Bibliothek von js: https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

Und zusätzlich eine weitere Bibliothek von Krypto, die die Probleme auf Safari reparieren müssen: https://github.com/vibornoff/webcrypto-shim

Es in Ebene festsitzt von 'importkey' Funktion:

    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) { }) 

Der Fehler erhalte ich: OpeartionTypeError: Mitglied JsonWebKey.kty ist erforderlich und muss eine Instanz von DOMString sein.

las ich diese Frage: Safari WebCrypto API RSA-OAEP encryption und die Lösung akzeptiert ‚RSA-OAEP‘ alg und Hash von ‚SHA-1‘ verwenden, aber ich bekomme immer gleiche Fehler keine Rolle, was ich zu ändern versuchen.

Ich bin mir nicht sicher, ob all die anderen Funktionen von webcrypto auf Safari 11 funktionieren, aber richtigerweise habe ich nicht auf dieser Seite festgehalten.

Vielen Dank.

Antwort

0

Wir haben eine Shim-Ebene namens https://github.com/PeculiarVentures/webcrypto-liner erstellt, die das Verhalten für die verschiedenen Browser vereinheitlicht und JS-Implementierungen für ältere Browser bereitstellt.

Sie können https://peculiarventures.github.io/pv-webcrypto-tests/ verwenden, um die erwartete Unterstützung für jeden Browser mit und ohne dieses Plug-In zu testen.

Mit diesem gesagt, auf Safari 11.0 (13604.1.38.1.6) scheint es mir möglich, RSA-OAEP/w SHA1 ohne die Verwendung dieser Shim-Schicht zu importieren.

Ohne ein vollständigeres Beispiel von dem, was Sie tun (Beispielwerte und Browser-Build-Versionen) Ich glaube nicht, dass ich oder jemand anderes in der Lage sein wird, viel zu helfen.

+0

Vielen Dank für Ihre Hilfe, gute Bibliothek gute Arbeit.Was der Unterschied zwischen Ihrer Bibliothek zu 'Webcrypto-Shim' Bibliothek? Über meinen Fall, plötzlich arbeitet der ursprüngliche Code auf Safari, seltsames Verhalten nach dem es für eine Weile nicht funktioniert. – OriEng

+0

'webcrypto-shim' versucht, das Verhalten nur in einigen wenigen Fällen zu normalisieren, meins tut dies und fügt Unterstützung hinzu, wenn keine Algorithmen vorhanden sind. Was das zufällige Verhalten Ihres Codes anbelangt, kann Ihnen das ohne weitere Daten nicht helfen. – rmhrisk

+0

Ich habe gerade webcrypto-liner ausprobiert, weil ich PBKDF2 nicht zur Arbeit mit Safari bringen konnte. Aber nachdem ich dummerweise versucht habe, es für eine Weile zum Laufen zu bringen, habe ich herausgefunden, dass Webcrypto-Liner bei diesem Problem nicht helfen kann, und die Dokumentation sagt auch, dass es nicht funktioniert. Das ist wirklich deprimierend. Es ist irgendwie komisch, weil Webkit eindeutig dieses Feature hat https://webkit.org/blog/7790/update-on-web-cryptography/ Bedeutet das, dass es 100% unmöglich ist, irgendeine Schlüsselableitung auf Safari zu machen? (Was ich unter iOS auch nicht machen kann) – Vlad

Verwandte Themen