Class Ctap2Session.InfoData

java.lang.Object
com.yubico.yubikit.fido.ctap.Ctap2Session.InfoData
Enclosing class:
Ctap2Session

public static class Ctap2Session.InfoData extends Object
Data object containing the information readable form a YubiKey using the getInfo command.
See Also:
  • Method Details

    • getVersions

      public List<String> getVersions()
      List of supported versions.

      Supported versions are: FIDO_2_0, FIDO_2_1_PRE, FIDO_2_1 and FIDO_2_3 for CTAP2 / FIDO2 / Web Authentication authenticators and U2F_V2 for CTAP1/U2F authenticators.

      Returns:
      list of supported versions
    • getExtensions

      public List<String> getExtensions()
      List of supported extensions.
      Returns:
      list of supported extensions
    • getAaguid

      public byte[] getAaguid()
      Get the claimed AAGUID of the YubiKey.
      Returns:
      the AAGUID of the YubiKey
    • getOptions

      public Map<String,?> getOptions()
      Get the options map, which defines which options are supported, and their configuration.
      Returns:
      a Map of supported options
    • getMaxMsgSize

      public int getMaxMsgSize()
      Get maximum message size supported by the authenticator.
      Returns:
      maximum message size
    • getPinUvAuthProtocols

      public List<Integer> getPinUvAuthProtocols()
      Get a list of the supported PIN/UV Auth protocol versions in order of decreasing authenticator preference.
      Returns:
      a list of supported protocol versions
      See Also:
    • getMaxCredentialCountInList

      public @Nullable Integer getMaxCredentialCountInList()
      Get the maximum number of credentials supported in credentialID list at a time by the authenticator.
      Returns:
      maximum number of credentials
    • getMaxCredentialIdLength

      public @Nullable Integer getMaxCredentialIdLength()
      Get the maximum Credential ID Length supported by the authenticator.
      Returns:
      maximum Credential ID length
    • getTransports

      public List<String> getTransports()
      Get a list of supported transports. Values are taken from the AuthenticatorTransport enum in WebAuthn.
      Returns:
      list of supported transports
      See Also:
    • getAlgorithms

      public List<PublicKeyCredentialParameters> getAlgorithms()
      Get a list of supported algorithms for credential generation, as specified in WebAuthn.

      Empty return value indicates that the authenticator does not provide this information.

      Returns:
      list of supported algorithms
      See Also:
    • getMaxSerializedLargeBlobArray

      public int getMaxSerializedLargeBlobArray()
      Get the maximum size, in bytes, of the serialized large-blob array that this authenticator can store.
      Returns:
      maximum size of serialized large-blob array the authenticator can store if authenticatorLargeBlobs command is supported by the authenticator, 0 otherwise
      See Also:
    • getForcePinChange

      public boolean getForcePinChange()
      Get the requirement whether the authenticator requires PIN Change before use.
      Returns:
      force PIN Change requirement
      See Also:
    • getMinPinLength

      public int getMinPinLength()
      The current minimum PIN length, in Unicode code points, the authenticator enforces for ClientPIN.

      Only valid if options contain clientPin meaning that the authenticator supports authenticatorClientPin command.

      Returns:
      current minimum PIN length
      See Also:
    • getMaxCredBlobLength

      public int getMaxCredBlobLength()
      Get maximum credBlob length in bytes supported by the authenticator.
      Returns:
      maximum credBlob length if the authenticator supports credBlob extension, 0 otherwise
      See Also:
    • getMaxRpidsForSetMinPinLength

      public int getMaxRpidsForSetMinPinLength()
      Get the maximum number of RP IDs that authenticator can set via setMinPINLength subcommand.

      Only valid if setMinPINLength option ID is present.

      Returns:
      the maximum number of RP IDs
      See Also:
    • getPreferredPlatformUvAttempts

      public @Nullable Integer getPreferredPlatformUvAttempts()
      The preferred number of invocations of the getPinUvAuthTokenUsingUvWithPermissions subCommand the platform may attempt before falling back to the getPinUvAuthTokenUsingPinWithPermissions subCommand or displaying an error.
      Returns:
      the preferred number of getPinUvAuthTokenUsingUvWithPermissions invocations
      See Also:
    • getUvModality

      public int getUvModality()
      The user verification modality supported by the authenticator via authenticatorClientPIN's getPinUvAuthTokenUsingUvWithPermissions subcommand.
      Returns:
      the user verification modality
      See Also:
    • getCertifications

      public final Map<String,Object> getCertifications()
      Provides a hint to the platform with additional information about certifications that the authenticator has received.
      Returns:
      certifications in the form key-value pairs with string IDs and integer values
      See Also:
    • getRemainingDiscoverableCredentials

      public @Nullable Integer getRemainingDiscoverableCredentials()
      The estimated number of additional discoverable credentials that can be stored.
      Returns:
      the estimated number of credentials that can be stored
    • getVendorPrototypeConfigCommands

      public @Nullable List<Integer> getVendorPrototypeConfigCommands()
      List of authenticatorConfig vendorCommandId values supported.
      Returns:
      list of vendor command id's
      See Also:
    • getAttestationFormats

      public List<String> getAttestationFormats()
      Get the list of attestation formats supported by the authenticator.
      Returns:
      list of supported attestation formats
      See Also:
    • getUvCountSinceLastPinEntry

      public @Nullable Integer getUvCountSinceLastPinEntry()
      Get the count of User Verification operations since the last PIN entry including all failed attempts..
      Returns:
      the count of UV attempts since the last PIN entry
      See Also:
    • getLongTouchForReset

      public boolean getLongTouchForReset()
      If present the authenticator requires a 10 second touch for reset.
      Returns:
      true if the authenticator requires a 10 second touch for reset
    • getEncIdentifier

      public byte @Nullable [] getEncIdentifier()
      Get the encrypted identifier for the authenticator.
      Returns:
      the encrypted identifier
      See Also:
    • getTransportsForReset

      public List<String> getTransportsForReset()
      Get the list of transports that support the reset command.
      Returns:
      list of transports that support the reset command
      See Also:
    • getPinComplexityPolicy

      public @Nullable Boolean getPinComplexityPolicy()
      If present, returns whether the authenticator is enforcing an additional current PIN complexity policy beyond minPinLength. PIN complexity policies for authenticators are listed in the FIDO MDS. The authenticator may have a pre-configured PIN complexity policy value that is applied after a reset.
      Returns:
      true if whether the authenticator is enforcing an additional current PIN complexity policy
      See Also:
    • getPinComplexityPolicyUrl

      public byte @Nullable [] getPinComplexityPolicyUrl()
      Get the URL that the platform can use to provide the user more information about the enforced PIN policy.
      Returns:
      the URL providing more information about the enforced PIN policy
      See Also:
    • getMaxPinLength

      public int getMaxPinLength()
      Specifies the maximum PIN length, in Unicode code points, the authenticator enforces for ClientPIN.
      Returns:
      the maximum PIN length
      See Also:
    • getIdentifier

      public byte @Nullable [] getIdentifier(byte[] persistentPinUvAuthToken) throws GeneralSecurityException
      Get decrypted encIdentifier.
      Returns:
      the decrypted encIdentifier
      Throws:
      GeneralSecurityException
      See Also:
    • getCredStoreState

      public byte @Nullable [] getCredStoreState(byte[] persistentPinUvAuthToken) throws GeneralSecurityException
      Get decrypted encCredStoreState.
      Returns:
      the decrypted credStoreState
      Throws:
      GeneralSecurityException
      See Also:
    • getAuthenticatorConfigCommands

      public @Nullable List<Integer> getAuthenticatorConfigCommands()
      List of supported authenticator config commands.
      Returns:
      list of supported authenticator config commands.
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object