When one of the above signals is intercepted, terminal echo will be restored if it had previously been turned off. If a signal handler was installed for the signal when readpassphrase was called that handler is then executed. If no handler was previously installed for the signal then the default action is taken as per sigaction(2).
The SIGTSTP, SIGTTIN, and SIGTTOU signals (stop signal generated from keyboard or due to terminal I/O from a background process) are treated specially. When the process is resumed after it has been stopped, readpassphrase will reprint the prompt and the user may then enter a passphrase.
The readpassphrase function was interrupted by a signal.
[EINVAL]
The bufsiz argument was zero.
[EIO]
The process is a member of a background process attempting to read from its controlling terminal, the process is ignoring or blocking the SIGTTIN signal or the process group is orphaned.
[EMFILE]
The process has already reached its limit for open file descriptors.
[ENFILE]
The system file table is full.
[ENOTTY]
There is no controlling terminal and the RPP_REQUIRE_TTY flag was specified.