<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hi,<br>
    <br>
        I'm trying to get OpenSSL 1.0.2u with the FIPS Object Module
    2.0.16  in Windows 10 to prompt the user for a smart card's PIN
    number every time the application is launched. However, I cannot
    seem to get it to work. My UI_METHOD callback functions are not
    being invoked.<br>
    <br>
    I'm using the following code as a reference:<br>
    <a class="moz-txt-link-freetext" href="https://github.com/jjkeijser/ppp/blob/eap-tls/pppd/eap-tls.c">https://github.com/jjkeijser/ppp/blob/eap-tls/pppd/eap-tls.c</a><br>
    <br>
    I tried the following:<br>
    <br>
    <blockquote><font face="monospace">UI_METHOD* transfer_pin =
        UI_create_method("transfer_pin");<br>
        <br>
        int writer (UI *ui, UI_STRING *uis)<br>
        {<br>
            PW_CB_DATA* cb_data = (PW_CB_DATA*)UI_get0_user_data(ui);<br>
            UI_set_result(ui, uis, cb_data->password);<br>
            return 1;<br>
        };<br>
        int stub (UI* ui) {return 1;};<br>
        int stub_reader (UI *ui, UI_STRING *uis) {return 1;};<br>
        <br>
        UI_method_set_writer(transfer_pin,  writer);<br>
        UI_method_set_opener(transfer_pin,  stub);<br>
        UI_method_set_closer(transfer_pin,  stub);<br>
        UI_method_set_flusher(transfer_pin, stub);<br>
        UI_method_set_reader(transfer_pin,  stub_reader);<br>
        <br>
        pkey = ENGINE_load_private_key(pkey_engine, pkey_identifier,
        transfer_pin, &cb_data);<br>
      </font></blockquote>
    <br>
    <br>
    However, none of the callback functions "writer", "stub", or
    "stub_reader" actually get called. Do I need to do anything else to
    enable this functionality?  I would like to force the user to enter
    PIN number every time.<br>
    <br>
    <br>
    <br>
    Thanks,<br>
    George<br>
    <br>
  </body>
</html>