a more conservative changed out be
<pre>
if (!mut->is_auth_pinned(pin) && (!pin->can_auth_pin() || pin->is_ambiguous_auth())) {
</pre>
the is_amiguous_auth -> is_auth worries me as I don't remember this code very well