decrypt = async (key, encrypted) => {
  const { ciphertextArrayBuffer, iv } = sliceEncryptedArrayBuffer(encrypted)

  const plaintextArrayBuffer = await windowOrSelfObject().crypto.subtle.decrypt(
    getCiphertextParams(iv),
    key,
    ciphertextArrayBuffer
  )
  return plaintextArrayBuffer
}
@param {CryptoKey} key
@param {ArrayBuffer} encrypted - the encrypted Array Buffer
@returns {object} plaintext