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