[OTR-dev] OTRv3 instance tag and session switching

Ian Goldberg ian at cypherpunks.ca
Tue Dec 10 08:17:33 EST 2013

On Tue, Dec 10, 2013 at 12:44:03PM +0200, M. D. wrote:
>  Hello again,
>  >I'm not sure what you mean by this.  Alice's OTR software will see one
>  >Commit message with sender tag 0x102 and one with tag 0x103.  It will
>  >then send one Key message with sender 0x101 and receiver 0x102, and one
>  >Key message with sending 0x101 and receiver 0x103.  The two key
>  >exchanges will proceed entirely independently, and Alice will end up
>  >with two ConnContexts (in libotr terms), one for each of Bob1 and Bob2.
> Okay, so Alice has two ConnContexts... What is going to happen if
> Alice receive an Error Message or Query Message? They do not contain
> instance tags so which one of Alice's two ConnContexts will handle the
> message?

Error Messages and Query Messages aren't handled by ConnContexts.  If
they cause Alice to try to start a new session, new sessions will start
with a Commit Message with a receiver instance 0, so that any instance
of Bob may respond.  In libotr, this is implemented via a "master
context" that remembers (for v3) just the secrets used to construct the
Commit Message.  But this implementation detail is not part of the spec;
you can implement it however you like.

> I think these are details that are worth mentioning in the protocol draft.

Yes, likely so.

   - Ian

More information about the OTR-dev mailing list