summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-09-26 14:51:33 +0200
committerChristian Grothoff <christian@grothoff.org>2021-09-26 14:51:33 +0200
commitc03840e32b6ac72497d317c3646304b30a9e9793 (patch)
tree698fad90c7356db59ccdeda95be5529d1235791d /contrib
parent68a5d98ff711be2069bf04e483466059284d324b (diff)
downloadanastasis-gtk-c03840e32b6ac72497d317c3646304b30a9e9793.tar.gz
anastasis-gtk-c03840e32b6ac72497d317c3646304b30a9e9793.tar.bz2
anastasis-gtk-c03840e32b6ac72497d317c3646304b30a9e9793.zip
integrate TOTP choice into authentication button list; add text to explain policy review
Diffstat (limited to 'contrib')
-rw-r--r--contrib/LICENSING4
-rw-r--r--contrib/Makefile.am1
-rw-r--r--contrib/anastasis_gtk_main_window.glade279
3 files changed, 170 insertions, 114 deletions
diff --git a/contrib/LICENSING b/contrib/LICENSING
index da054c1..2533ed4 100644
--- a/contrib/LICENSING
+++ b/contrib/LICENSING
@@ -20,3 +20,7 @@ noun_blindfold_3574196.svg
Anastasis SARL (official logo, used with permission):
logo.png
+
+FreeOTP (official logo, Free Software):
+freeotp.svg
+freeotp.png
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index ad7c839..2ef1d17 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -15,6 +15,7 @@ IMAGES = \
outline_video_camera_front_black_24dp.png \
outline_home_work_black_24dp.png \
ngi_ledger.png \
+ freeotp.png \
bandiera_stelle.png
EXTRA_DIST = \
diff --git a/contrib/anastasis_gtk_main_window.glade b/contrib/anastasis_gtk_main_window.glade
index 8f51d51..ddc546d 100644
--- a/contrib/anastasis_gtk_main_window.glade
+++ b/contrib/anastasis_gtk_main_window.glade
@@ -234,6 +234,7 @@ Author: Christian Grothoff, Dennis Neufeld
<object class="GtkImage" id="email_image">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="pixbuf">outline_email_black_24dp.png</property>
</object>
@@ -242,6 +243,11 @@ Author: Christian Grothoff, Dennis Neufeld
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
+ <object class="GtkImage" id="image_freeotp">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">freeotp.png</property>
+ </object>
<object class="GtkImage" id="image_iban">
<property name="visible">True</property>
<property name="can-focus">False</property>
@@ -250,6 +256,7 @@ Author: Christian Grothoff, Dennis Neufeld
<object class="GtkImage" id="image_sms">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="pixbuf">outline_stay_current_portrait_black_24dp.png</property>
</object>
@@ -302,6 +309,7 @@ Author: Christian Grothoff, Dennis Neufeld
<object class="GtkImage" id="postal_image">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="pixbuf">outline_home_work_black_24dp.png</property>
</object>
@@ -311,6 +319,7 @@ Author: Christian Grothoff, Dennis Neufeld
<object class="GtkImage" id="question_image">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="margin-right">5</property>
<property name="margin-end">5</property>
<property name="pixbuf">outline_contact_support_black_24dp.png</property>
</object>
@@ -356,12 +365,6 @@ Author: Christian Grothoff, Dennis Neufeld
<column type="gchararray"/>
</columns>
</object>
- <object class="GtkImage" id="video_image">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="margin-end">5</property>
- <property name="pixbuf">outline_video_camera_front_black_24dp.png</property>
- </object>
<object class="GtkWindow" id="anastasis_gtk_main_window">
<property name="can-focus">False</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_STRUCTURE_MASK</property>
@@ -1779,28 +1782,27 @@ with &lt;a href="https://www.ngi.eu/ngi-projects/ledger/"&gt;funding&lt;/a&gt; f
<property name="label-xalign">0</property>
<property name="shadow-type">none</property>
<child>
- <object class="GtkBox" id="anastasis_gtk_add_auth_button_box">
+ <!-- n-columns=4 n-rows=2 -->
+ <object class="GtkGrid" id="auth_button_grid">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-top">5</property>
- <property name="margin-bottom">4</property>
- <property name="spacing">8</property>
- <property name="homogeneous">True</property>
+ <property name="row-spacing">5</property>
+ <property name="column-spacing">5</property>
+ <property name="row-homogeneous">True</property>
+ <property name="column-homogeneous">True</property>
<child>
<object class="GtkButton" id="anastasis_gtk_btn_add_auth_sms">
<property name="label" translatable="yes">SMS</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="has-focus">True</property>
<property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Add authentication using a transaction number send to a mobile phone number.</property>
<property name="image">image_sms</property>
<signal name="clicked" handler="anastasis_gtk_btn_add_auth_sms_clicked_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">0</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
@@ -1809,14 +1811,13 @@ with &lt;a href="https://www.ngi.eu/ngi-projects/ledger/"&gt;funding&lt;/a&gt; f
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Add authentication using a transaction number send to an e-mail address.</property>
<property name="image">email_image</property>
<signal name="clicked" handler="anastasis_gtk_btn_add_auth_email_clicked_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">1</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
@@ -1825,14 +1826,27 @@ with &lt;a href="https://www.ngi.eu/ngi-projects/ledger/"&gt;funding&lt;/a&gt; f
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Add authentication using security question and answer.</property>
<property name="image">question_image</property>
<signal name="clicked" handler="anastasis_gtk_btn_add_auth_question_clicked_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">2</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_video">
+ <property name="label" translatable="yes">_Video</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="image">video_image</property>
+ <property name="use-underline">True</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_video_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
</packing>
</child>
<child>
@@ -1841,48 +1855,48 @@ with &lt;a href="https://www.ngi.eu/ngi-projects/ledger/"&gt;funding&lt;/a&gt; f
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Add authentication using a transaction number send to a postal address.</property>
<property name="image">postal_image</property>
<signal name="clicked" handler="anastasis_gtk_btn_add_auth_post_clicked_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">3</property>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="anastasis_gtk_btn_add_auth_video">
- <property name="label" translatable="yes">_Video</property>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_iban">
+ <property name="label" translatable="yes">IBAN</property>
+ <property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
- <property name="image">video_image</property>
- <property name="use-underline">True</property>
- <signal name="clicked" handler="anastasis_gtk_btn_add_auth_video_clicked_cb" swapped="no"/>
+ <property name="tooltip-text" translatable="yes">Add authentication using a payment of from a designated IBAN account.</property>
+ <property name="image">image_iban</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_iban_clicked_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">4</property>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="anastasis_gtk_btn_add_auth_iban">
- <property name="label" translatable="yes">IBAN</property>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_totp">
+ <property name="label" translatable="yes">TOTP</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
- <property name="image">image_iban</property>
- <signal name="clicked" handler="anastasis_gtk_btn_add_auth_iban_clicked_cb" swapped="no"/>
+ <property name="tooltip-text" translatable="yes">Add Time-Based One-Time Password authentication (RFC 6238)</property>
+ <property name="image">image_freeotp</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_totp_clicked_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">5</property>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
<child type="label">
@@ -2093,93 +2107,123 @@ with &lt;a href="https://www.ngi.eu/ngi-projects/ledger/"&gt;funding&lt;/a&gt; f
<property name="bottom-padding">10</property>
<property name="left-padding">12</property>
<child>
- <object class="GtkScrolledWindow">
+ <object class="GtkBox">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="shadow-type">in</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="review_policies_explainer_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-start">15</property>
+ <property name="margin-end">15</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="label" translatable="yes">Each recovery policy specifies a combination of authentication methods sufficient to recover the secret.
+Please review the recovery policies for the secret you are about to back up.
+If the automatically generated recovery policies are inadequate for your use case, use right-click to add, edit or delete policies.
+You can also use "back" to add additional authentication methods.</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
- <object class="GtkTreeView" id="anastasis_gtk_review_policy_treeview">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="model">policy_review_treestore</property>
- <signal name="button-press-event" handler="anastasis_gtk_review_policy_treeview_button_press_event_cb" swapped="no"/>
- <signal name="key-press-event" handler="anastasis_gtk_review_policy_treeview_key_press_event_cb" swapped="no"/>
- <signal name="row-activated" handler="anastasis_gtk_review_policy_treeview_row_activated_cb" swapped="no"/>
- <child internal-child="selection">
- <object class="GtkTreeSelection"/>
- </child>
+ <property name="shadow-type">in</property>
<child>
- <object class="GtkTreeViewColumn" id="policy_name_column0">
- <property name="resizable">True</property>
- <property name="spacing">5</property>
- <property name="sizing">autosize</property>
- <property name="title" translatable="yes">Policy</property>
+ <object class="GtkTreeView" id="anastasis_gtk_review_policy_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">policy_review_treestore</property>
+ <property name="search-column">0</property>
+ <signal name="button-press-event" handler="anastasis_gtk_review_policy_treeview_button_press_event_cb" swapped="no"/>
+ <signal name="key-press-event" handler="anastasis_gtk_review_policy_treeview_key_press_event_cb" swapped="no"/>
+ <signal name="row-activated" handler="anastasis_gtk_review_policy_treeview_row_activated_cb" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
<child>
- <object class="GtkCellRendererText" id="policy_name_column"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
+ <object class="GtkTreeViewColumn" id="policy_name_column0">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Policy</property>
+ <child>
+ <object class="GtkCellRendererText" id="policy_name_column"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="challenge_type_column">
- <property name="resizable">True</property>
- <property name="spacing">5</property>
- <property name="sizing">autosize</property>
- <property name="title" translatable="yes">Type</property>
<child>
- <object class="GtkCellRendererText" id="challenge_type_column1"/>
- <attributes>
- <attribute name="text">1</attribute>
- </attributes>
+ <object class="GtkTreeViewColumn" id="challenge_type_column">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Type</property>
+ <child>
+ <object class="GtkCellRendererText" id="challenge_type_column1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="cost_column">
- <property name="resizable">True</property>
- <property name="spacing">5</property>
- <property name="sizing">autosize</property>
- <property name="title" translatable="yes">Cost</property>
<child>
- <object class="GtkCellRendererText" id="cost_text_column"/>
- <attributes>
- <attribute name="text">2</attribute>
- </attributes>
+ <object class="GtkTreeViewColumn" id="cost_column">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Cost</property>
+ <child>
+ <object class="GtkCellRendererText" id="cost_text_column"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="provider_column">
- <property name="resizable">True</property>
- <property name="spacing">5</property>
- <property name="sizing">autosize</property>
- <property name="title" translatable="yes">Provider</property>
<child>
- <object class="GtkCellRendererText" id="provider_url_column"/>
- <attributes>
- <attribute name="text">3</attribute>
- </attributes>
+ <object class="GtkTreeViewColumn" id="provider_column">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Provider</property>
+ <child>
+ <object class="GtkCellRendererText" id="provider_url_column"/>
+ <attributes>
+ <attribute name="text">3</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="expiration_column">
- <property name="visible">False</property>
- <property name="resizable">True</property>
- <property name="spacing">5</property>
- <property name="sizing">autosize</property>
- <property name="title" translatable="yes">Expiration</property>
<child>
- <object class="GtkCellRendererText" id="expiration_time_str"/>
- <attributes>
- <attribute name="text">4</attribute>
- </attributes>
+ <object class="GtkTreeViewColumn" id="expiration_column">
+ <property name="visible">False</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Expiration</property>
+ <child>
+ <object class="GtkCellRendererText" id="expiration_time_str"/>
+ <attributes>
+ <attribute name="text">4</attribute>
+ </attributes>
+ </child>
+ </object>
</child>
</object>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
@@ -3896,4 +3940,11 @@ select a different provider or backup version.</property>
</object>
</child>
</object>
+ <object class="GtkImage" id="video_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-right">5</property>
+ <property name="margin-end">5</property>
+ <property name="pixbuf">outline_video_camera_front_black_24dp.png</property>
+ </object>
</interface>