Hmm, nothing in the implementation of `git_cred_ssh_publickey_new()` really cares much about the actual function pointer type passed in for the `sign_callback`, but at the same time, it is much nicer to have the public API use an actual function prototype for type safety. What if we were simply to add a typedef like `typedef LIBSSH2_USERAUTH_PUBLICKEY_SIGN_FUNC((*git_cred_sign_callback))` then a future variant for a different library could change the typedef of `git_cred_sign_callback` but the function signature would be "the same."