Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Webcrypto:在Edge上拒绝承诺返回权限_Javascript_Promise_Microsoft Edge_Digital Signature_Webcrypto Api - Fatal编程技术网

Javascript Webcrypto:在Edge上拒绝承诺返回权限

Javascript Webcrypto:在Edge上拒绝承诺返回权限,javascript,promise,microsoft-edge,digital-signature,webcrypto-api,Javascript,Promise,Microsoft Edge,Digital Signature,Webcrypto Api,我正在Chrome和Firefox上成功地使用Web加密API。但在使用Microsoft Edge测试代码时失败。在对象承诺中返回了拒绝的权限。虽然我运行了简单的crypto.minute.generateKey,但它仍然失败。请参考下面的代码 return window.crypto.subtle.importKey( "jwk", //can be "jwk" (public or private), "spki" (public only), or "pkcs8" (pr

我正在Chrome和Firefox上成功地使用Web加密API。但在使用Microsoft Edge测试代码时失败。在对象承诺中返回了拒绝的权限。虽然我运行了简单的crypto.minute.generateKey,但它仍然失败。请参考下面的代码

return window.crypto.subtle.importKey(
        "jwk", //can be "jwk" (public or private), "spki" (public only), or "pkcs8" (private only)
        {   
            kty: "EC",
            crv: "P-256",
            x: xb64,
            y: yb64,
            d: db64
        },
        {   //these are the algorithm options
            name: "ECDSA",
            namedCurve: "P-256", //can be "P-256", "P-384", or "P-521"
        },
        false, //whether the key is extractable (i.e. can be used in exportKey)
        ["sign"] //"verify" for public key import, "sign" for private key imports
    )
    .then(function(key){           
        return key;
    })

我试图检查加密API的文档

在那里我得到了下面的链接

它显示了对特定浏览器的方法的实时支持

以下是ECDSA p-256方法在Edge中的输出

Edge中似乎不支持它


如果您在Chrome中打开同一页,您将看到它是受支持的。

这是什么意思。然后。它返回它得到的东西。A不使用opI。然后获取签名进程的密钥返回window.crypto.minute.sign({name:“ECDSA”,hash:{name:“SHA-256”},//可以是“SHA-1”、“SHA-256”、“SHA-384”或“SHA-512”},key,//来自generateKey或上面的importKey//CryptoKey convertStringToArrayBufferView(msg)//ArrayBuffer您要签名的数据)。然后(函数(签名){return signature;}
我使用。然后获取签名过程的密钥
…但是
。然后(函数(x){return x;})
什么都不是…除非你真的需要额外的“勾号”延迟(你不需要),否则这是一个不操作,什么都不做,冗余就像拥有一个
函数noop(x){return x;}
…为什么要这样做,说
var x=noop(4)
而不是
var x=4
-使零感似乎在Edge中根本不支持ECDSA。请参阅