Switch to a more heavily TOFU model for identity keys.

1) There is no longer a concept of "verified" or "unverified."
   Only "what we saw last time" and "different from last time."

2) Let's eliminate "verify session," since we're all about
   identity keys now.

3) Mark manually processed key exchanges as processed.
This commit is contained in:
Moxie Marlinspike
2013-05-23 16:36:24 -07:00
parent ef7977128b
commit 24fc93e9ae
33 changed files with 497 additions and 1019 deletions

View File

@@ -1,59 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:background="@drawable/background_pattern_repeat">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<TextView android:id="@+id/description_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="17dip"
android:layout_marginBottom="5dip" />
<TextView android:id="@+id/signature_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="17dip"
android:textStyle="italic"
android:layout_marginBottom="10dip" />
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button android:id="@+id/verify_session_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/receive_key_activity__session"
android:visibility="gone"
android:gravity="center" />
<LinearLayout android:paddingRight="16dip"
android:paddingLeft="16dip"
android:paddingTop="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<Button android:id="@+id/verify_identity_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/receive_key_activity__identities"
android:visibility="gone"
android:gravity="center" />
<Button android:id="@+id/ok_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/receive_key_activity__complete_exchange"
android:gravity="center"/>
<Button android:id="@+id/cancel_button"
android:text="@android:string/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
</LinearLayout>
</LinearLayout>
<TextView style="@style/Registration.Description"
android:id="@+id/description_text"
android:layout_width="fill_parent"
android:layout_marginBottom="16dip"
android:layout_marginTop="16dip"
android:text="@string/receive_key_activity__the_signature_on_this_key_exchange_is_different"/>
<LinearLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginBottom="7dip"
android:orientation="horizontal">
<Button android:id="@+id/cancel_button"
android:text="@android:string/cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button android:id="@+id/ok_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/receive_key_activity__complete"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</ScrollView>

View File

@@ -1,24 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:scrollbarStyle="insideOverlay"
android:fadingEdgeLength="16dip" />
<TextView android:id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/review_identities__you_don_t_currently_have_any_identity_keys_in_your_trust_database"
android:textAppearance="?android:attr/textAppearanceMedium"
android:padding="20dip" />
</LinearLayout>
<fragment android:id="@+id/fragment_content"
android:name="org.thoughtcrime.securesms.ReviewIdentitiesFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:scrollbarStyle="insideOverlay"
android:fadingEdgeLength="16dip" />
<TextView android:id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/review_identities__you_don_t_currently_have_any_identity_keys_in_your_trust_database"
android:textAppearance="?android:attr/textAppearanceMedium"
android:padding="20dip" />
</LinearLayout>