This is hard to parse and looks like a run-on sentence. In any case, the user isn't *supposed* to do anything. In this case the callback *must* sign the data with the user's key. `sign_fn` doesn't provide anything, as it it's the user's callback the receives the information.

In accordance with the style elsewhere, this would read something like

> This allows you to provide a custom function to sign the data [during the challenge]

or

> You can use this function to provide a custom...