adium/adium

Now actually hooked up the "Verify..." button to a window.
libotr4.0.0
2013-07-10, Thijs Alkemade
4b20347576c8
Parents 088707cab4f5
Children febebfec4863
Now actually hooked up the "Verify..." button to a window.
--- a/Frameworks/Adium Framework/Source/AIContentControllerProtocol.h Wed Jul 10 17:29:30 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIContentControllerProtocol.h Wed Jul 10 23:30:38 2013 +0200
@@ -258,4 +258,6 @@
- (void)requestSecureOTRMessaging:(BOOL)inSecureMessaging inChat:(AIChat *)inChat;
- (void)promptToVerifyEncryptionIdentityInChat:(AIChat *)inChat;
+- (void)questionVerifyEncryptionIdentityInChat:(AIChat *)inChat;
+- (void)sharedVerifyEncryptionIdentityInChat:(AIChat *)inChat;
@end
--- a/Resources/AIOTRTopBarUnverifiedContactController.xib Wed Jul 10 17:29:30 2013 +0200
+++ b/Resources/AIOTRTopBarUnverifiedContactController.xib Wed Jul 10 23:30:38 2013 +0200
@@ -15,8 +15,11 @@
<string>NSButtonCell</string>
<string>NSCustomObject</string>
<string>NSCustomView</string>
+ <string>NSMatrix</string>
<string>NSTextField</string>
<string>NSTextFieldCell</string>
+ <string>NSView</string>
+ <string>NSWindowTemplate</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -85,14 +88,14 @@
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">4195328</int>
<string key="NSContents">Your conversation is encrypted, but the contact is unverified.</string>
- <object class="NSFont" key="NSSupport">
+ <object class="NSFont" key="NSSupport" id="992535413">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="453567343"/>
- <object class="NSColor" key="NSBackgroundColor">
+ <object class="NSColor" key="NSBackgroundColor" id="159824319">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
@@ -101,7 +104,7 @@
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
- <object class="NSColor" key="NSTextColor">
+ <object class="NSColor" key="NSTextColor" id="701737385">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
@@ -128,6 +131,271 @@
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSClassName">NSView</string>
</object>
+ <object class="NSWindowTemplate" id="121513570">
+ <int key="NSWindowStyleMask">15</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{624, 434}, {480, 270}}</string>
+ <int key="NSWTFlags">611845120</int>
+ <string key="NSWindowTitle">Verify</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <nil key="NSUserInterfaceItemIdentifier"/>
+ <object class="NSView" key="NSWindowView" id="793506965">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="NSTextField" id="281619715">
+ <reference key="NSNextResponder" ref="793506965"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 182}, {446, 68}}</string>
+ <reference key="NSSuperview" ref="793506965"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="810703845"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <string key="NSAntiCompressionPriority">{250, 750}</string>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="731970894">
+ <int key="NSCellFlags">67108864</int>
+ <int key="NSCellFlags2">272891904</int>
+ <string type="base64-UTF8" key="NSContents">WW91ciBjb252ZXJzYXRpb24gd2l0aCAlQCBpcyBlbmNyeXB0ZWQuIEhvd2V2ZXIsIHlvdSBzaG91bGQg
+bWFrZSBzdXJlIHlvdSByZWFsbHkgYXJlIHRhbGtpbmcgdG8gJUAuCgpZb3UgY2FuIGF1dGhlbnRpY2F0
+ZSAlQCBpbiB0aGUgZm9sbG93aW5nIHdheXM6A</string>
+ <object class="NSFont" key="NSSupport">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">13</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <string key="NSCellIdentifier">_NS:9</string>
+ <reference key="NSControlView" ref="281619715"/>
+ <reference key="NSBackgroundColor" ref="159824319"/>
+ <reference key="NSTextColor" ref="701737385"/>
+ </object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+ <bool key="NSControlAutosetMaxLayoutWidth">YES</bool>
+ </object>
+ <object class="NSMatrix" id="810703845">
+ <reference key="NSNextResponder" ref="793506965"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 86}, {440, 88}}</string>
+ <reference key="NSSuperview" ref="793506965"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="716389044"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="NSEnabled">YES</bool>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+ <int key="NSNumRows">3</int>
+ <int key="NSNumCols">1</int>
+ <array class="NSMutableArray" key="NSCells">
+ <object class="NSButtonCell" id="822288046">
+ <int key="NSCellFlags">-2080374784</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Secret question: Ask a question only %@ can answer.</string>
+ <reference key="NSSupport" ref="992535413"/>
+ <reference key="NSControlView" ref="810703845"/>
+ <int key="NSTag">1</int>
+ <int key="NSButtonFlags">1211912448</int>
+ <int key="NSButtonFlags2">0</int>
+ <object class="NSButtonImageSource" key="NSAlternateImage" id="307356975">
+ <string key="NSImageName">NSRadioButton</string>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ <object class="NSButtonCell" id="88203082">
+ <int key="NSCellFlags">67108864</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Shared secret: You have previously agreed on a secret.</string>
+ <reference key="NSSupport" ref="992535413"/>
+ <reference key="NSControlView" ref="810703845"/>
+ <int key="NSTag">2</int>
+ <int key="NSButtonFlags">1211912448</int>
+ <int key="NSButtonFlags2">0</int>
+ <object class="NSImage" key="NSNormalImage">
+ <int key="NSImageFlags">549453824</int>
+ <string key="NSSize">{18, 18}</string>
+ <array class="NSMutableArray" key="NSReps">
+ <array>
+ <integer value="0"/>
+ <object class="NSBitmapImageRep">
+ <object class="NSData" key="NSTIFFRepresentation">
+ <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
+ </object>
+ </object>
+ </array>
+ </array>
+ <object class="NSColor" key="NSColor" id="467056780">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ </object>
+ <reference key="NSAlternateImage" ref="307356975"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ <object class="NSButtonCell" id="584378176">
+ <int key="NSCellFlags">67108864</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Manually verify their fingerprint.</string>
+ <reference key="NSSupport" ref="992535413"/>
+ <reference key="NSControlView" ref="810703845"/>
+ <int key="NSTag">3</int>
+ <int key="NSButtonFlags">1211912448</int>
+ <int key="NSButtonFlags2">0</int>
+ <reference key="NSAlternateImage" ref="307356975"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ </array>
+ <string key="NSCellSize">{440, 28}</string>
+ <string key="NSIntercellSpacing">{4, 2}</string>
+ <int key="NSMatrixFlags">1151868928</int>
+ <string key="NSCellClass">NSActionCell</string>
+ <object class="NSButtonCell" key="NSProtoCell" id="256775107">
+ <int key="NSCellFlags">67108864</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Radio</string>
+ <reference key="NSSupport" ref="992535413"/>
+ <int key="NSButtonFlags">1211912448</int>
+ <int key="NSButtonFlags2">0</int>
+ <object class="NSImage" key="NSNormalImage">
+ <int key="NSImageFlags">549453824</int>
+ <string key="NSSize">{18, 18}</string>
+ <array class="NSMutableArray" key="NSReps">
+ <array>
+ <integer value="0"/>
+ <object class="NSBitmapImageRep">
+ <object class="NSData" key="NSTIFFRepresentation">
+ <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
+IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
+29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
+dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
+AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
+AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
+0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
+7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
+5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
+3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
+AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
+AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
+6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
+/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
+///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
+YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
+AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
+AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
+AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
+AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
+AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
+ </object>
+ </object>
+ </array>
+ </array>
+ <reference key="NSColor" ref="467056780"/>
+ </object>
+ <reference key="NSAlternateImage" ref="307356975"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ </object>
+ <reference key="NSSelectedCell" ref="822288046"/>
+ <reference key="NSBackgroundColor" ref="159824319"/>
+ <object class="NSColor" key="NSCellBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <reference key="NSFont" ref="992535413"/>
+ <bool key="NSAutorecalculatesCellSize">YES</bool>
+ </object>
+ <object class="NSButton" id="142825019">
+ <reference key="NSNextResponder" ref="793506965"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{396, 13}, {70, 32}}</string>
+ <reference key="NSSuperview" ref="793506965"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="784593831">
+ <int key="NSCellFlags">67108864</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Next</string>
+ <reference key="NSSupport" ref="992535413"/>
+ <string key="NSCellIdentifier">_NS:9</string>
+ <reference key="NSControlView" ref="142825019"/>
+ <int key="NSButtonFlags">-2038284288</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+ </object>
+ <object class="NSButton" id="716389044">
+ <reference key="NSNextResponder" ref="793506965"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{314, 13}, {82, 32}}</string>
+ <reference key="NSSuperview" ref="793506965"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="142825019"/>
+ <string key="NSReuseIdentifierKey">_NS:9</string>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="524015224">
+ <int key="NSCellFlags">67108864</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Cancel</string>
+ <reference key="NSSupport" ref="992535413"/>
+ <string key="NSCellIdentifier">_NS:9</string>
+ <reference key="NSControlView" ref="716389044"/>
+ <int key="NSButtonFlags">-2038284288</int>
+ <int key="NSButtonFlags2">129</int>
+ <string key="NSAlternateContents"/>
+ <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+ </object>
+ </array>
+ <string key="NSFrameSize">{480, 270}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="281619715"/>
+ <string key="NSReuseIdentifierKey">_NS:20</string>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
+ <string key="NSMaxSize">{10000000000000, 10000000000000}</string>
+ <bool key="NSWindowIsRestorable">YES</bool>
+ </object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
@@ -171,6 +439,46 @@
</object>
<int key="connectionID">23</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">verificationWindow</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="121513570"/>
+ </object>
+ <int key="connectionID">37</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">label_explanation</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="281619715"/>
+ </object>
+ <int key="connectionID">39</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">matrix_verificationChoices</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="810703845"/>
+ </object>
+ <int key="connectionID">40</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">okay:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="142825019"/>
+ </object>
+ <int key="connectionID">41</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">cancel:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="716389044"/>
+ </object>
+ <int key="connectionID">42</int>
+ </object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@@ -241,13 +549,120 @@
<reference key="object" ref="667515101"/>
<reference key="parent" ref="453567343"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">24</int>
+ <reference key="object" ref="121513570"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="793506965"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">25</int>
+ <reference key="object" ref="793506965"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="281619715"/>
+ <reference ref="810703845"/>
+ <reference ref="142825019"/>
+ <reference ref="716389044"/>
+ </array>
+ <reference key="parent" ref="121513570"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">26</int>
+ <reference key="object" ref="281619715"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="731970894"/>
+ </array>
+ <reference key="parent" ref="793506965"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">27</int>
+ <reference key="object" ref="731970894"/>
+ <reference key="parent" ref="281619715"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">28</int>
+ <reference key="object" ref="810703845"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="256775107"/>
+ <reference ref="822288046"/>
+ <reference ref="88203082"/>
+ <reference ref="584378176"/>
+ </array>
+ <reference key="parent" ref="793506965"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">29</int>
+ <reference key="object" ref="256775107"/>
+ <reference key="parent" ref="810703845"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">30</int>
+ <reference key="object" ref="822288046"/>
+ <reference key="parent" ref="810703845"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">31</int>
+ <reference key="object" ref="88203082"/>
+ <reference key="parent" ref="810703845"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">32</int>
+ <reference key="object" ref="584378176"/>
+ <reference key="parent" ref="810703845"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">33</int>
+ <reference key="object" ref="142825019"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="784593831"/>
+ </array>
+ <reference key="parent" ref="793506965"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">34</int>
+ <reference key="object" ref="784593831"/>
+ <reference key="parent" ref="142825019"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">35</int>
+ <reference key="object" ref="716389044"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="524015224"/>
+ </array>
+ <reference key="parent" ref="793506965"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">36</int>
+ <reference key="object" ref="524015224"/>
+ <reference key="parent" ref="716389044"/>
+ </object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="YES" key="24.IBNSWindowAutoPositionCentersHorizontal"/>
+ <boolean value="YES" key="24.IBNSWindowAutoPositionCentersVertical"/>
+ <string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <boolean value="NO" key="24.NSWindowTemplate.visibleAtLaunch"/>
+ <string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="30.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="31.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="32.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="33.CustomClassName">AILocalizationButton</string>
+ <string key="33.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="34.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="35.CustomClassName">AILocalizationButton</string>
+ <string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.CustomClassName">AILocalizationButton</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -260,7 +675,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
- <int key="maxID">23</int>
+ <int key="maxID">42</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -350,20 +765,31 @@
<object class="IBPartialClassDescription">
<string key="className">AIOTRTopBarUnverifiedContactController</string>
<string key="superclassName">AIMessageViewTopBarController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">verify:</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">verify:</string>
- <object class="IBActionInfo" key="NS.object.0">
+ <dictionary class="NSMutableDictionary" key="actions">
+ <string key="cancel:">id</string>
+ <string key="okay:">id</string>
+ <string key="verify:">id</string>
+ </dictionary>
+ <dictionary class="NSMutableDictionary" key="actionInfosByName">
+ <object class="IBActionInfo" key="cancel:">
+ <string key="name">cancel:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo" key="okay:">
+ <string key="name">okay:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo" key="verify:">
<string key="name">verify:</string>
<string key="candidateClassName">id</string>
</object>
- </object>
+ </dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="button_configure">NSButton</string>
<string key="label_description">NSTextField</string>
+ <string key="label_explanation">NSTextField</string>
+ <string key="matrix_verificationChoices">NSMatrix</string>
+ <string key="verificationWindow">NSWindow</string>
<string key="view_backgroundView">AITopBarGradientView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
@@ -375,6 +801,18 @@
<string key="name">label_description</string>
<string key="candidateClassName">NSTextField</string>
</object>
+ <object class="IBToOneOutletInfo" key="label_explanation">
+ <string key="name">label_explanation</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo" key="matrix_verificationChoices">
+ <string key="name">matrix_verificationChoices</string>
+ <string key="candidateClassName">NSMatrix</string>
+ </object>
+ <object class="IBToOneOutletInfo" key="verificationWindow">
+ <string key="name">verificationWindow</string>
+ <string key="candidateClassName">NSWindow</string>
+ </object>
<object class="IBToOneOutletInfo" key="view_backgroundView">
<string key="name">view_backgroundView</string>
<string key="candidateClassName">AITopBarGradientView</string>
--- a/Source/AIContentController.m Wed Jul 10 17:29:30 2013 +0200
+++ b/Source/AIContentController.m Wed Jul 10 23:30:38 2013 +0200
@@ -21,6 +21,7 @@
#import "AdiumFormatting.h"
#import "AdiumMessageEvents.h"
#import "AdiumContentFiltering.h"
+#import "AdiumOTREncryption.h"
#import <Adium/AIAccountControllerProtocol.h>
#import <Adium/AIChatControllerProtocol.h>
--- a/Source/AIOTRTopBarUnverifiedContactController.h Wed Jul 10 17:29:30 2013 +0200
+++ b/Source/AIOTRTopBarUnverifiedContactController.h Wed Jul 10 23:30:38 2013 +0200
@@ -21,9 +21,14 @@
IBOutlet AITopBarGradientView *view_backgroundView;
IBOutlet NSTextField *label_description;
IBOutlet NSButton *button_configure;
-
+
+ IBOutlet NSWindow *verificationWindow;
+ IBOutlet NSTextField *label_explanation;
+ IBOutlet NSMatrix *matrix_verificationChoices;
}
- (IBAction)verify:(id)sender;
+- (IBAction)okay:(id)sender;
+- (IBAction)cancel:(id)sender;
@end
--- a/Source/AIOTRTopBarUnverifiedContactController.m Wed Jul 10 17:29:30 2013 +0200
+++ b/Source/AIOTRTopBarUnverifiedContactController.m Wed Jul 10 23:30:38 2013 +0200
@@ -19,6 +19,9 @@
#import <Adium/AIPreferenceControllerProtocol.h>
#import "AIStringAdditions.h"
#import <Adium/AIContentControllerProtocol.h>
+#import <Adium/AIListObject.h>
+
+#import "AIOTRSMPSecretAnswerWindowController.h"
@implementation AIOTRTopBarUnverifiedContactController
@@ -49,7 +52,48 @@
- (IBAction)verify:(id)sender
{
+ NSString *UID = ((AIListObject *)chat.listObject).formattedUID;
+ [verificationWindow makeKeyAndOrderFront:nil];
+
+ [label_explanation setStringValue:[NSString
+ stringWithFormat:AILocalizedString(@"Your conversation with %@ is encrypted. However, you should make sure you really are talking to %@.\n\n"
+ @"You can authenticate %@ in the following ways:", nil), UID, UID, UID]];
+
+ NSButtonCell *questionCell = [matrix_verificationChoices cellWithTag:1];
+ NSButtonCell *secretCell = [matrix_verificationChoices cellWithTag:2];
+ NSButtonCell *manualCell = [matrix_verificationChoices cellWithTag:3];
+
+ [questionCell setTitle:[NSString stringWithFormat:AILocalizedString(@"Secret question: Ask a question only %@ can answer.", "radio button when verifying OTR"), UID]];
+ [secretCell setTitle:AILocalizedString(@"Shared secret: You have previously agreed on a secret.", "radio button when verifying OTR")];
+ [manualCell setTitle:AILocalizedString(@"Manually verify their fingerprint.", "radio button when verifying OTR")];
+
+ [matrix_verificationChoices selectCellAtRow:0 column:0];
+}
+
+- (IBAction)okay:(id)sender
+{
+ switch ([matrix_verificationChoices selectedTag]) {
+ case 1:
+ [adium.contentController questionVerifyEncryptionIdentityInChat:chat];
+ break;
+ case 2:
+ [adium.contentController sharedVerifyEncryptionIdentityInChat:chat];
+ break;
+ case 3:
+ [adium.contentController promptToVerifyEncryptionIdentityInChat:chat];
+ break;
+ default:
+ AILogWithSignature(@"Shouldn't happen: %ld!", (long)[matrix_verificationChoices selectedTag]);
+ break;
+ }
+
+ [verificationWindow orderOut:nil];
+}
+
+- (IBAction)cancel:(id)sender
+{
+ [verificationWindow orderOut:nil];
}
- (void)chatStatusChanged:(NSNotification *)notification
--- a/Source/AdiumOTREncryption.h Wed Jul 10 17:29:30 2013 +0200
+++ b/Source/AdiumOTREncryption.h Wed Jul 10 23:30:38 2013 +0200
@@ -45,6 +45,7 @@
void otrg_ui_forget_fingerprint(Fingerprint *fingerprint);
void otrg_plugin_write_fingerprints(void);
void otrg_ui_update_keylist(void);
+void update_security_details_for_context(ConnContext *context);
TrustLevel otrg_plugin_context_to_trust(ConnContext *context);
--- a/Source/AdiumOTREncryption.m Wed Jul 10 17:29:30 2013 +0200
+++ b/Source/AdiumOTREncryption.m Wed Jul 10 23:30:38 2013 +0200
@@ -75,7 +75,6 @@
static AdiumOTREncryption *adiumOTREncryption = nil;
void otrg_ui_update_fingerprint(void);
-void update_security_details_for_context(ConnContext *context);
void send_default_query_to_chat(AIChat *inChat);
void disconnect_from_chat(AIChat *inChat);
void disconnect_from_context(ConnContext *context);
@@ -695,6 +694,7 @@
[adium.contentController displayEvent:[[AIHTMLDecoder decodeHTML:localizedMessage] string]
ofType:@"encryption"
inChat:chat];
+ break;
}
case OTRL_MSGEVENT_CONNECTION_ENDED: {
NSString *localizedMessage = [NSString stringWithFormat:AILocalizedStringFromTableInBundle(@"%@ is no longer using encryption; you should cancel encryption on your side.", @"Message when the remote contact cancels his half of an encrypted conversation. %@ will be a name.", [NSBundle bundleForClass:[AdiumOTREncryption class]], nil), listContact.UID];
@@ -703,6 +703,7 @@
[adium.contentController displayEvent:[[AIHTMLDecoder decodeHTML:localizedMessage] string]
ofType:@"encryption"
inChat:chat];
+ break;
}
default:
break;
--- a/Source/ESOTRUnknownFingerprintController.m Wed Jul 10 17:29:30 2013 +0200
+++ b/Source/ESOTRUnknownFingerprintController.m Wed Jul 10 23:30:38 2013 +0200
@@ -154,7 +154,8 @@
//Write the new info to disk, redraw the UI
otrg_plugin_write_fingerprints();
otrg_ui_update_keylist();
- }
+ update_security_details_for_context(context);
+ }
}
@end