constructor () {
    const crypto = window.crypto || window.msCrypto
    this.subtle = crypto && (crypto.subtle || crypto.webkitSubtle)

    /**
     * @type {IExternalDecryptor}
     */
    this.externalDecryptor = null
  }
@param {Uint8Array} data
@param {BufferSource} key
@param {BufferSource} iv
@returns {Promise.<Uint8Array>}