From 98b2a316554a8a98044f87b2b2e73aba42d68aae Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Thu, 20 Feb 2025 19:56:48 +0300 Subject: [PATCH 01/13] remove extra space --- services/registration/enter_other_number.vis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/registration/enter_other_number.vis b/services/registration/enter_other_number.vis index 9447678..018aad3 100644 --- a/services/registration/enter_other_number.vis +++ b/services/registration/enter_other_number.vis @@ -1,4 +1,4 @@ -CATCH no_admin_privilege flag_admin_privilege 0 +CATCH no_admin_privilege flag_admin_privilege 0 LOAD reset_account_authorized 0 RELOAD reset_account_authorized MOUT back 0 From c37fee5e54fe23edad86b191fbf1a82397ae4474 Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Thu, 20 Feb 2025 19:58:12 +0300 Subject: [PATCH 02/13] have the secondarySessionId as a formatted phone number --- menutraversal_test/menu_traversal_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menutraversal_test/menu_traversal_test.go b/menutraversal_test/menu_traversal_test.go index 4cf8715..64ea262 100644 --- a/menutraversal_test/menu_traversal_test.go +++ b/menutraversal_test/menu_traversal_test.go @@ -21,7 +21,7 @@ var ( sessionID string src = rand.NewSource(42) g = rand.New(src) - secondarySessionId = "0700000000" + secondarySessionId = "+254700000000" ) var groupTestFile = flag.String("test-file", "group_test.json", "The test file to use for running the group tests") From c9678df1525f814ce1b457e32f37f24db7001330 Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Thu, 20 Feb 2025 19:59:52 +0300 Subject: [PATCH 03/13] reset the PIN using the formattedNumber --- handlers/application/menuhandler.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/handlers/application/menuhandler.go b/handlers/application/menuhandler.go index 6012818..4644543 100644 --- a/handlers/application/menuhandler.go +++ b/handlers/application/menuhandler.go @@ -601,16 +601,20 @@ func (h *MenuHandlers) ValidateBlockedNumber(ctx context.Context, sym string, in return res, fmt.Errorf("missing session") } - if h.st.Back() { + if string(input) == "0" { res.FlagReset = append(res.FlagReset, flag_unregistered_number) return res, nil } + blockedNumber := string(input) - _, err = store.ReadEntry(ctx, blockedNumber, storedb.DATA_PUBLIC_KEY) - if !phone.IsValidPhoneNumber(blockedNumber) { + formattedNumber, err := phone.FormatPhoneNumber(blockedNumber) + if err != nil { res.FlagSet = append(res.FlagSet, flag_unregistered_number) + logg.ErrorCtxf(ctx, "Failed to format the phone number: %s", blockedNumber, "error", err) return res, nil } + + _, err = store.ReadEntry(ctx, formattedNumber, storedb.DATA_PUBLIC_KEY) if err != nil { if db.IsNotFound(err) { logg.InfoCtxf(ctx, "Invalid or unregistered number") @@ -621,7 +625,7 @@ func (h *MenuHandlers) ValidateBlockedNumber(ctx context.Context, sym string, in return res, err } } - err = store.WriteEntry(ctx, sessionId, storedb.DATA_BLOCKED_NUMBER, []byte(blockedNumber)) + err = store.WriteEntry(ctx, sessionId, storedb.DATA_BLOCKED_NUMBER, []byte(formattedNumber)) if err != nil { return res, nil } From 3b9184e85280095ad4d40c23d781b6deaa90cd80 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Thu, 20 Feb 2025 21:20:41 +0300 Subject: [PATCH 04/13] check for back --- handlers/application/menuhandler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handlers/application/menuhandler.go b/handlers/application/menuhandler.go index 4644543..a05d981 100644 --- a/handlers/application/menuhandler.go +++ b/handlers/application/menuhandler.go @@ -416,7 +416,7 @@ func (h *MenuHandlers) CheckBlockedNumPinMisMatch(ctx context.Context, sym strin if !ok { return res, fmt.Errorf("missing session") } - if h.st.Back() { + if string(input) == "0" { res.FlagReset = append(res.FlagReset, flag_pin_mismatch) return res, nil } From b5ade9112ee30d59baafe8c990750656314eb5d3 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Thu, 20 Feb 2025 21:21:20 +0300 Subject: [PATCH 05/13] catch incorrect pin when resetting for others --- services/registration/confirm_others_new_pin.vis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/registration/confirm_others_new_pin.vis b/services/registration/confirm_others_new_pin.vis index 8409418..50dfb19 100644 --- a/services/registration/confirm_others_new_pin.vis +++ b/services/registration/confirm_others_new_pin.vis @@ -1,4 +1,4 @@ -CATCH pin_entry flag_incorrect_pin 1 +CATCH incorrect_pin flag_incorrect_pin 1 RELOAD retrieve_blocked_number MAP retrieve_blocked_number CATCH invalid_others_pin flag_valid_pin 0 From c4cab444ad49a97070032dd5e6bee2c528c44230 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Thu, 20 Feb 2025 21:26:53 +0300 Subject: [PATCH 06/13] repeat same node on invalid input --- services/registration/others_pin_mismatch.vis | 1 + 1 file changed, 1 insertion(+) diff --git a/services/registration/others_pin_mismatch.vis b/services/registration/others_pin_mismatch.vis index 37b3deb..b2421aa 100644 --- a/services/registration/others_pin_mismatch.vis +++ b/services/registration/others_pin_mismatch.vis @@ -3,3 +3,4 @@ MOUT quit 9 HALT INCMP _ 1 INCMP quit 9 +INCMP . * From e646658f4001a3da0844139d896e682670276b59 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Fri, 21 Feb 2025 10:56:12 +0300 Subject: [PATCH 07/13] repeat same node on invalid input --- services/registration/pin_reset_mismatch.vis | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/registration/pin_reset_mismatch.vis b/services/registration/pin_reset_mismatch.vis index 78318f2..b2421aa 100644 --- a/services/registration/pin_reset_mismatch.vis +++ b/services/registration/pin_reset_mismatch.vis @@ -3,4 +3,4 @@ MOUT quit 9 HALT INCMP _ 1 INCMP quit 9 - +INCMP . * From 04c3f5ce65adf82779e6a1fd83aa7d5033372012 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Fri, 21 Feb 2025 11:01:14 +0300 Subject: [PATCH 08/13] repeat same node on invalid input --- services/registration/pin_reset_success.vis | 1 + 1 file changed, 1 insertion(+) diff --git a/services/registration/pin_reset_success.vis b/services/registration/pin_reset_success.vis index 537a511..a3a143f 100644 --- a/services/registration/pin_reset_success.vis +++ b/services/registration/pin_reset_success.vis @@ -3,3 +3,4 @@ MOUT quit 9 HALT INCMP main 0 INCMP quit 9 +INCMP . * From 7b1824f18c44954daf9c1217aa7d980433a00078 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Fri, 21 Feb 2025 11:01:31 +0300 Subject: [PATCH 09/13] go back if account not unlocked --- services/registration/old_pin.vis | 1 + 1 file changed, 1 insertion(+) diff --git a/services/registration/old_pin.vis b/services/registration/old_pin.vis index 2addb56..fa3122e 100644 --- a/services/registration/old_pin.vis +++ b/services/registration/old_pin.vis @@ -4,4 +4,5 @@ HALT INCMP _ 0 RELOAD authorize_account CATCH incorrect_pin flag_incorrect_pin 1 +CATCH _ flag_account_authorized 0 INCMP new_pin * From 91c4967efa99c1953bb0ba1116347e37f834c78b Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Fri, 21 Feb 2025 11:01:42 +0300 Subject: [PATCH 10/13] check for back --- handlers/application/menuhandler.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handlers/application/menuhandler.go b/handlers/application/menuhandler.go index a05d981..0337c9b 100644 --- a/handlers/application/menuhandler.go +++ b/handlers/application/menuhandler.go @@ -318,7 +318,7 @@ func (h *MenuHandlers) VerifyNewPin(ctx context.Context, sym string, input []byt return res, fmt.Errorf("missing session") } flag_valid_pin, _ := h.flagManager.GetFlag("flag_valid_pin") - if !h.st.Back() { + if string(input) != "0" { pinInput := string(input) // Validate that the PIN is a 4-digit number. if pin.IsValidPIN(pinInput) { @@ -456,7 +456,7 @@ func (h *MenuHandlers) ConfirmPinChange(ctx context.Context, sym string, input [ } flag_pin_mismatch, _ := h.flagManager.GetFlag("flag_pin_mismatch") - if h.st.Back() { + if string(input) == "0" { res.FlagReset = append(res.FlagReset, flag_pin_mismatch) return res, nil } From e8e6f0e371669e800f379a3f3e9aa194f301dbbb Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Fri, 21 Feb 2025 11:49:51 +0300 Subject: [PATCH 11/13] Added a fix to only hash valid PINs in SaveOthersTemporaryPin --- handlers/application/menuhandler.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/handlers/application/menuhandler.go b/handlers/application/menuhandler.go index 0337c9b..b4cbd7b 100644 --- a/handlers/application/menuhandler.go +++ b/handlers/application/menuhandler.go @@ -384,6 +384,12 @@ func (h *MenuHandlers) SaveOthersTemporaryPin(ctx context.Context, sym string, i } temporaryPin := string(input) + + // Validate that the input is a 4-digit number. + if !pin.IsValidPIN(temporaryPin) { + return res, nil + } + // Retrieve the blocked number associated with this session blockedNumber, err := store.ReadEntry(ctx, sessionId, storedb.DATA_BLOCKED_NUMBER) if err != nil { From 4db25055ad961514f64a9fdf914f93b24140d4d1 Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Fri, 21 Feb 2025 12:29:28 +0300 Subject: [PATCH 12/13] Added a fix for invalid PIN in PIN reset --- services/registration/old_pin.vis | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/registration/old_pin.vis b/services/registration/old_pin.vis index fa3122e..aa6eabf 100644 --- a/services/registration/old_pin.vis +++ b/services/registration/old_pin.vis @@ -1,8 +1,8 @@ -RELOAD reset_incorrect +RELOAD reset_allow_update MOUT back 0 HALT INCMP _ 0 RELOAD authorize_account CATCH incorrect_pin flag_incorrect_pin 1 -CATCH _ flag_account_authorized 0 +CATCH _ flag_allow_update 0 INCMP new_pin * From 95089875bfea0fab6a2ff5640dfdfdb72311d93d Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Fri, 21 Feb 2025 12:30:28 +0300 Subject: [PATCH 13/13] remove extra spacing --- services/registration/pin_management.vis | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/registration/pin_management.vis b/services/registration/pin_management.vis index 0344b6a..409b3c8 100644 --- a/services/registration/pin_management.vis +++ b/services/registration/pin_management.vis @@ -3,12 +3,12 @@ LOAD authorize_account 5 LOAD reset_allow_update 4 LOAD verify_new_pin 2 LOAD save_temporary_pin 1 -LOAD reset_incorrect 0 +LOAD reset_incorrect 0 MOUT change_pin 1 MOUT reset_pin 2 MOUT back 0 HALT INCMP _ 0 -INCMP old_pin 1 +INCMP old_pin 1 INCMP enter_other_number 2 INCMP . *