Re: What happens if input ArrayBufferView changes during a WebCrypto operation ?

On Wed, Mar 6, 2013 at 11:33 AM, Mark Watson <watsonm@netflix.com> wrote:
> Our operations are asynchronous. We pass in ArrayBufferView objects. What is the expected behavior if the application changes the ArrayBufferView before the WebCrypto operation completes ?
>
> If the expectation is that the operation completes normally on the input data as it was when the call was made, then the UA either needs to make a copy of the data when the call is first made or do some fancy lazy copy-on-write thing to ensure the web crypto operation retains access to the original data.

Correct. That is what I was trying to express through the description
of pending data, but I recognize this needs work, and have been
working on rewriting this.

>
> Alternatively, we may say that the behavior is undefined if you modify the ArrayBuffer that you pass in.

If there is anything I have learned from C/C++, it's that undefined
behaviour is the root of all error.

>
> Are there other async web APIs that accept ArrayBufferView objects that have established a precedent for this ?
>
> …Mark

We can force it to be ArrayBuffer, to make it explicit there's a copy,
but the intent of using ABV was to give greater implementation
flexibility in optimization, while also allowing easier use for
developers.

Received on Wednesday, 6 March 2013 19:42:24 UTC