2 * Author......: Jens Steube <jens.steube@gmail.com>
16 #define RULE_RC_REJECT_ERROR -2
17 #define RP_RULE_BUFSIZ 0x100
18 #define RULE_RC_SYNTAX_ERROR -1
20 typedef unsigned int uint
;
28 int mangle_lrest (char arr
[BLOCK_SIZE
], int arr_len
);
29 int mangle_urest (char arr
[BLOCK_SIZE
], int arr_len
);
30 int mangle_trest (char arr
[BLOCK_SIZE
], int arr_len
);
31 int mangle_reverse (char arr
[BLOCK_SIZE
], int arr_len
);
32 int mangle_double (char arr
[BLOCK_SIZE
], int arr_len
);
33 int mangle_double_times (char arr
[BLOCK_SIZE
], int arr_len
, int times
);
34 int mangle_reflect (char arr
[BLOCK_SIZE
], int arr_len
);
35 int mangle_rotate_left (char arr
[BLOCK_SIZE
], int arr_len
);
36 int mangle_rotate_right (char arr
[BLOCK_SIZE
], int arr_len
);
37 int mangle_append (char arr
[BLOCK_SIZE
], int arr_len
, char c
);
38 int mangle_prepend (char arr
[BLOCK_SIZE
], int arr_len
, char c
);
39 int mangle_delete_at (char arr
[BLOCK_SIZE
], int arr_len
, int upos
);
40 int mangle_extract (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, int ulen
);
41 int mangle_omit (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, int ulen
);
42 int mangle_insert (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, char c
);
43 int mangle_insert_multi (char arr
[BLOCK_SIZE
], int arr_len
, int arr_pos
, char arr2
[BLOCK_SIZE
], int arr2_len
, int arr2_pos
, int arr2_cpy
);
44 int mangle_overstrike (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, char c
);
45 int mangle_truncate_at (char arr
[BLOCK_SIZE
], int arr_len
, int upos
);
46 int mangle_replace (char arr
[BLOCK_SIZE
], int arr_len
, char oldc
, char newc
);
47 int mangle_purgechar (char arr
[BLOCK_SIZE
], int arr_len
, char c
);
48 int mangle_dupeblock_prepend (char arr
[BLOCK_SIZE
], int arr_len
, int ulen
);
49 int mangle_dupeblock_append (char arr
[BLOCK_SIZE
], int arr_len
, int ulen
);
50 int mangle_dupechar_at (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, int ulen
);
51 int mangle_dupechar (char arr
[BLOCK_SIZE
], int arr_len
);
52 int mangle_switch_at_check (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, int upos2
);
53 int mangle_switch_at (char arr
[BLOCK_SIZE
], int arr_len
, int upos
, int upos2
);
54 int mangle_chr_shiftl (uint8_t arr
[BLOCK_SIZE
], int arr_len
, int upos
);
55 int mangle_chr_shiftr (uint8_t arr
[BLOCK_SIZE
], int arr_len
, int upos
);
56 int mangle_chr_incr (uint8_t arr
[BLOCK_SIZE
], int arr_len
, int upos
);
57 int mangle_chr_decr (uint8_t arr
[BLOCK_SIZE
], int arr_len
, int upos
);
58 int mangle_title (char arr
[BLOCK_SIZE
], int arr_len
);
59 int generate_random_rule (char rule_buf
[RP_RULE_BUFSIZ
], uint32_t rp_gen_func_min
, uint32_t rp_gen_func_max
);
60 int apply_rule_cpu (char *rule
, int rule_len
, char in
[BLOCK_SIZE
], int in_len
, char out
[BLOCK_SIZE
]);
61 int cpu_rule_to_gpu_rule (char rule_buf
[BUFSIZ
], uint rule_len
, gpu_rule_t
*rule
);
65 bool class_num (char c
);
66 bool class_lower (char c
);
67 bool class_upper (char c
);
68 bool class_alpha (char c
);
69 char conv_ctoi (char c
);
70 char conv_itoc (char c
);
72 uint
get_random_num (uint min
, uint max
);
74 void gen_cmask (const uint8_t *word
, uint8_t *cmask
, const uint len
);