[OTR-dev] OTR encryption state
Ian Goldberg
ian at cypherpunks.ca
Thu Jan 27 09:36:20 EST 2005
[Side note: libotr now can have separate UserStates (instead of the
static context_root and privkey_root). It also will reencrypt and
retransmit the last message it sent encrypted (if it's very recent)
in the event that the other guy lost his OTR state. (Paul's been
requesting that since the dawn of time.)]
On Wed, Jan 26, 2005 at 01:21:15PM -0800, verbal wrote:
> that sounds reasonable. we should identify the most common usage
> scenario and set that as the default. also, i would like to change the
> first one and reword the third one.
>
> 1) manual OTR messaging
> 2) OTR whenever possible messaging.
> 3) OTR only messaging.
>
> so while my first mode and yours is different, with the three
> combined, they will have the same functionality. i think the
> difference between our wording for mode 1 will just end up being UI
> semantics. maybe we should get some UI people to weigh in on this.
Implementation-wise, what do you think of adding a callback that looks
something like:
OtrlMessagePolicy determine_policy(userstate, accountname, protocol,
username, context);
which returns information about what OTR features should and should not
be enabled for this context?
NEVER: Pretend OTR isn't enabled at all for this user
ALWAYS: It is an error to send unencrypted data to this user.
If you try, you'll get a notify(ERROR) callback and
the message to be sent will be turned into an OTR Error
message that the other side will see.
OPPORTUNISTIC: (the current mode) probe the other side with the
whitespace tag, and reply to any indication that he
speaks OTR with a Key Exchange Message (if we're not
already private)
MANUAL: Don't send the whitespace tag, and don't reply to one you
receive. Respond to explicit OTR Query Messages and Key Exchange
Messages, but not other indications of OTR. This mode is
useful if you for some reason want to communicate in the
clear, even though you know the other guy speaks OTR, and
also allow either side to start a private conversation
at any time. [If you don't want to allow that last
condition, use NEVER instead.]
- Ian
More information about the OTR-dev
mailing list