2017-08-11 14:09:12 +00:00
|
|
|
/**
|
|
|
|
* Author......: See docs/credits.txt
|
|
|
|
* License.....: MIT
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define RULE_OP_MANGLE_NOOP ':'
|
|
|
|
#define RULE_OP_MANGLE_LREST 'l'
|
|
|
|
#define RULE_OP_MANGLE_UREST 'u'
|
|
|
|
#define RULE_OP_MANGLE_LREST_UFIRST 'c'
|
|
|
|
#define RULE_OP_MANGLE_UREST_LFIRST 'C'
|
|
|
|
#define RULE_OP_MANGLE_TREST 't'
|
|
|
|
#define RULE_OP_MANGLE_TOGGLE_AT 'T'
|
|
|
|
#define RULE_OP_MANGLE_REVERSE 'r'
|
|
|
|
#define RULE_OP_MANGLE_DUPEWORD 'd'
|
|
|
|
#define RULE_OP_MANGLE_DUPEWORD_TIMES 'p'
|
|
|
|
#define RULE_OP_MANGLE_REFLECT 'f'
|
|
|
|
#define RULE_OP_MANGLE_ROTATE_LEFT '{'
|
|
|
|
#define RULE_OP_MANGLE_ROTATE_RIGHT '}'
|
|
|
|
#define RULE_OP_MANGLE_APPEND '$'
|
|
|
|
#define RULE_OP_MANGLE_PREPEND '^'
|
|
|
|
#define RULE_OP_MANGLE_DELETE_FIRST '['
|
|
|
|
#define RULE_OP_MANGLE_DELETE_LAST ']'
|
|
|
|
#define RULE_OP_MANGLE_DELETE_AT 'D'
|
|
|
|
#define RULE_OP_MANGLE_EXTRACT 'x'
|
|
|
|
#define RULE_OP_MANGLE_OMIT 'O'
|
|
|
|
#define RULE_OP_MANGLE_INSERT 'i'
|
|
|
|
#define RULE_OP_MANGLE_OVERSTRIKE 'o'
|
|
|
|
#define RULE_OP_MANGLE_TRUNCATE_AT '\''
|
|
|
|
#define RULE_OP_MANGLE_REPLACE 's'
|
|
|
|
#define RULE_OP_MANGLE_PURGECHAR '@'
|
|
|
|
#define RULE_OP_MANGLE_TOGGLECASE_REC 'a'
|
|
|
|
#define RULE_OP_MANGLE_DUPECHAR_FIRST 'z'
|
|
|
|
#define RULE_OP_MANGLE_DUPECHAR_LAST 'Z'
|
|
|
|
#define RULE_OP_MANGLE_DUPECHAR_ALL 'q'
|
|
|
|
#define RULE_OP_MANGLE_TITLE_SEP 'e'
|
|
|
|
|
|
|
|
#define RULE_OP_REJECT_LESS '<'
|
|
|
|
#define RULE_OP_REJECT_GREATER '>'
|
|
|
|
#define RULE_OP_REJECT_CONTAIN '!'
|
|
|
|
#define RULE_OP_REJECT_NOT_CONTAIN '/'
|
|
|
|
#define RULE_OP_REJECT_EQUAL_FIRST '('
|
|
|
|
#define RULE_OP_REJECT_EQUAL_LAST ')'
|
|
|
|
#define RULE_OP_REJECT_EQUAL_AT '='
|
|
|
|
#define RULE_OP_REJECT_CONTAINS '%'
|
|
|
|
|
|
|
|
/* hashcat only */
|
|
|
|
#define RULE_OP_MANGLE_SWITCH_FIRST 'k'
|
|
|
|
#define RULE_OP_MANGLE_SWITCH_LAST 'K'
|
|
|
|
#define RULE_OP_MANGLE_SWITCH_AT '*'
|
|
|
|
#define RULE_OP_MANGLE_CHR_SHIFTL 'L'
|
|
|
|
#define RULE_OP_MANGLE_CHR_SHIFTR 'R'
|
|
|
|
#define RULE_OP_MANGLE_CHR_INCR '+'
|
|
|
|
#define RULE_OP_MANGLE_CHR_DECR '-'
|
|
|
|
#define RULE_OP_MANGLE_REPLACE_NP1 '.'
|
|
|
|
#define RULE_OP_MANGLE_REPLACE_NM1 ','
|
|
|
|
#define RULE_OP_MANGLE_DUPEBLOCK_FIRST 'y'
|
|
|
|
#define RULE_OP_MANGLE_DUPEBLOCK_LAST 'Y'
|
|
|
|
#define RULE_OP_MANGLE_TITLE 'E'
|
|
|
|
|
|
|
|
#define RP_PASSWORD_SIZE 256
|
2017-08-23 11:40:22 +00:00
|
|
|
|
2018-11-20 14:29:24 +00:00
|
|
|
#ifdef REAL_SHM
|
|
|
|
#define COPY_PW(x) \
|
|
|
|
__local pw_t s_pws[64]; \
|
|
|
|
s_pws[get_local_id(0)] = (x); \
|
|
|
|
s_pws[get_local_id(0)].pw_len &= 255;
|
2017-08-23 11:40:22 +00:00
|
|
|
#else
|
2018-11-20 14:29:24 +00:00
|
|
|
#define COPY_PW(x) \
|
|
|
|
pw_t pw = (x); \
|
|
|
|
pw.pw_len &= 255;
|
2017-08-23 11:40:22 +00:00
|
|
|
#endif
|
|
|
|
|
2018-11-20 14:29:24 +00:00
|
|
|
#ifdef REAL_SHM
|
2017-08-23 11:40:22 +00:00
|
|
|
#define PASTE_PW s_pws[get_local_id(0)];
|
2018-11-20 14:29:24 +00:00
|
|
|
#else
|
|
|
|
#define PASTE_PW pw;
|
2017-08-23 11:40:22 +00:00
|
|
|
#endif
|