Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendan Taylor <bct@diffeq.com>2007-06-08 23:42:02 +0400
committerBrendan Taylor <bct@diffeq.com>2007-06-08 23:42:02 +0400
commit4f2cd0a0fc308fb62ec43ff6e9940d0d1d81d9e1 (patch)
tree299a2df5a503fc2205e7f0f04fdbd72e5398d643
parent7898686680b20151ef6511ba17f48fd827a7ae69 (diff)
stubs for XEP-0116
-rw-r--r--data/glade/chat_control_popup_menu.glade10
-rw-r--r--src/chat_control.py8
-rw-r--r--src/common/stanza_session.py96
3 files changed, 113 insertions, 1 deletions
diff --git a/data/glade/chat_control_popup_menu.glade b/data/glade/chat_control_popup_menu.glade
index b6a696355..3c56e29fa 100644
--- a/data/glade/chat_control_popup_menu.glade
+++ b/data/glade/chat_control_popup_menu.glade
@@ -66,6 +66,16 @@
</child>
<child>
+ <widget class="GtkCheckMenuItem" id="toggle_e2e_menuitem">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Toggle XEP-0116 Encryption</property>
+ <property name="use_underline">True</property>
+ <property name="active">False</property>
+ <signal name="activate" handler="_on_toggle_e2e_menuitem_activate" last_modification_time="Tue, 05 Jun 2007 22:22:40 MDT"/>
+ </widget>
+ </child>
+
+ <child>
<widget class="GtkCheckMenuItem" id="compact_view_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Compact View Alt+C</property>
diff --git a/src/chat_control.py b/src/chat_control.py
index a9a816c1c..c54fe026c 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -1255,7 +1255,7 @@ class ChatControl(ChatControlBase):
# this is here (and not in send_chatstate)
# because we want it sent with REAL message
# (not standlone) eg. one that has body
-
+
if contact.our_chatstate:
# We already asked for xep 85, don't ask it twice
composing_jep = 'asked_once'
@@ -1939,6 +1939,12 @@ class ChatControl(ChatControlBase):
tb = self.xml.get_widget('gpg_togglebutton')
tb.set_active(not tb.get_active())
+ def _on_toggle_e2e_menuitem_activate(self, widget):
+ if 'security' in self.session.features and self.session.features['security'] == 'e2e':
+ self.session.negotiate_e2e()
+ else:
+ self.session.terminate_e2e()
+
def got_connected(self):
ChatControlBase.got_connected(self)
# Refreshing contact
diff --git a/src/common/stanza_session.py b/src/common/stanza_session.py
index b150e5ee1..98074c833 100644
--- a/src/common/stanza_session.py
+++ b/src/common/stanza_session.py
@@ -28,6 +28,102 @@ class StanzaSession:
self.thread_id = self.generate_thread_id()
self.last_send = 0
+ self.features = {}
def generate_thread_id(self):
return "".join([random.choice(string.letters) for x in xrange(0,32)])
+
+ def negotiate_e2e():
+
+ pass
+
+
+#<x type='form' xmlns='jabber:x:data'>
+# <field type='hidden' var='FORM_TYPE'>
+# <value>urn:xmpp:ssn</value>
+# </field>
+# <field type='boolean' var='accept'>
+# <value>1</value>
+# <required/>
+# </field>
+# <field type='list-single' var='otr'>
+# <option><value>false</value></option>
+# <option><value>true</value></option>
+# <required/>
+# </field>
+# <field type='list-single' var='disclosure'>
+# <option><value>never</value></option>
+# <required/>
+# </field>
+# <field type='list-single' var='security'>
+# <option><value>e2e</value></option>
+# <option><value>c2s</value></option>
+# <required/>
+# </field>
+# <field type='list-single' var='modp'>
+# <option><value>5</value></option>
+# <option><value>14</value></option>
+# <option><value>2</value></option>
+# <option><value>1</value></option>
+# </field>
+# <field type='hidden' var='crypt_algs'>
+# <value>aes128-ctr</value>
+# </field>
+# <field type='hidden' var='hash_algs'>
+# <value>sha256</value>
+# </field>
+# <field type='hidden' var='compress'>
+# <value>none</value>
+# </field>
+# <field type='list-multi' var='stanzas'>
+# <option><value>message</value></option>
+# <option><value>iq</value></option>
+# <option><value>presence</value></option>
+# </field>
+# <field type='hidden' var='init_pubkey'>
+# <value>none</value>
+# </field>
+# <field type='hidden' var='resp_pubkey'>
+# <value>none</value>
+# </field>
+# <field type='list-single' var='ver'>
+# <option><value>1.3</value></option>
+# <option><value>1.2</value></option>
+# </field>
+# <field type='hidden' var='rekey_freq'>
+# <value>4294967295</value>
+# </field>
+# <field type='hidden' var='my_nonce'>
+# <value> ** Alice's Base64 encoded ESession ID ** </value>
+# </field>
+# <field type='hidden' var='sas_algs'>
+# <value>sas28x5</value>
+# </field>
+# <field type='hidden' var='dhhashes'>
+# <value> ** Base64 encoded value of He5 ** </value>
+# <value> ** Base64 encoded value of He14 ** </value>
+# <value> ** Base64 encoded value of He2 ** </value>
+# <value> ** Base64 encoded value of He1 ** </value>
+# </field>
+# </x>
+
+ def terminate_e2e():
+ pass
+
+#<message from='alice@example.org/pda' to='bob@example.com/laptop'>
+# <thread>ffd7076498744578d10edabfe7f4a866</thread>
+# <c xmlns='http://www.xmpp.org/extensions/xep-0200.html#ns'>
+# <data> ** Base64 encoded encrypted terminate form ** </data>
+# <old> ** Base64 encoded old MAC key ** </old>
+# <mac> ** Base64 encoded a_mac ** </mac>
+# </c>
+#</message>
+
+# <feature xmlns='http://jabber.org/protocol/feature-neg'>
+# <x xmlns='jabber:x:data' type='submit'>
+# <field var='FORM_TYPE'>
+# <value>urn:xmpp:ssn</value>
+# </field>
+# <field var='terminate'><value>1</value></field>
+# </x>
+# </feature>