I brought this up in the comments, from the openssl docs (cb and u being the last two params):
>  If both cb and u are NULL then the default callback routine is used which will typically prompt for the passphrase on the current terminal with echoing turned off.

As u will always be NULL, passing an explicit callback prevents us ever dropping to a prompt.
HOWEVER - Although this is in the API, i'm not even sure you can have a passphrase encoded public key anyway so this, and the rest of the dittos, could be pointless, this does however seem to be the way we should use these API's (prompt never appropriate). As @bnoordhuis mentioned before (https://github.com/joyent/node/pull/6301#discussion_r6822905) without this we should probably be compiling with `OPENSSL_NO_STDIO`?