我正在使用带有以下代码的浏览器加密 API生成和导出 JSON Web 密钥 (jwk)(请参阅RFC 7517 ) (感谢GitHub 上这个出色的 webCrypto 示例页面):
async function makeKey(){
const key = await window.crypto.subtle.generateKey(
{ name: "AES-CTR", length: 128 },
false,
["encrypt", "decrypt"]
)
return window.crypto.subtle.exportKey("jwk", key)
}
我得到的是一个带有许多属性的 JSON 对象,与MDN 文档中的非常相似,看起来像这样:
{
alg: "A256CTR",
ext: true,
k: "...", //the actual key, a random string of characters
key_ops: undefined,
kty: "oct"
}
所有上述属性都在上面链接的 RFC 中定义,除了ext
. 我查看了许多来源(包括但不仅是 MDN 和 RFC),但似乎找不到定义。虽然一切都很好,只是按照上面的定义保留它,但我更愿意(特别是对于类似的东西crypto
)知道一切都是为了什么。那么,ext
jwk 属性的目的是什么?