summaryrefslogtreecommitdiff
path: root/src/Channel_Interface_OTR1.xml
blob: bca0fcbcf897d55f5367d6bebb5104d73d31b359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" ?>
<node name="/Channel_Interface_OTR1" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <tp:copyright>Copyright © 2014 Collabora Ltd.</tp:copyright>
  <tp:license xmlns="http://www.w3.org/1999/xhtml">
    <p>This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.</p>

    <p>This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Lesser General Public License for more details.</p>

    <p>You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
      USA.</p>
  </tp:license>

  <interface name="im.telepathy.v1.Channel.Interface.OTR1"
    tp:causes-havoc="experimental">
    <tp:added version="Gabble 0.UNRELEASED">(Gabble-specific)</tp:added>
    <tp:requires interface="org.freedesktop.Telepathy.Channel"/>
    <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal"
                value="true"/>

    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>A simple D-Bus API <a
        href="https://otr.cypherpunks.ca/">Off The Record.</a>.</p>
      <p>In telepathy 0.x this interface must be implemented on a special bus
      name composed using the Connection bus name with ".OTR" suffix. The object
      path is the same as channel's. That special trick will go away in
      telepathy1.0</p>
    </tp:docstring>

    <property name="TrustLevel"
      tp:name-for-bindings="Trust_Level"
      type="u" access="read">
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>The current trust level of this channel:
            0=TRUST_NOT_PRIVATE, 1=TRUST_UNVERIFIED, 2=TRUST_PRIVATE,
            3=TRUST_FINISHED</p>
        <p>Clients MUST listen to PropertiesChanged to update UI when trust
        level changes.</p>
      </tp:docstring>
    </property>

    <property name="LocalFingerprint"
      tp:name-for-bindings="Local_Fingerprint"
      type="(say)" access="read">
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>User's current fingerprint. The first element is a human readable
        fingerprint that can be displayed to the user so he can communicate it
        to the other end by other means so he can trust it. The 2nd element is
        the fingerprint raw data.</p>
      </tp:docstring>
    </property>

    <property name="RemoteFingerprint"
      tp:name-for-bindings="Fingerprint"
      type="(say)" access="read">
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>The current fingerprint of the remote contact. Should be displayed
        to the user to update its trust level. The first element of the tuple
        is the fingerprint formatted to be displayed. The 2nd element is the
        fingerprint raw data that can be passed to TrustFingerprint</p>
      </tp:docstring>
    </property>

    <method name="TrustFingerprint"
      tp:name-for-bindings="Trust_Fingerprint">
      <tp:docstring>
        <p>Set whether or not the user trusts the given fingerprint.</p>
      </tp:docstring>

      <arg direction="in" name="Fingerprint" type="ay">
        <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
        <tp:docstring>
          The fingerprint.
        </tp:docstring>
      </arg>

      <arg direction="in" name="Trust" type="b">
        <tp:docstring>
          %TRUE if trusted, %FALSE otherwise.
        </tp:docstring>
      </arg>
    </method>

    <method name="Initialize"
      tp:name-for-bindings="Initialize">
      <tp:docstring>
        <p>Start an OTR session for this channel if the remote end supports it
        has well.</p>
      </tp:docstring>
    </method>

    <method name="Stop"
      tp:name-for-bindings="Stop">
      <tp:docstring>
        <p>Stops the OTR session.</p>
      </tp:docstring>
    </method>

    <tp:enum name="Trust_Level" type="u">
      <tp:docstring>
        <p>Enumeration describing trust level of this conversation. The trust
        level can only increase unless Initialize/Stop are called or
        TrustFingerprint with trust=false</p>
      </tp:docstring>
      <tp:enumvalue suffix="NotPrivate" value="0">
        <tp:docstring>
          <p>The conversation is currently unencrypted</p>
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="Unverified" value="1">
        <tp:docstring>
          <p>The conversation is currently encrypted but the remote end is not
          verified</p>
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="Private" value="2">
        <tp:docstring>
          <p>The conversation is currently encrypted and the remote end is
          verified</p>
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="Finished" value="3">
        <tp:docstring>
          <p>Remote end closed the OTR session, messages cannot be sent anymore.
          Either call Stop to continue unencrypted or Initialize to send
          encrypted messages again.</p>
        </tp:docstring>
      </tp:enumvalue>
    </tp:enum>
  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->