Revision: 734e727612
Author: Nightgunner5
Date: Sun Nov 8 16:43:43 2009
Log: Add cancel method for encryption step 2 and a "passwords do not
match"...
http://code.google.com/p/shacrypt/source/detail?r=734e727612
Revision: 7004cb9f58
Author: Nightgunner5
Date: Sun Nov 8 18:50:54 2009
Log: Advanced encryption
http://code.google.com/p/shacrypt/source/detail?r=7004cb9f58
==============================================================================
Revision: 734e727612
Author: Nightgunner5
Date: Sun Nov 8 16:43:43 2009
Log: Add cancel method for encryption step 2 and a "passwords do not match"
error.
http://code.google.com/p/shacrypt/source/detail?r=734e727612
Modified:
/glade.c
=======================================
--- /glade.c Sun Nov 8 16:35:39 2009
+++ /glade.c Sun Nov 8 16:43:43 2009
@@ -60,6 +60,7 @@
*/
G_MODULE_EXPORT void encrypt_step2_passchange( GtkWidget* button, gpointer
data ) {
GtkProgressBar* meter;
+
meter = (GtkProgressBar*)GTK_WIDGET( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
int score = 0,
@@ -240,8 +241,29 @@
GThread* enc;
enc = g_thread_create( encrypt_step3, NULL, FALSE, NULL );
} else {
+ GtkProgressBar* meter;
+ gtk_progress_bar_set_text( meter, "Passwords do not match!" );
}
}
+
+G_MODULE_EXPORT void encrypt_step2_cancel( GtkWidget* button, gpointer
data ) {
+ GtkWidget* step2;
+ GtkEntry* pass1;
+ GtkEntry* pass2;
+ GtkProgressBar* meter;
+
+ step2 = GTK_WIDGET( gtk_builder_get_object( builder, "encrypt_step2" )
);
+ pass1 = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password1" ) );
+ pass2 = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password2" ) );
+ meter = (GtkProgressBar*)GTK_WIDGET( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
+
+ gtk_widget_hide( step2 );
+
+ gtk_entry_set_text( pass1, "" );
+ gtk_entry_set_text( pass2, "" );
+ gtk_progress_bar_set_text( meter, "Enter a password" );
+ gtk_progress_bar_set_fraction( meter, 0.0 );
+}
G_MODULE_EXPORT void button_pressed_decrypt( GtkWidget* button, gpointer
data ) {
==============================================================================
Revision: 7004cb9f58
Author: Nightgunner5
Date: Sun Nov 8 18:50:54 2009
Log: Advanced encryption
http://code.google.com/p/shacrypt/source/detail?r=7004cb9f58
Modified:
/glade.c
/shacrypt.glade
/shacrypt.h
=======================================
--- /glade.c Sun Nov 8 16:43:43 2009
+++ /glade.c Sun Nov 8 18:50:54 2009
@@ -58,10 +58,10 @@
/* Password scoring method adapted from
* http://www.geekwisdom.com/js/passwordmeter.js
*/
-G_MODULE_EXPORT void encrypt_step2_passchange( GtkWidget* button, gpointer
data ) {
+G_MODULE_EXPORT void encrypt_step2_passchange( GtkEntry* button, gpointer
data ) {
GtkProgressBar* meter;
- meter = (GtkProgressBar*)GTK_WIDGET( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
+ meter = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
int score = 0,
lower = 0,
@@ -69,9 +69,9 @@
num = 0,
symb = 0,
len, i;
- const char* pass = gtk_entry_get_text( (GtkEntry*)button );
-
- len = gtk_entry_get_text_length( (GtkEntry*)button );
+ const char* pass = gtk_entry_get_text( button );
+
+ len = gtk_entry_get_text_length( button );
if ( len == 0 ) {
gtk_progress_bar_set_fraction( meter, 0.0 );
@@ -146,6 +146,73 @@
else
gtk_progress_bar_set_text( meter, "Bad" );
}
+
+G_MODULE_EXPORT unsigned char encrypt_step2_get_algos() {
+ unsigned char algos = '\0';
+
+ GtkToggleButton* sha1;
+ GtkToggleButton* sha224;
+ GtkToggleButton* sha256;
+ GtkToggleButton* sha384;
+ GtkToggleButton* sha512;
+ GtkToggleButton* md5;
+ GtkToggleButton* cubehash;
+ GtkToggleButton* whirlpool;
+
+ sha1 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_sha1" ) );
+ sha224 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_sha224" ) );
+ sha256 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_sha256" ) );
+ sha384 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_sha384" ) );
+ sha512 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_sha512" ) );
+ md5 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_md5" ) );
+ cubehash = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_cubehash" ) );
+ whirlpool = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_whirlpool" ) );
+
+ if ( gtk_toggle_button_get_active( sha1 ) )
+ algos |= '\x01';
+ if ( gtk_toggle_button_get_active( sha224 ) )
+ algos |= '\x02';
+ if ( gtk_toggle_button_get_active( sha256 ) )
+ algos |= '\x04';
+ if ( gtk_toggle_button_get_active( sha384 ) )
+ algos |= '\x08';
+ if ( gtk_toggle_button_get_active( sha512 ) )
+ algos |= '\x10';
+ if ( gtk_toggle_button_get_active( md5 ) )
+ algos |= '\x20';
+ if ( gtk_toggle_button_get_active( cubehash ) )
+ algos |= '\x40';
+ if ( gtk_toggle_button_get_active( whirlpool ) )
+ algos |= '\x80';
+
+ return algos;
+}
+
+G_MODULE_EXPORT void encrypt_step2_check_hashalgo( GtkWidget* button,
gpointer data ) {
+ int seedlen = SHACrypt_GetLength( encrypt_step2_get_algos() );
+ if ( !seedlen ) {
+ GtkToggleButton* sha1;
+ sha1 = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "check_e2_sha1" ) );
+
+ gtk_toggle_button_set_active( sha1, TRUE );
+
+ seedlen = 20;
+ }
+
+ GtkToggleButton* randomseed;
+ randomseed = GTK_TOGGLE_BUTTON( gtk_builder_get_object(
builder, "radio_e2_randomseed_off" ) );
+
+ GtkSpinButton* seed;
+ seed = GTK_SPIN_BUTTON( gtk_builder_get_object(
builder, "spin_e2_randomseed" ) );
+
+ if ( gtk_toggle_button_get_active( randomseed ) ) {
+ gtk_entry_set_editable( GTK_ENTRY( seed ), FALSE );
+
+ gtk_spin_button_set_value( seed, (gdouble)seedlen );
+ } else {
+ gtk_entry_set_editable( GTK_ENTRY( seed ), TRUE );
+ }
+}
G_MODULE_EXPORT void encrypt_step3() {
GtkWindow* step3;
@@ -153,10 +220,10 @@
GtkFileChooser* file;
GtkProgressBar* progress;
- step3 = (GtkWindow*)GTK_WIDGET( gtk_builder_get_object(
builder, "encrypt_step3" ) );
- pass = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password1" ) );
- file = (GtkFileChooser*)GTK_WIDGET( gtk_builder_get_object(
builder, "file_e1_select" ) );
- progress = (GtkProgressBar*)GTK_WIDGET( gtk_builder_get_object(
builder, "progressbar_e3_progress" ) );
+ step3 = GTK_WINDOW( gtk_builder_get_object( builder, "encrypt_step3" )
);
+ pass = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password1" ) );
+ file = GTK_FILE_CHOOSER( gtk_builder_get_object(
builder, "file_e1_select" ) );
+ progress = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_e3_progress" ) );
gtk_progress_bar_set_text( progress, NULL );
gtk_window_set_deletable( step3, FALSE );
@@ -181,7 +248,7 @@
i = 0;
while ( fopen( tmp, "rb" ) != NULL ) {
i++;
- sprintf( tmp, "%s_%lud.shacrypt", filename, i );
+ sprintf( tmp, "%s_%lu.shacrypt", filename, i );
}
o = fopen( tmp, "wb" );
@@ -218,6 +285,19 @@
fclose( f );
fclose( o );
+ GtkEntry* pass1;
+ GtkEntry* pass2;
+ GtkProgressBar* meter;
+
+ pass1 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password1" ) );
+ pass2 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password2" ) );
+ meter = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
+
+ gtk_entry_set_text( pass1, "" );
+ gtk_entry_set_text( pass2, "" );
+ gtk_progress_bar_set_text( meter, "Enter a password" );
+ gtk_progress_bar_set_fraction( meter, 0.0 );
+
gtk_progress_bar_set_text( progress, "Done!" );
gtk_window_set_deletable( step3, TRUE );
}
@@ -226,8 +306,18 @@
GtkEntry* pass1;
GtkEntry* pass2;
- pass1 = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password1" ) );
- pass2 = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password2" ) );
+ pass1 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password1" ) );
+ pass2 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password2" ) );
+
+ if ( !gtk_entry_get_text_length( pass1 ) ) {
+ gtk_widget_grab_focus( GTK_WIDGET( pass1 ) );
+ return;
+ }
+
+ if ( !gtk_entry_get_text_length( pass2 ) ) {
+ gtk_widget_grab_focus( GTK_WIDGET( pass2 ) );
+ return;
+ }
if ( strcmp( gtk_entry_get_text( pass1 ), gtk_entry_get_text( pass2 )
) == 0 ) {
GtkWidget* step2;
@@ -242,6 +332,9 @@
enc = g_thread_create( encrypt_step3, NULL, FALSE, NULL );
} else {
GtkProgressBar* meter;
+
+ meter = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
+
gtk_progress_bar_set_text( meter, "Passwords do not match!" );
}
}
@@ -253,9 +346,9 @@
GtkProgressBar* meter;
step2 = GTK_WIDGET( gtk_builder_get_object( builder, "encrypt_step2" )
);
- pass1 = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password1" ) );
- pass2 = (GtkEntry*)GTK_WIDGET( gtk_builder_get_object(
builder, "field_e2_password2" ) );
- meter = (GtkProgressBar*)GTK_WIDGET( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
+ pass1 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password1" ) );
+ pass2 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_e2_password2" ) );
+ meter = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
gtk_widget_hide( step2 );
@@ -296,7 +389,6 @@
gtk_widget_show( window );
-
gtk_main();
return 0;
=======================================
--- /shacrypt.glade Sun Nov 8 16:35:39 2009
+++ /shacrypt.glade Sun Nov 8 18:50:54 2009
@@ -117,74 +117,6 @@
<action-widget response="0">button_asymmetric</action-widget>
</action-widgets>
</object>
- <!--<object class="GtkFileChooserDialog" id="encrypt_step1_old">
- <property name="border_width">5</property>
- <property name="title" translatable="yes">Encrypt a file - Step
1</property>
- <property name="type_hint">dialog</property>
- <property name="has_separator">False</property>
- <signal name="close" handler="encrypt_step1_cancel"/>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child>
- <placeholder/>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="button_e1o_cancel">
- <property name="label" translatable="yes">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <signal name="clicked" handler="encrypt_step1_cancel"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button_e1o_ok">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <signal name="clicked" handler="encrypt_step1_ok"/>
- <child>
- <object class="GtkLabel" id="label_e1o_ok">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Ok</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="0">button_e1o_cancel</action-widget>
- <action-widget response="0">button_e1o_ok</action-widget>
- </action-widgets>
- </object>-->
<object class="GtkDialog" id="encrypt_step1">
<property name="border_width">5</property>
<property name="title" translatable="yes">Encrypt a file (Step 1 of
3)</property>
@@ -312,6 +244,7 @@
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
@@ -324,6 +257,7 @@
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
+ <property name="y_options">GTK_SHRINK</property>
</packing>
</child>
<child>
@@ -340,6 +274,7 @@
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
@@ -349,9 +284,14 @@
<property name="ypad">5</property>
<property name="label"
translatable="yes">Password</property>
</object>
+ <packing>
+ <property name="y_options"></property>
+ </packing>
</child>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="padding">2</property>
<property name="position">0</property>
</packing>
</child>
@@ -362,6 +302,7 @@
<property name="text" translatable="yes">Enter a
password</property>
</object>
<packing>
+ <property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
@@ -377,9 +318,240 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="label_e2_comingsoon">
+ <object class="GtkVBox" id="vbox4">
<property name="visible">True</property>
- <property name="label" translatable="yes">Coming
soon!</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="frame_e2_hashalgo">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkTable" id="table2">
+ <property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_sha1">
+ <property name="label"
translatable="yes">SHA1</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property name="active">True</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_sha224">
+ <property name="label"
translatable="yes">SHA224</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_sha256">
+ <property name="label"
translatable="yes">SHA256</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_sha384">
+ <property name="label"
translatable="yes">SHA384</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_sha512">
+ <property name="label"
translatable="yes">SHA512</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_md5">
+ <property name="label"
translatable="yes">MD5</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_cubehash">
+ <property name="label"
translatable="yes">CubeHash</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton"
id="check_e2_whirlpool">
+ <property name="label"
translatable="yes">WHIRLPOOL</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label_e2_hashalgo">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Hash
Algorithms</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="frame_e2_randomseed">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property
name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton"
id="radio_e2_randomseed_off">
+ <property name="label"
translatable="yes">Select one based on my other choices</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkRadioButton"
id="radio_e2_randomseed_on">
+ <property name="label"
translatable="yes">Use this number of bytes:</property>
+ <property
name="visible">True</property>
+ <property
name="can_focus">True</property>
+ <property
name="receives_default">False</property>
+ <property
name="draw_indicator">True</property>
+ <property
name="group">radio_e2_randomseed_off</property>
+ <signal name="toggled"
handler="encrypt_step2_check_hashalgo"/>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton"
id="spin_e2_randomseed">
+ <property
name="visible">True</property>
+ <property
name="can_focus">True</property>
+ <property
name="max_length">3</property>
+ <property
name="invisible_char">●</property>
+ <property
name="truncate_multiline">True</property>
+ <property
name="adjustment">adjustment_e2_randomseed</property>
+ <property
name="snap_to_ticks">True</property>
+ <property
name="numeric">True</property>
+ <property
name="update_policy">if-valid</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label_e2_randomseed">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Random
Seed Length</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="position">1</property>
@@ -466,6 +638,7 @@
<object class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="orientation">vertical</property>
+ <property name="spacing">5</property>
<child>
<object class="GtkProgressBar" id="progressbar_e3_progress">
<property name="visible">True</property>
@@ -480,6 +653,8 @@
<object class="GtkLabel" id="label_e3_description">
<property name="visible">True</property>
<property name="label" translatable="yes">Your file is now
being encrypted with the password you specified. A copy has been created,
so the original file will not be modified.</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
</object>
<packing>
<property name="position">1</property>
@@ -487,5 +662,11 @@
</child>
</object>
</child>
+ </object>
+ <object class="GtkAdjustment" id="adjustment_e2_randomseed">
+ <property name="value">20</property>
+ <property name="lower">1</property>
+ <property name="upper">256</property>
+ <property name="step_increment">1</property>
</object>
</interface>
=======================================
--- /shacrypt.h Sun Nov 8 16:35:39 2009
+++ /shacrypt.h Sun Nov 8 18:50:54 2009
@@ -72,9 +72,9 @@
unsigned int passlen;
} SHACrypt_Context;
+int SHACrypt_GetLength( unsigned char algos );
int SHACrypt_GetRand( unsigned char algos, char* rand );
void SHACrypt_Init( SHACrypt_Context* ctx, unsigned char* password,
unsigned int passlen,
unsigned char algos, unsigned char* rand, unsigned
char randlen );
void SHACrypt_Process( SHACrypt_Context* ctx, char* in, char* out,
unsigned int len );
-int SHACrypt_GetLength( unsigned char algos );
#endif