When gpg --import for a secret key, wrong passphrase may result interaction error.
When the first passphrase resulted partially-looking-good secret key, it causes confusing interaction.
A user should be able to try three times always (according to the dialog), but the second try results GPG_ERR_MISSING_VALUE even if good passphrase.
And no third try.
This is because the variable SKEY is overwritten within the function do_unprotect, at the initial call.