otrv4 / otrv4

Off-the-Record Messaging Protocol version 4. -This is a draft- This repository is a mirror of http://bugs.otr.im/otrv4/otrv4

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Check if the FINISHED and START states are working correctly

claucece opened this issue · comments

@cobratbq I think you mentioned something about this.. can you clarify/remain me? :) Thanks!

Based on the title I'm not sure anymore. I can think of these:

  1. In my opinion the FINISHED and START states should be shared between OTRv3 and OTRv4. (I believe this came up in the discussion in December about the protocol state machine.)
  2. I can imagine that you'd want to verify that we transition to the appropriate state (either START or FINISHED) based on whether the action is user-initiated.
    I believe Session expiration has an issue here: session expiration is not a user-initiated action, therefore you would want to transition to FINISHED such that the user cannot send a badly-timed message in plaintext by accident. (Although I don't think we've discussed this before.)

Other than that I can't think of anything right now.

Hey!

Thanks for the comment!

In my opinion the FINISHED and START states should be shared between OTRv3 and OTRv4. (I believe this came up in the discussion in December about the protocol state machine.)

I agree on the START state, as a participant can receive a request for an OTRv3 conversation in a START state. Around the FINISHED state, I don't agree, as this is a state you enter only when a OTRv4 TLV disconnected is received and nothing should be sent in this state. What do you think @olabini ?

I believe Session expiration has an issue here: session expiration is not a user-initiated action, therefore you would want to transition to FINISHED such that the user cannot send a badly-timed message in plaintext by accident. (Although I don't think we've discussed this before.)

I agree on this. It has been changed.

Thanks!

Around the FINISHED state, I don't agree, as this is a state you enter only when a OTRv4 TLV disconnected is received and nothing should be sent in this state.

I don't have a strong opinion about FINISHED. If you want to keep the option open to distinguish between ending OTRv3 and ending OTRv4 (and their follow-up actions) then sure, let's do that.
In summary, that would mean that START is the only common state that connects the OTRv3 and OTRv4 protocol, IIRC from the top of my head. It makes sense to keep OTRv3 and OTRv4 as much separated as possible.

@olabini can you check this?

Solved ;)