Технически, crypto.subtle.deriveKey
с name: 'AES-KW'
в качестве derivedKeyAlgorithm
предоставляет ключ, который можно использовать для упаковки другой ключ в соответствии с RF C 3394 , см. Также AES-KW
. Для этого ['wrapKey', 'unwrapKey']
должен использоваться как keyUsages
вместо ['encrypt', 'decrypt']
, см. Также этот пример (getKey
) .
С name: 'AES-GCM'
как derivedKeyAlgorithm
и ['encrypt', 'decrypt']
как keyUsages
предоставляется ключ, который можно использовать для шифрования и дешифрования с AES-GCM.
Пример для AES-KW
:
crypto.subtle.generateKey(
{ name: 'ECDH', namedCurve: 'P-521' },
true,
['deriveKey']
).then(function(keypair){
crypto.subtle.deriveKey(
{ name: 'ECDH', public: keypair.publicKey }, // In practice, this is the public key of the recipient
keypair.privateKey, // In practice, this is the own private key
{ name: 'AES-KW', length: 256 },
true,
["wrapKey", "unwrapKey"],
).then(function(wrappingKey){
console.log(wrappingKey);
})
})