# man > misc_conv(3)

[MISC_CONV(3)](https://www.chedong.com/phpMan.php/man/MISCCONV/3/markdown)                              Linux-PAM Manual                              [MISC_CONV(3)](https://www.chedong.com/phpMan.php/man/MISCCONV/3/markdown)



## NAME
       misc_conv - text based conversation function

## SYNOPSIS
       **#include** **<security/pam**___**misc.h>**

       **int** **misc**___**conv(int** _num_msg_**,** **const** **struct** **pam**___**message** ******_msgm_**,** **struct** **pam**___**response** ******_response_**,**
                     **void** *****_appdata_ptr_**);**

## DESCRIPTION
       The **misc**___**conv** function is part of **libpam**___**misc** and not of the standard **libpam** library. This
       function will prompt the user with the appropriate comments and obtain the appropriate inputs
       as directed by authentication modules.

       In addition to simply slotting into the appropriate **pam**___**[conv**(3)](https://www.chedong.com/phpMan.php/man/conv/3/markdown), this function provides some
       time-out facilities. The function exports five variables that can be used by an application
       programmer to limit the amount of time this conversation function will spend waiting for the
       user to type something. The five variables are as follows:

       **time**___**t** _pam_misc_conv_warn_time_;
           This variable contains the _time_ (as returned by [**time**(2)](https://www.chedong.com/phpMan.php/man/time/2/markdown)) that the user should be first
           warned that the clock is ticking. By default it has the value 0, which indicates that no
           such warning will be given. The application may set its value to sometime in the future,
           but this should be done prior to passing control to the _Linux-PAM_ library.

       **const** **char** *****_pam_misc_conv_warn_line_;
           Used in conjunction with _pam_misc_conv_warn_time_, this variable is a pointer to the
           string that will be displayed when it becomes time to warn the user that the timeout is
           approaching. Its default value is a translated version of “...Time is running out...”,
           but this can be changed by the application prior to passing control to _Linux-PAM_.

       **time**___**t** _pam_misc_conv_die_time_;
           This variable contains the _time_ (as returned by [**time**(2)](https://www.chedong.com/phpMan.php/man/time/2/markdown)) that the will time out. By
           default it has the value 0, which indicates that the conversation function will not
           timeout. The application may set its value to sometime in the future, but this should be
           done prior to passing control to the _Linux-PAM_ library.

       **const** **char** *****_pam_misc_conv_die_line_;
           Used in conjunction with _pam_misc_conv_die_time_, this variable is a pointer to the string
           that will be displayed when the conversation times out. Its default value is a translated
           version of “...Sorry, your time is up!”, but this can be changed by the application prior
           to passing control to _Linux-PAM_.

       **int** _pam_misc_conv_died_;
           Following a return from the _Linux-PAM_ library, the value of this variable indicates
           whether the conversation has timed out. A value of 1 indicates the time-out occurred.

       The following two function pointers are available for supporting binary prompts in the
       conversation function. They are optimized for the current incarnation of the **libpamc** library
       and are subject to change.

       **int** _(*pam_binary_handler_fn)_(**void** *****_appdata_, **pamc**___**bp**___**t** *****_prompt_p_);
           This function pointer is initialized to NULL but can be filled with a function that
           provides machine-machine (hidden) message exchange. It is intended for use with hidden
           authentication protocols such as RSA or Diffie-Hellman key exchanges. (This is still
           under development.)

       **int** _(*pam_binary_handler_free)_(**void** *****_appdata_, **pamc**___**bp**___**t** *****_delete_me_);
           This function pointer is initialized to **PAM**___**BP**___**RENEW(delete**___**me,** **0,** **0)**, but can be
           redefined as desired by the application.

## SEE ALSO
       **pam**___**[conv**(3)](https://www.chedong.com/phpMan.php/man/conv/3/markdown), [**pam**(7)](https://www.chedong.com/phpMan.php/man/pam/7/markdown)

## STANDARDS
       The **misc**___**conv** function is part of the **libpam**___**misc** Library and not defined in any standard.



Linux-PAM Manual                             06/08/2020                                 [MISC_CONV(3)](https://www.chedong.com/phpMan.php/man/MISCCONV/3/markdown)
