From 8bbc491a75bfa8e0b1219c29f50223501c5a8a99 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 22 May 2025 16:15:28 +0600 Subject: [PATCH 1/7] Test fix for password checking --- source/ubl-settings-update.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 4d336f3..e19ec35 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1237,11 +1237,12 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){ yon_ubl_status_highlight_incorrect(window->UserPasswordEntry); return; } - if (username_check&&encryption&&!yon_char_is_empty(encryption)&&(strlen(user_password)!=128&&strlen(user_password)!=64)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->UserPasswordEntry); - return; - } + // if (username_check&&encryption&&!yon_char_is_empty(encryption)&&(strlen(user_password)!=128&&strlen(user_password)!=64)){ + + // yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_RESTRICTED_SYMBOL_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + // yon_ubl_status_highlight_incorrect(window->UserPasswordEntry); + // return; + // } char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->PathEntry)); char *full_name = ""; From aa5363e9abdc9a699bf16ab17fde1f51fcd4751c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 22 May 2025 16:16:47 +0600 Subject: [PATCH 2/7] Password editing fix --- source/ubl-settings-update.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index e19ec35..d9f0028 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -751,6 +751,8 @@ void yon_hash_entry_sensitiveness_update(GtkWidget *, password_window *dialog){ void on_password_open(GtkWidget *, web_publication_add_window *window){ password_window *dialog = yon_password_window_new(); + g_signal_connect(G_OBJECT(dialog->NoEncriptionCheck),"toggled",G_CALLBACK(yon_hash_entry_sensitiveness_update),dialog); + g_signal_connect(G_OBJECT(dialog->EncryptionCombo),"changed",G_CALLBACK(yon_hash_entry_sensitiveness_update),dialog); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->PasswordHashEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(dialog->RepeatPasswordEntry)); @@ -772,8 +774,6 @@ void on_password_open(GtkWidget *, web_publication_add_window *window){ yon_dictionary_add_or_create_if_exists_with_data(dict,"window",dialog); yon_dictionary_add_or_create_if_exists_with_data(dict,"target",window->UserPasswordEntry); g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_password_accept),dict); - g_signal_connect(G_OBJECT(dialog->NoEncriptionCheck),"toggled",G_CALLBACK(yon_hash_entry_sensitiveness_update),dialog); - g_signal_connect(G_OBJECT(dialog->EncryptionCombo),"changed",G_CALLBACK(yon_hash_entry_sensitiveness_update),dialog); g_signal_connect(G_OBJECT(dialog->EncryptionCombo),"changed",G_CALLBACK(on_password_encryption_changed),dialog); yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),PASSWORD_INPUT_LABEL,icon_path,"password_window"); } From 46f05ea9a3bae2aac2c164a40eac2b6c2af9031b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 22 May 2025 17:36:59 +0600 Subject: [PATCH 3/7] Crash fix --- source/ubl-settings-update.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index d9f0028..02fb6d3 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1426,7 +1426,7 @@ char *yon_password_hash_get(password_window *window){ const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); if (!yon_char_is_empty(hash)){ - if (strcmp(hash,window->old_password)&&strlen(hash)!=128&&strlen(hash)!=64){ + if (!yon_char_is_empty(window->old_password)&&strcmp(hash,window->old_password)&&strlen(hash)!=128&&strlen(hash)!=64){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); return NULL; @@ -1441,6 +1441,11 @@ char *yon_password_hash_get(password_window *window){ yon_ubl_status_highlight_incorrect(window->PasswordEntry); return NULL; } + if (yon_char_is_empty(password_repeat)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->RepeatPasswordEntry); + return; + } if (strcmp(password,password_repeat)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->PasswordEntry); From f883655aaa3bb9318449f7ce9c0856c3d9c2b866 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 22 May 2025 17:58:03 +0600 Subject: [PATCH 4/7] Build fix --- source/ubl-settings-update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 02fb6d3..c632d9f 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1444,7 +1444,7 @@ char *yon_password_hash_get(password_window *window){ if (yon_char_is_empty(password_repeat)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->RepeatPasswordEntry); - return; + return NULL; } if (strcmp(password,password_repeat)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); From 12c266c7adaa4a25111bc8690821d740647d93b1 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 23 May 2025 11:19:22 +0600 Subject: [PATCH 5/7] Password window sensitivity login redone --- source/ubl-settings-update.c | 56 ++++++++++++++++++++++++++---- source/ubl-settings-update.h | 4 +++ ubl-settings-update-password.glade | 54 ++++++++++++++-------------- 3 files changed, 81 insertions(+), 33 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index c632d9f..c109c2f 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1426,11 +1426,26 @@ char *yon_password_hash_get(password_window *window){ const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); if (!yon_char_is_empty(hash)){ - if (!yon_char_is_empty(window->old_password)&&strcmp(hash,window->old_password)&&strlen(hash)!=128&&strlen(hash)!=64){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); - return NULL; - } + // if (!yon_char_is_empty(window->old_password)&&strcmp(hash,window->old_password)){ + switch(encription_active){ + case 1:{ + if (strlen(hash)!=128){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); + return NULL; + } + } + break; + case 2:{ + if (strlen(hash)!=64){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); + return NULL; + } + } + break; + } + // } char *final = yon_char_unite(encription,"|",hash,NULL); return final; } else { @@ -1601,6 +1616,29 @@ void on_file_chooser_open(GtkWidget *, GtkEntry *target){ gtk_widget_destroy(dialog); } +void on_password_hash_sensitiveness(GtkWidget *,password_window *window){ + const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); + const char *repeat_password = gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)); + const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); + if (!yon_char_is_empty(password)||!yon_char_is_empty(repeat_password)){ + gtk_widget_set_sensitive(window->HashBox,0); + gtk_widget_set_sensitive(window->PasswordBox,1); + } else if (yon_char_is_empty(password)&&yon_char_is_empty(repeat_password)&& + gtk_combo_box_get_active(GTK_COMBO_BOX(window->EncryptionCombo))>0&& + yon_char_is_empty(hash)){ + gtk_widget_set_sensitive(window->HashBox,1); + gtk_widget_set_sensitive(window->PasswordBox,1); + gtk_widget_set_sensitive(window->NoEncriptionCheck,1); + } else if (!yon_char_is_empty(hash)) { + gtk_widget_set_sensitive(window->HashBox,1); + gtk_widget_set_sensitive(window->PasswordBox,0); + gtk_widget_set_sensitive(window->NoEncriptionCheck,0); + } else { + gtk_widget_set_sensitive(window->HashBox,0); + gtk_widget_set_sensitive(window->PasswordBox,1); + } +} + password_window *yon_password_window_new(){ GtkBuilder *builder = gtk_builder_new_from_resource(glade_password_path); password_window *window = malloc(sizeof(password_window)); @@ -1614,10 +1652,16 @@ password_window *yon_password_window_new(){ window->PasswordHashEntry = yon_gtk_builder_get_widget(builder,"PasswordHashEntry"); window->UserCancelButton = yon_gtk_builder_get_widget(builder,"UserCancelButton"); window->AcceptButton = yon_gtk_builder_get_widget(builder,"UserOkButton"); + window->PasswordBox = yon_gtk_builder_get_widget(builder,"PasswordBox"); + window->HashBox = yon_gtk_builder_get_widget(builder,"HashBox"); window->old_password=NULL; g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); - g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PasswordHashEntry); + g_signal_connect(G_OBJECT(window->EncryptionCombo),"changed",G_CALLBACK(on_password_hash_sensitiveness),window); + g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(on_password_hash_sensitiveness),window); + g_signal_connect(G_OBJECT(window->PasswordHashEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window); + g_signal_connect(G_OBJECT(window->PasswordEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window); + g_signal_connect(G_OBJECT(window->RepeatPasswordEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window); gtk_widget_show(window->Window); return window; } diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index 8456eb3..066773a 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -279,6 +279,9 @@ typedef struct { GtkWidget *UserCancelButton; GtkWidget *AcceptButton; + GtkWidget *PasswordBox; + GtkWidget *HashBox; + const char *old_password; } password_window; @@ -385,4 +388,5 @@ void on_mirror_configure_accept(GtkWidget *, dictionary *dict); char *yon_password_unencrypted_password_get(password_window *window); char *yon_password_hash_get(password_window *window); void yon_hash_entry_sensitiveness_update(GtkWidget *, password_window *dialog); +void on_password_hash_sensitiveness(GtkWidget *,password_window *window); #endif \ No newline at end of file diff --git a/ubl-settings-update-password.glade b/ubl-settings-update-password.glade index 3005633..cbdd8f1 100644 --- a/ubl-settings-update-password.glade +++ b/ubl-settings-update-password.glade @@ -188,41 +188,41 @@ True True + 1 + + + + + Do not encrypt password + True + False + True + False + True + + + False + True 2 + + + True + False + + + False + True + 3 + + True False vertical 5 - - - True - False - - - False - True - 0 - - - - - Do not encrypt password - True - False - True - False - True - - - False - True - 1 - - True @@ -268,7 +268,7 @@ False True - 3 + 4 From 7e7915123c07c3b382e11d85c5f82a286ffab300 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 23 May 2025 11:41:33 +0600 Subject: [PATCH 6/7] Test fix for web publish password --- source/ubl-settings-update.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index c109c2f..9c1f5e8 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1272,8 +1272,8 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){ enable_browser?"listing":"",":", port_enabled?port:"",":", username_check?username:"",":", - username_check?!yon_char_is_empty(user_password)?user_password:"":"",":", - username_check?yon_char_is_empty(encryption)?"":encryption:"", + username_check?yon_char_is_empty(encryption)?user_password:encryption:"",":", + username_check?!yon_char_is_empty(user_password)&&!yon_char_is_empty(encryption)?user_password:"":"", NULL); if (!yon_char_is_empty(window->name)&&strcmp(final_name,window->name)){ yon_config_remove_by_key(REPOPUBLIC_WEB_full(window->name)); From ebeab162481c45335cdbb53925d69a6d4bb55dc9 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 23 May 2025 15:50:11 +0600 Subject: [PATCH 7/7] Test fix of web publish main window render --- source/ubl-settings-update.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 9c1f5e8..0e8ea9b 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -500,16 +500,16 @@ void yon_interface_update(main_window *widgets){ gtk_list_store_set(widgets->WebPublicationList,&iter,5,parsed[3],-1); } if (cur_size>4&&!yon_char_is_empty(parsed[4])){ - if (!strcmp(parsed[5],"sha256")||!strcmp(parsed[5],"sha512")){ + if (!strcmp(parsed[4],"sha256")||!strcmp(parsed[4],"sha512")){ gtk_list_store_set(widgets->WebPublicationList,&iter,7,"******",-1); - gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[5],-1); + gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[4],-1); } else { if (strlen(parsed[4])==128||strlen(parsed[4])==64) - gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[4],-1); + gtk_list_store_set(widgets->WebPublicationList,&iter,7,parsed[5],-1); else gtk_list_store_set(widgets->WebPublicationList,&iter,7,"******",-1); if (cur_size>5&&!yon_char_is_empty(parsed[5])){ - gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[5],-1); + gtk_list_store_set(widgets->WebPublicationList,&iter,6,parsed[4],-1); } } }