Password Definition Language

4.3. Dictionaries and character sets definitions

All the definitions are set in the beginning of password definition file up to the characters '##'.

4.3.1. Dictionaries definition

The main and user dictionaries in use (see section 4.2.2) are initially defined as usual. It is necessary only if you are going to use words from the dictionaries when defining passwords, i.e. $w or $u.

The dictionaries are given as follows:

$w = "main.dic"# main dictionary
$u = "c:\\dict\\user.dic"# user dictionary

File name is to be quoted, the path characters are to be shielded.

4.3.2. Definition of the character sets in use

The character sets in use are defined as usual. They are classified in two groups: predefined and user-defined.

Predefined sets include:

$alower-cased Latin letters, 26 letters in all
$Aupper-cased Latin letters, 26 letters in all
$!special characters (32 characters in all)
$1digits, 10 digits in all

User-defined sets include:

$ilower-cased letters of national alphabet
$Iupper-cased letters of national alphabet
$oadditional character set (for example, any non-typable characters)

Character sets are defined as follows:

$<charset> = [ <single characters or character sets> ]

In other words, character set is written as combination of characters (see section 4.2.1), for example:

$i = [ !"#$%&'()*+,-./`abcdefghijklmnoq]
$o = [$! $1 \FF]


1) Any character sets are allowed to be defined, including pre-defined. For example, you may include additional characters, such as space character or \FF into the set $!

2) When the sets $i and $I are being defined, the function of switching between lower/upper case is defined automatically. So it is important to have letters being ordered uniformly in these sets.

The full character set '?', consisting of [$a $A $1 $!$i $I $o] (just such an order is of importance in the next section), is never formed until all the characters are defined.

4.3.3. Definition of conversion modifiers

The conversion modifiers .c may be defined (see section 4.2.2) are described the conversion rule of one character to another. It is performed with the line of the form: .c(<number>) = "<conversion string>"

The conversion string is written in such way "o=0|l=1|s=5|b=6", where the conversion pairs are divided with '|' symbol and at left side of '=' is written a character to be converted to character on the right side of '='.

For example, let the $w is "lower", then $w.c(0) = "10wer". The characters '\' and '|' are to be shielded in conversion string. The numbers of modifiers may vary from 0 to 255.

4.3.4. Special character sets definition

Among special character sets are:

$va set of vowels (in all alphabets being used). It is needed only when .s and .j modifiers are used
$pa set for insertion and replacement for permutation brackets. It is needed only if automatic generation of this set does not suit you for some reason (see section 4.2.3)

These sets are defined in a similar way to the other character sets.

4.3.5.Minimal and maximal password length

The minimal and maximal password length settings affect only password definition with regular repetition symbol and not affected other password definition including  simply charsets, words or generators. To set the default password range, use keywords min and max, like:

min = 1 generate passwords from one character long
max = 5generate passwords up to 5 characters long