-
Notifications
You must be signed in to change notification settings - Fork 11
/
readpass.h
33 lines (29 loc) · 1.3 KB
/
readpass.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef READPASS_H_
#define READPASS_H_
/* Avoid namespace collisions with other "readpass" functions. */
#ifdef readpass
#undef readpass
#endif
#define readpass libcperciva_readpass
/**
* readpass(passwd, prompt, confirmprompt, devtty):
* If ${devtty} is 0, read a password from stdin. If ${devtty} is 1, read a
* password from /dev/tty if possible; if not, read from stdin. If ${devtty}
* is 2, read a password from /dev/tty if possible; if not, exit with an error.
* If reading from a tty (either /dev/tty or stdin), disable echo and prompt
* the user by printing ${prompt} to stderr. If ${confirmprompt} is non-NULL,
* read a second password (prompting if a terminal is being used) and repeat
* until the user enters the same password twice. Return the password as a
* malloced NUL-terminated string via ${passwd}.
*/
int readpass(char **, const char *, const char *, int);
/**
* readpass_file(passwd, filename):
* Read a passphrase from ${filename} and return it as a malloced
* NUL-terminated string via ${passwd}. Print an error and fail if the file
* is 2048 characters or more, or if it contains any newline \n or \r\n
* characters other than at the end of the file. Do not include the \n or
* \r\n characters in the passphrase.
*/
int readpass_file(char **, const char *);
#endif /* !READPASS_H_ */