From d7331886b31cf783f8d9e882a02407947250016e Mon Sep 17 00:00:00 2001 From: Arseniy Sharoglazov Date: Mon, 21 Aug 2023 01:22:18 +0300 Subject: [PATCH] Adding RULE_OP_MANGLE_NUM_INCR to src/rp_cpu.c --- src/rp_cpu.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/rp_cpu.c b/src/rp_cpu.c index fb16aa08e..88f77e4e0 100644 --- a/src/rp_cpu.c +++ b/src/rp_cpu.c @@ -123,6 +123,28 @@ static int mangle_reverse (char arr[RP_PASSWORD_SIZE], int arr_len) return (arr_len); } +static int mangle_num_incr (char arr[RP_PASSWORD_SIZE], int arr_len) +{ + for (int pos = 0; pos < arr_len; pos++) + { + const u8 byte = arr[pos]; + + if ((byte <= '9') && (byte >= '0')) + { + if (byte == '9') + { + arr[pos] = '0'; + } + else + { + arr[pos]++; + } + } + } + + return (arr_len); +} + static int mangle_double (char arr[RP_PASSWORD_SIZE], int arr_len) { if ((arr_len * 2) >= RP_PASSWORD_SIZE) return (arr_len); @@ -592,6 +614,10 @@ int _old_apply_rule (const char *rule, int rule_len, char in[RP_PASSWORD_SIZE], out_len = mangle_trest (out, out_len); break; + case RULE_OP_MANGLE_NUM_INCR: + out_len = mangle_num_incr (out, out_len); + break; + case RULE_OP_MANGLE_TOGGLE_AT: NEXT_RULEPOS (rule_pos); NEXT_RPTOI (rule_new, rule_pos, upos);