hosts, and one of them leaks the secret to an adversary, all hosts are
compromised. This is not the case with the first approach.
+The particular data structure is outlined in the picture:
+
+
## Module Operation
Authentication file, containing nonce, encrypted shared secret,
setup program (and must be the same, obviously). In the template string,
character '~' in the first position is substituted with the userid's
home directory, '~' in a position other than first - with the userid
-itself, and character '?' - with the "tokenid". This latter is just an
-arbitrary string that is not involved in the authentication process.
-But, if the template contains '?' but not '~', login process can start
-without the knowlege of the userid. Userid will be picked from the file
-and injected into the PAM environment, given that tokenid is known from
-the start.
+itself.
Default template string is `~/.pam_cr/auth`, i.e. the file lives in the
user's home directory, in the subdirectory `.pam_cr`.
Slot 2 is the default. Secret must be supplied when creating the file,
and when modifying the file in the absense of the token. Password is
used to construct the challenge. If not supplied empty string is used.
-The pam module also used empty string when given "noaskpass" argument,
+The pam module also uses empty string when given "noaskpass" argument,
so this can be used for "one factor" authentication mode with token
only. Payload is a string that can be optionally injected as the PAM
authentication token after successful authentication; subsequent PAM