def register!(challenges, response)
challenges = [challenges] unless challenges.is_a? Array
challenge = challenges.detect do |chg|
chg == response.client_data.challenge
end
fail UnmatchedChallengeError unless challenge
fail ClientDataTypeError unless response.client_data.registration?
U2F.public_key_pem(response.public_key_raw)
fail AttestationSignatureError unless response.verify(app_id)
registration = Registration.new(
response.key_handle,
response.public_key,
response.certificate
)
registration
end