Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FIDO2-ASSERT(1)		    General Commands Manual	       FIDO2-ASSERT(1)

NAME
       fido2-assert -- get/verify a FIDO2 assertion

SYNOPSIS
       fido2-assert    -G    [-bdhpruvw]    [-t	   option]   [-i   input_file]
		    [-o	output_file] device
       fido2-assert -V [-dhpv] [-i input_file] key_file	[type]

DESCRIPTION
       fido2-assert gets or verifies a FIDO2 assertion.

       The input of fido2-assert is defined by the parameters of the assertion
       to be obtained/verified.	 See the "INPUT	FORMAT"	section	for details.

       The output of fido2-assert is defined by	the result of the selected op-
       eration.	 See the "OUTPUT FORMAT" section for details.

       If an assertion is successfully obtained	or verified, fido2-assert  ex-
       its 0.  Otherwise, fido2-assert exits 1.

       The options are as follows:

       -G      Tells fido2-assert to obtain a new assertion from device.

       -V      Tells fido2-assert to verify an assertion using the PEM-encoded
	       public  key  in	key_file of type type, where type may be es256
	       (denoting ECDSA over NIST P-256 with SHA-256), es384  (denoting
	       ECDSA  over  NIST P-384 with SHA-384), rs256 (denoting 2048-bit
	       RSA with	PKCS#1.5 padding and SHA-256), or eddsa	(denoting  ED-
	       DSA  over  Curve25519 with SHA-512).  If	type is	not specified,
	       es256 is	assumed.

       -b      Request the credential's	"largeBlobKey",	 a  32-byte  symmetric
	       key associated with the asserted	credential.

       -h      If  obtaining an	assertion, enable the FIDO2 hmac-secret	exten-
	       sion.  If verifying an assertion, check whether	the  extension
	       data bit	was signed by the authenticator.

       -d      Causes fido2-assert to emit debugging output on stderr.

       -i input_file
	       Tells fido2-assert to read the parameters of the	assertion from
	       input_file instead of stdin.

       -o output_file
	       Tells  fido2-assert  to	write output on	output_file instead of
	       stdout.

       -p      If obtaining an assertion, request user presence.  If verifying
	       an assertion, check whether the user presence bit was signed by
	       the authenticator.

       -r      Obtain an assertion using a  resident  credential.   If	-r  is
	       specified,  fido2-assert	will not expect	a credential id	in its
	       input, and may output multiple  assertions.   Resident  creden-
	       tials are called	"discoverable credentials" in CTAP 2.1.

       -t option
	       Toggles	a  key/value  option,  where option is a string	of the
	       form "key=value".  The options supported	at present are:

	       up=true|false
		       Asks the	authenticator for user presence	to be  enabled
		       or disabled.

	       uv=true|false
		       Asks  the authenticator for user	verification to	be en-
		       abled or	disabled.

	       pin=true|false
		       Tells fido2-assert whether to prompt for	a PIN and  re-
		       quest user verification.

	       The -t option may be specified multiple times.

       -u      Obtain  an  assertion using U2F.	 By default, fido2-assert will
	       use FIDO2 if supported by the authenticator,  and  fallback  to
	       U2F otherwise.

       -v      If  obtaining  an  assertion, prompt the	user for a PIN and re-
	       quest user verification from the	authenticator.	 If  verifying
	       an  assertion,  check  whether  the  user  verification bit was
	       signed by the authenticator.

       -w      Tells fido2-assert that the first line of input when  obtaining
	       an  assertion  shall  be	 interpreted  as unhashed client data.
	       This is required	by Windows Hello, which	calculates the	client
	       data hash internally.

       If  a  tty  is  available,  fido2-assert	will use it to obtain the PIN.
       Otherwise, stdin	is used.

INPUT FORMAT
       The input of fido2-assert consists of base64 blobs  and	UTF-8  strings
       separated by newline characters ('\n').

       When  obtaining an assertion, fido2-assert expects its input to consist
       of:

	     1.	  client data hash (base64 blob);
	     2.	  relying party	id (UTF-8 string);
	     3.	  credential id, if credential not resident (base64 blob);
	     4.	  hmac salt, if	the FIDO2  hmac-secret	extension  is  enabled
		  (base64 blob);

       When  verifying an assertion, fido2-assert expects its input to consist
       of:

	     1.	  client data hash (base64 blob);
	     2.	  relying party	id (UTF-8 string);
	     3.	  CBOR encoded authenticator data (base64 blob);
	     4.	  assertion signature (base64 blob);

       UTF-8 strings passed to fido2-assert must not contain embedded  newline
       or NUL characters.

OUTPUT FORMAT
       The  output  of fido2-assert consists of	base64 blobs and UTF-8 strings
       separated by newline characters ('\n').

       For each	generated assertion, fido2-assert outputs:

	     1.	  client data hash (base64 blob);
	     2.	  relying party	id (UTF-8 string);
	     3.	  CBOR encoded authenticator data (base64 blob);
	     4.	  assertion signature (base64 blob);
	     5.	  user id, if credential resident (base64 blob);
	     6.	  hmac secret, if the FIDO2 hmac-secret	extension  is  enabled
		  (base64 blob);
	     7.	  the	 credential's	associated   32-byte   symmetric   key
		  ("largeBlobKey"), if requested (base64 blob).

       When verifying an assertion, fido2-assert produces no output.

EXAMPLES
       Assuming	cred contains a	es256  credential  created  according  to  the
       steps  outlined in fido2-cred(1), obtain	an assertion from an authenti-
       cator at	/dev/hidraw5 and verify	it:

	     $ echo assertion challenge	| openssl sha256 -binary  |  base64  >
	     assert_param
	     $ echo relying party >> assert_param
	     $ head -1 cred >> assert_param
	     $ tail -n +2 cred > pubkey
	     $	fido2-assert -G	-i assert_param	/dev/hidraw5 | fido2-assert -V
	     pubkey es256

SEE ALSO
       fido2-cred(1), fido2-token(1)

FreeBSD	ports 15.0		 July 3, 2023		       FIDO2-ASSERT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fido2-assert&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help