OpenSSL::X509 1.806;
use CryptX 0.034;
use Crypt::PK::ECC;
use Digest::SHA qw(sha256);
use JSON qw(decode_json);
use parent 'Exporter::Tiny';
our @EXPORT_OK = qw(u2f_challenge u2f_registration_verify
't decode client data; not valid Base64-URL?"
unless $client_data;
{
my $data = decode_json($client_data);
croak "invalid client data (challenge doesn't match)"
unless $data->{cha
-byte sha256(app ID) (application parameter)
# 32-byte sha256(client data (JSON-encoded)) (challenge parameter)
# key handle
# 65-byte key
my $app_id_sha = sha25