Please see here https://github.com/whatwg/streams/issues/33, I realized that this would apply to operations like textDecoder too without the need of an explicit stream option, so that's no more WebCrypto only related.

Regards

Aymeric

Le 07/11/2013 11:25, Aymeric Vitte a écrit :

Le 07/11/2013 10:42, Takeshi Yoshino a écrit :
On Thu, Nov 7, 2013 at 6:27 PM, Aymeric Vitte <[email protected] <mailto:[email protected]>> wrote:


    Le 07/11/2013 10:21, Takeshi Yoshino a écrit :
    On Thu, Nov 7, 2013 at 6:05 PM, Aymeric Vitte
    <[email protected] <mailto:[email protected]>> wrote:

        stop/resume:

        Indeed as I mentioned this is related to WebCrypto Issue22
        but I don't think this is a unique case. Issue22 was closed
        because of lack of proposals to solve it, apparently I was
        the only one to care about it (but I saw recently some other
        messages that seem to be related), and finally this would
        involve a public clone method with associated security concerns.

        But with Streams it could be different, the application will
        internally clone the state of the operation probably
        eliminating the security issues, as simple as that.

        To describe simply the use case, let's take a progressive
        hash computing 4 bytes by 4 bytes:

        incoming stream: ABCDE bytes
        hash operation: process ABCD, keep E for the next computation
        incoming stream: FGHI bytes + STOP-EOF
        hash operation: process EFGH, process STOP-EOF: clone the
        state of the hash, close the operation: digest hash with I


    So, here, partial hash for ABCDEFGH is output

    No, you get the digest for ABCDEFGHI and you get a cloned
    operation which will restart from ABCDEFGH



OK.


        resume:
        incoming stream: JKLF
        hash operation (clone): process IJKL, keep F for next
        computation
        etc...


    and if we close the stream here we'll get a hash for
    ABCDEFGHIJKLFPPP (P is padding). Right?

    If you close the stream here you get the digest for ABCDEFGHIJKLF


resume happens implicitly when new data comes in without explicit method call say resume()?

Good question, I would say yes, so we don't need resume finally, but maybe others have different opinion, let's ask whatwg if they foresee this case.


        So you do not restart the operation as if it was the first
        time it was receiving data, you just continue it from the
        state it was when stop was received.

        That's not so unusual to do this, it has been requested many
        times in node.


-- Peersm :http://www.peersm.com
    node-Tor :https://www.github.com/Ayms/node-Tor
    GitHub :https://www.github.com/Ayms



--
Peersm :http://www.peersm.com
node-Tor :https://www.github.com/Ayms/node-Tor
GitHub :https://www.github.com/Ayms

--
Peersm : http://www.peersm.com
node-Tor : https://www.github.com/Ayms/node-Tor
GitHub : https://www.github.com/Ayms

Reply via email to